<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>CPPLapack: zgematrix Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">CPPLapack
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">zgematrix Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="zgematrix" -->
<p>Complex Double-precision General Dence Matrix Class.  
 <a href="classzgematrix.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="zgematrix_8hpp_source.html">zgematrix.hpp</a>&gt;</code></p>

<p><a href="classzgematrix-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aaafa22a54979e3a6675cfb4ba40b62ba">zgematrix</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a0bd8e135adfe6ac526e6c86fd1b273aa">zgematrix</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a7815bce621a81beac6cd963fd0d93d61">zgematrix</a> (const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#acd7b23995031fbbb60caf067763615e1">zgematrix</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#af26cc2e5fe695e338fd5e3490c6b0823">zgematrix</a> (const char *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a841247912b4444475f77d673827c3bf6">~zgematrix</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">comple &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">comple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ae99571e5328f4a3fea580570f28ae8fd">operator()</a> (const long &amp;, const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ae4c7fd169ea9af3edd4b96e47d036abc">set</a> (const long &amp;, const long &amp;, const comple &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a44faf684430d0fe9ded75c541298c7bc">write</a> (const char *) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a28598ef222b11d98993cb52125886e39">read</a> (const char *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a2dad2eca3c01b51176748bdb11018ca6">clear</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a23c5c0550e2f3ccfda786bb126e181d5">zero</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a4249458338fdef82dcba63549ee67c47">identity</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a6325997e36e2aaf3925f5b7de9534fa2">chsign</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ab38f116cfe44c23da382fc017d1966d9">copy</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ace21c10bd4ff467ce270e17d9f57c7e3">shallow_copy</a> (const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a701afc041695672eab0d0f3e8466668a">resize</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zrovector.html">_zrovector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a62ac95b02d6826547eedeab6c961e33c">row</a> (const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zcovector.html">_zcovector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aca19ca11e6baf679f3e397bb0e6fc47c">col</a> (const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a06d72be5d303375e7f6319ca95d29600">zgesv</a> (<a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ad02dcbfd68ddfbeac864e89773cd5f31">zgesv</a> (<a class="el" href="classzcovector.html">zcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a9976c951912b2c4b4a37cd7e96624ffe">zgels</a> (<a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#af74ea023e16c5ca2628d219d671cda2d">zgels</a> (<a class="el" href="classzcovector.html">zcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a9c86aed41e48cc68b85cc48a8f8e862c">zgels</a> (<a class="el" href="classzgematrix.html">zgematrix</a> &amp;, <a class="el" href="classdrovector.html">drovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a70141ecb4bd86d1cccfa819e897dc9bc">zgels</a> (<a class="el" href="classzcovector.html">zcovector</a> &amp;, double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aade70e3c2ecde1c7a63023fbd84210d9">zgelss</a> (<a class="el" href="classzcovector.html">zcovector</a> &amp;, <a class="el" href="classdcovector.html">dcovector</a> &amp;, long &amp;, const double)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a745354dfc747d73c6a2ea53f0045c7e1">zgelss</a> (<a class="el" href="classzgematrix.html">zgematrix</a> &amp;, <a class="el" href="classdcovector.html">dcovector</a> &amp;, long &amp;, const double)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ad20e206765b06af26c30706ea3d04456">zgeev</a> (std::vector&lt; comple &gt; &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a77f893dbd14c3b59a8c0fb4dd48b864a">zgeev</a> (std::vector&lt; comple &gt; &amp;, std::vector&lt; <a class="el" href="classzcovector.html">zcovector</a> &gt; &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a684c4be72b789e64218072efe7f8036b">zgeev</a> (std::vector&lt; comple &gt; &amp;, std::vector&lt; <a class="el" href="classzrovector.html">zrovector</a> &gt; &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a41c2fa363688f6e70a9acc4c4f78cc8a">zgesvd</a> (<a class="el" href="classdcovector.html">dcovector</a> &amp;, <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a847f1759161ed62a1c2b10a624f27603">operator=</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#afc3a9937df2f0a8057912040a0960ae4">operator=</a> (const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a51ca2da3fa76d9d02c5d7019513f8cd8">operator+=</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ab7d1e2f0bb7c6bc1a3e1f0e0a2c8fc5f">operator+=</a> (const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a27c80807bef3716ac6177dd0b240c969">operator+=</a> (const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#af6bc4a9ee4ff20a3d9033488878a8dee">operator+=</a> (const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a212fb29d7d1ab3d932c04c7ce4fb03d8">operator+=</a> (const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ac1ff9abeb9ab4a32f6ca47cea1e8ba9e">operator+=</a> (const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#afc4038ce4a8fa8c78a892c8a33eb46ce">operator+=</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aadc2f93094c823b06d65857a75db21c0">operator+=</a> (const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#abdf03db4570d14c35310f37937cb47de">operator+=</a> (const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a05e6952da8aaddcba33fca5c37fe5725">operator+=</a> (const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a6f035007b57bd37299c6d63880073f01">operator-=</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a538726a67e23031d8ece9e49bb4cdedb">operator-=</a> (const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a1d61ff40e32bfcf1a5e74fdf996d6f9d">operator-=</a> (const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a0ae446c9947098274dcf5ad07aeaf01c">operator-=</a> (const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ab46a7724cc5d3eb5ac19a6d009bfd7e1">operator-=</a> (const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ac79ce11041677fbe044bee15abcc0795">operator-=</a> (const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a252406235be9f85e498fb0529dc070e0">operator-=</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a11068af3e02efe3f6e8fe26d3c9aba35">operator-=</a> (const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a7bace61e80a06f4504b6502f47482e97">operator-=</a> (const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ac39dff61bf4dc108bcc92be011700908">operator-=</a> (const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ac07ea4dab49a9cdae20c56f65ee22786">operator*=</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a2cdc634e23dcd6be60757321688ccd85">operator*=</a> (const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a181fd63864a83662667555ea2dca39d0">operator*=</a> (const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a0106e2048ef83919b822b2ac50886c9c">operator*=</a> (const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#afce761a608caf031b31908796f421cac">operator*=</a> (const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aded70958a6b8fdf5bd67a367fea1a41d">operator*=</a> (const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#abdd5c00aaf9849da77ef3743d6f6b64d">operator*=</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a4fd7d79a43771436249cb87f50f2537e">operator*=</a> (const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a19918f85ae2821fd684ed65c2ad50ad1">operator*=</a> (const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a5391f4169698f00c12d4d457c3da1795">operator*=</a> (const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a140b054de4267b9d20305b977cad539e">operator*=</a> (const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a0aa312b7573075f28bb147c1789303a6">operator*=</a> (const comple &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a9d71013bbc35d0365849f42d9ae74684">operator/=</a> (const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#afc5f79ed7ed7005ee977e6790b913c22">operator/=</a> (const comple &amp;)</td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e">m</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix row size  <a href="#a433dab4cf9fba73d9bc96ec6d626654e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a">n</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix column size  <a href="#aa2cfc802c95c61389455c6a8ff266d9a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">comple *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef">array</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">1D array to store matrix data  <a href="#aaa50b409ff4060aa10ad3c0f9dcd45ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">comple **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec">darray</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">array of pointers of column head addresses  <a href="#aaa1d6ceb4aeaf15c78176aed0b9320ec"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a2609e8a5e769476c76cb9c5111a93e96">operator&lt;&lt;</a> (std::ostream &amp;, const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a> (<a class="el" href="classzgematrix.html">zgematrix</a> &amp;, <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a> (<a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aa95e2158fa000ba10a9a4c43eabf4eab">t</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#afff25f61cae8e75633b8d4c6d32b4ded">conj</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a8fa5aefeb5239f99143547233713166f">conjt</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aa086f32a19b2ed79db71e1170180571e">idamax</a> (long &amp;, long &amp;, const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">comple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a32e6e879c4a79196284cdbfbbf352013">damax</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a0943e5a8eb438b555c1f03e27b6f96b3">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a8c80624f100b8f2e5f61e9a9549e6105">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a5946e939a94e54e996d6eb4eb8aa0789">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a61c64f436c7aa773390abf2b672b0d1d">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a4756ac92f1f1cf5b19659c7a1d7626a1">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a13089796079ea7b08cda317fe6e804ea">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ae0e3b42a206c67bbe89010cc2d9db59a">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aa8581811590c95db88acc471f0772153">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aa3727dcb3aa9157148a2e2055f2c5eaa">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a835a59ec2b58345a11e963334af0b33c">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a41468c5a5436380eb3b49d4810c076d6">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#aa1837df01bcdeeaa893e44abdd15da78">operator+</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a0cf94506053f4385a914362eb87e3810">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a74dccf4659edb713f01002af84807cce">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a68e3a3539d5e46978aa84708d5124d65">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a28fc678ea9c2800285e75be3fb78c40c">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ac7927eebc6578a46fdf2771d62348ca2">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a866b063e0b24baff1bc502bff37f930b">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a9be9a15865870c5fe6796bb178c21114">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ad9a9ab4198cafd44baf503c2bacad0a5">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a84abf7d598bbc4f13e23da9db8d6f037">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#acf4ceb1fd4aea748b223c44604329760">operator-</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zcovector.html">_zcovector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a4c231738812ec81b488a7e42b3c6fdb3">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzcovector.html">zcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zcovector.html">_zcovector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a549b54ea20d68a358da2d37291dd4df5">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zcovector.html">_zcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a0fe1a622e1cecbe544636af5bfb60fda">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a30f7431d1ce81b86cf54f283349ca654">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a8bdf6bb052f6a5827e32c4e9654c2b30">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a5fb39f9b878addfef496b044c6bf393a">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a8adbaafa9325ea7db707bd6d040a5207">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a198bc28cfac5c0f1835324b10ae86f37">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a2aee6a267fec41e91bbc43861574f034">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ac5e51789a2a7598aa7c1d5e12e25727e">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a91df88586bf3cc2415d9c38735e7620e">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a646eeb81d1c7beded9b8dd3b67330018">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a29c0d4ffe159c1797c2fec911e9a4479">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a6ba42e7f636dc529b38f3ecc7c28b138">operator*</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const comple &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#abf13e26b77698ee896128f5260461a62">operator/</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#ab787c0f4d00ee8fa990f6b5e94658757">operator/</a> (const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;, const comple &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a6543978fc8be7afaea3b104d88eb674d">operator*</a> (const double &amp;, const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgematrix.html#a1afda105ecf4df7dc8a7c5b07007e528">operator*</a> (const comple &amp;, const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Complex Double-precision General Dence Matrix Class. </p>

<p>Definition at line <a class="el" href="zgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix_8hpp_source.html">zgematrix.hpp</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aaafa22a54979e3a6675cfb4ba40b62ba"></a><!-- doxytag: member="zgematrix::zgematrix" ref="aaafa22a54979e3a6675cfb4ba40b62ba" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html#aaafa22a54979e3a6675cfb4ba40b62ba">zgematrix::zgematrix</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix constructor without arguments </p>

<p>Definition at line <a class="el" href="zgematrix-constructor_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-constructor_8hpp_source.html">zgematrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;<span class="comment"></span>
<span class="comment">  //////// initialize ////////</span>
<span class="comment"></span>  <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> =0;
  <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> =0;
  <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =NULL;
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =NULL;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0bd8e135adfe6ac526e6c86fd1b273aa"></a><!-- doxytag: member="zgematrix::zgematrix" ref="a0bd8e135adfe6ac526e6c86fd1b273aa" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html#aaafa22a54979e3a6675cfb4ba40b62ba">zgematrix::zgematrix</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix copy constructor </p>

<p>Definition at line <a class="el" href="zgematrix-constructor_8hpp_source.html#l00018">18</a> of file <a class="el" href="zgematrix-constructor_8hpp_source.html">zgematrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;<span class="comment"></span>
<span class="comment">  //////// initialize ////////</span>
<span class="comment"></span>  <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> =mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>;
  <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> =mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>;
  <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =<span class="keyword">new</span> comple[<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>];
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =<span class="keyword">new</span> comple*[<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>];
  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =&amp;<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>*<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>]; }
<span class="comment"></span>
<span class="comment">  //////// copy ////////</span>
<span class="comment"></span>  zcopy_(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*n, mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a7815bce621a81beac6cd963fd0d93d61"></a><!-- doxytag: member="zgematrix::zgematrix" ref="a7815bce621a81beac6cd963fd0d93d61" args="(const _zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html#aaafa22a54979e3a6675cfb4ba40b62ba">zgematrix::zgematrix</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix constructor to cast <a class="el" href="class__zgematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class">_zgematrix</a> </p>

<p>Definition at line <a class="el" href="zgematrix-constructor_8hpp_source.html#l00033">33</a> of file <a class="el" href="zgematrix-constructor_8hpp_source.html">zgematrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00011">_zgematrix::array</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00012">_zgematrix::darray</a>, <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00009">_zgematrix::m</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00010">_zgematrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__zgematrix-misc_8hpp_source.html#l00003">_zgematrix::nullify()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> =mat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>;
  <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> =mat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a>;
  <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =mat.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>;
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =mat.<a class="code" href="class__zgematrix.html#aef0739e6d23790625a881e082e24c7fa" title="array of pointers of column head addresses">darray</a>;
  
  mat.<a class="code" href="class__zgematrix.html#aeadbdaaeb74b772af5a741d23fd91e08">nullify</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="acd7b23995031fbbb60caf067763615e1"></a><!-- doxytag: member="zgematrix::zgematrix" ref="acd7b23995031fbbb60caf067763615e1" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html#aaafa22a54979e3a6675cfb4ba40b62ba">zgematrix::zgematrix</a> </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix constructor with size specification </p>

<p>Definition at line <a class="el" href="zgematrix-constructor_8hpp_source.html#l00049">49</a> of file <a class="el" href="zgematrix-constructor_8hpp_source.html">zgematrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( _m&lt;0 || _n&lt;0 ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Matrix sizes must be positive integers. &quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; _m &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; _n &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="comment"></span>
<span class="comment">  //////// initialize ////////</span>
<span class="comment"></span>  <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> =_m;
  <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> =_n;
  <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =<span class="keyword">new</span> comple[<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>];
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =<span class="keyword">new</span> comple*[<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>];
  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =&amp;<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>*<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>]; }
}
</pre></div>
</div>
</div>
<a class="anchor" id="af26cc2e5fe695e338fd5e3490c6b0823"></a><!-- doxytag: member="zgematrix::zgematrix" ref="af26cc2e5fe695e338fd5e3490c6b0823" args="(const char *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html#aaafa22a54979e3a6675cfb4ba40b62ba">zgematrix::zgematrix</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix constructor with filename </p>

<p>Definition at line <a class="el" href="zgematrix-constructor_8hpp_source.html#l00070">70</a> of file <a class="el" href="zgematrix-constructor_8hpp_source.html">zgematrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00099">read()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =NULL;
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =NULL;
  <span class="comment"></span>
<span class="comment">  //// read ////</span>
<span class="comment"></span>  <a class="code" href="classzgematrix.html#a28598ef222b11d98993cb52125886e39">read</a>(filename);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a841247912b4444475f77d673827c3bf6"></a><!-- doxytag: member="zgematrix::~zgematrix" ref="a841247912b4444475f77d673827c3bf6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html#a841247912b4444475f77d673827c3bf6">zgematrix::~zgematrix</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix destructor </p>

<p>Definition at line <a class="el" href="zgematrix-constructor_8hpp_source.html#l00085">85</a> of file <a class="el" href="zgematrix-constructor_8hpp_source.html">zgematrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;<span class="comment"></span>
<span class="comment">  //////// delete array ////////</span>
<span class="comment"></span>  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>;
  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>;
}
</pre></div>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aa5e264152b6960dacdca75cad9386f51"></a><!-- doxytag: member="zgematrix::operator()" ref="aa5e264152b6960dacdca75cad9386f51" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">comple &amp; zgematrix::operator() </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>operator() for non-const object </p>

<p>Definition at line <a class="el" href="zgematrix-io_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-io_8hpp_source.html">zgematrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-misc_8hpp_source.html#l00025">identity()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00003">operator+=()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00026">operator-=()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00099">read()</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00079">write()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;0 || j&lt;0 || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&lt;=<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a> || <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>&lt;=j ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The required component is out of the matrix size.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; j &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="comment">//return array[i+m*j];</span>
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>[j][<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>];
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae99571e5328f4a3fea580570f28ae8fd"></a><!-- doxytag: member="zgematrix::operator()" ref="ae99571e5328f4a3fea580570f28ae8fd" args="(const long &amp;, const long &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">comple zgematrix::operator() </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>operator() for const object </p>

<p>Definition at line <a class="el" href="zgematrix-io_8hpp_source.html#l00020">20</a> of file <a class="el" href="zgematrix-io_8hpp_source.html">zgematrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;0 || j&lt;0 || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&lt;=<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a> || <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>&lt;=j ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The required component is out of the matrix size.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; j &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="comment">//return array[i+m*j];</span>
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>[j][<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>];
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae4c7fd169ea9af3edd4b96e47d036abc"></a><!-- doxytag: member="zgematrix::set" ref="ae4c7fd169ea9af3edd4b96e47d036abc" args="(const long &amp;, const long &amp;, const comple &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; <a class="el" href="classzgematrix.html#ae4c7fd169ea9af3edd4b96e47d036abc">zgematrix::set</a> </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const comple &amp;&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>set value for const object </p>

<p>Definition at line <a class="el" href="zgematrix-io_8hpp_source.html#l00041">41</a> of file <a class="el" href="zgematrix-io_8hpp_source.html">zgematrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;0 || j&lt;0 || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&lt;=<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a> || <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>&lt;=j ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The required component is out of the matrix size.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; j &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="comment">//array[i+m*j] =v;</span>
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>[j][<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =v;
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a44faf684430d0fe9ded75c541298c7bc"></a><!-- doxytag: member="zgematrix::write" ref="a44faf684430d0fe9ded75c541298c7bc" args="(const char *) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgematrix.html#a44faf684430d0fe9ded75c541298c7bc">zgematrix::write</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="zgematrix-io_8hpp_source.html#l00079">79</a> of file <a class="el" href="zgematrix-io_8hpp_source.html">zgematrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  std::ofstream ofs(filename, std::ios::trunc);
  ofs.setf(std::cout.flags());
  ofs.precision(std::cout.precision());
  ofs.width(std::cout.width());
  ofs.fill(std::cout.fill());
  
  ofs &lt;&lt; <span class="stringliteral">&quot;#zgematrix&quot;</span> &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; std::endl;
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++ ){
      ofs &lt;&lt; <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;
    }
    ofs &lt;&lt; std::endl;
  }
  
  ofs.close();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a28598ef222b11d98993cb52125886e39"></a><!-- doxytag: member="zgematrix::read" ref="a28598ef222b11d98993cb52125886e39" args="(const char *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgematrix.html#a28598ef222b11d98993cb52125886e39">zgematrix::read</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="zgematrix-io_8hpp_source.html#l00099">99</a> of file <a class="el" href="zgematrix-io_8hpp_source.html">zgematrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00081">resize()</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-constructor_8hpp_source.html#l00070">zgematrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  std::ifstream s( filename );
  <span class="keywordflow">if</span>(!s){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The file \&quot;&quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot;\&quot; can not be opened.&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }

  std::string id;
  s &gt;&gt; id;
  <span class="keywordflow">if</span>( <span class="keywordtype">id</span> != <span class="stringliteral">&quot;zgematrix&quot;</span> &amp;&amp; <span class="keywordtype">id</span> != <span class="stringliteral">&quot;#zgematrix&quot;</span> ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The type name of the file \&quot;&quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot;\&quot; is not zgematrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Its type name was &quot;</span> &lt;&lt; <span class="keywordtype">id</span> &lt;&lt; <span class="stringliteral">&quot; .&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
  
  s &gt;&gt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &gt;&gt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>;
  <a class="code" href="classzgematrix.html#a701afc041695672eab0d0f3e8466668a">resize</a>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, n);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++ ){
      s &gt;&gt; <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
  }
  <span class="keywordflow">if</span>(s.eof()){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;There is something is wrong with the file \&quot;&quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot;\&quot;.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Most likely, there is not enough data components, or a linefeed code or space code is missing at the end of the last line.&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
  
  s &gt;&gt; id;
  <span class="keywordflow">if</span>(!s.eof()){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;There is something is wrong with the file \&quot;&quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot;\&quot;.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Most likely, there are extra data components.&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
  
  
  s.close();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a2dad2eca3c01b51176748bdb11018ca6"></a><!-- doxytag: member="zgematrix::clear" ref="a2dad2eca3c01b51176748bdb11018ca6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgematrix.html#a2dad2eca3c01b51176748bdb11018ca6">zgematrix::clear</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>clear all the matrix data and set the sizes 0 </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-lapack_8hpp_source.html#l00058">zgels()</a>, and <a class="el" href="zgematrix-lapack_8hpp_source.html#l00293">zgelss()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> =0;
  <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> =0;
  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>;
  <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =NULL;
  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>;
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =NULL;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a23c5c0550e2f3ccfda786bb126e181d5"></a><!-- doxytag: member="zgematrix::zero" ref="a23c5c0550e2f3ccfda786bb126e181d5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; <a class="el" href="classzgematrix.html#a23c5c0550e2f3ccfda786bb126e181d5">zgematrix::zero</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>change the matrix into a zero matrix </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00015">15</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>

<p>Referenced by <a class="el" href="__zgbmatrix-__zgematrix_8hpp_source.html#l00049">operator*()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00048">operator*=()</a>, and <a class="el" href="__zgsmatrix-cast_8hpp_source.html#l00003">_zgsmatrix::to_zgematrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =comple(0.0,0.0);
  }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a4249458338fdef82dcba63549ee67c47"></a><!-- doxytag: member="zgematrix::identity" ref="a4249458338fdef82dcba63549ee67c47" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; <a class="el" href="classzgematrix.html#a4249458338fdef82dcba63549ee67c47">zgematrix::identity</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>change the matrix into an identity matrix </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00025">25</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>

<p>Referenced by <a class="el" href="__zgbmatrix-calc_8hpp_source.html#l00018">i()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Only square matrix can be a identity matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;The matrix size was &quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =comple(0.0,0.0); }
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>) =comple(1.0,0.0); }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6325997e36e2aaf3925f5b7de9534fa2"></a><!-- doxytag: member="zgematrix::chsign" ref="a6325997e36e2aaf3925f5b7de9534fa2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgematrix.html#a6325997e36e2aaf3925f5b7de9534fa2">zgematrix::chsign</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>change sign(+/-) of the matrix </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00044">44</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =-<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]; }
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab38f116cfe44c23da382fc017d1966d9"></a><!-- doxytag: member="zgematrix::copy" ref="ab38f116cfe44c23da382fc017d1966d9" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgematrix.html#ab38f116cfe44c23da382fc017d1966d9">zgematrix::copy</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>make a deep copy of the matrix </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00051">51</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-zgematrix_8hpp_source.html#l00003">operator=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> =mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>;
  <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> =mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>;
  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>;
  <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =<span class="keyword">new</span> comple[<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>];
  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>;
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =<span class="keyword">new</span> comple*[<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>];
  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =&amp;<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>*<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>]; }

  zcopy_(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ace21c10bd4ff467ce270e17d9f57c7e3"></a><!-- doxytag: member="zgematrix::shallow_copy" ref="ace21c10bd4ff467ce270e17d9f57c7e3" args="(const _zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgematrix.html#ace21c10bd4ff467ce270e17d9f57c7e3">zgematrix::shallow_copy</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>make a shallow copy of the matrix<br/>
 This function is not designed to be used in project codes. </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00067">67</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00011">_zgematrix::array</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00012">_zgematrix::darray</a>, <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00009">_zgematrix::m</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00010">_zgematrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__zgematrix-misc_8hpp_source.html#l00003">_zgematrix::nullify()</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00003">operator=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> =mat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>;
  <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> =mat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a>;
  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>;
  <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =mat.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>;
  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>;
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =mat.<a class="code" href="class__zgematrix.html#aef0739e6d23790625a881e082e24c7fa" title="array of pointers of column head addresses">darray</a>;
  
  mat.<a class="code" href="class__zgematrix.html#aeadbdaaeb74b772af5a741d23fd91e08">nullify</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a701afc041695672eab0d0f3e8466668a"></a><!-- doxytag: member="zgematrix::resize" ref="a701afc041695672eab0d0f3e8466668a" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgematrix.html#a701afc041695672eab0d0f3e8466668a">zgematrix::resize</a> </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>resize the matrix </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00081">81</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-io_8hpp_source.html#l00099">read()</a>, and <a class="el" href="zgematrix-lapack_8hpp_source.html#l00473">zgesvd()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( _m&lt;0 || _n&lt;0 ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Matrix sizes must be positive integers.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; _m &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; _n &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> =_m;
  <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> =_n;
  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>;
  <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =<span class="keyword">new</span> comple[<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>];
  <span class="keyword">delete</span> [] <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>;
  <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =<span class="keyword">new</span> comple*[<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>];
  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =&amp;<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>*<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>]; }
}
</pre></div>
</div>
</div>
<a class="anchor" id="a62ac95b02d6826547eedeab6c961e33c"></a><!-- doxytag: member="zgematrix::row" ref="a62ac95b02d6826547eedeab6c961e33c" args="(const long &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zrovector.html">_zrovector</a> <a class="el" href="classzgematrix.html#a62ac95b02d6826547eedeab6c961e33c">zgematrix::row</a> </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_m</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>get row of the matrix </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00107">107</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-misc_8hpp_source.html#l00159">_</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( _m&lt;0 || _m&gt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Input row number must be between 0 and &quot;</span> &lt;&lt; m &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was &quot;</span> &lt;&lt; _m &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzrovector.html" title="Complex Double-precision Row Vector Class.">zrovector</a> v(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){ v(j)=(*this)(_m,j); }
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(v);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aca19ca11e6baf679f3e397bb0e6fc47c"></a><!-- doxytag: member="zgematrix::col" ref="aca19ca11e6baf679f3e397bb0e6fc47c" args="(const long &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zcovector.html">_zcovector</a> <a class="el" href="classzgematrix.html#aca19ca11e6baf679f3e397bb0e6fc47c">zgematrix::col</a> </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_n</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>get column of the matrix </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00125">125</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-misc_8hpp_source.html#l00159">_</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( _n&lt;0 || _n&gt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Input row number must be between 0 and &quot;</span> &lt;&lt; n &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was &quot;</span> &lt;&lt; _n &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzcovector.html" title="Complex Double-precision Column Vector Class.">zcovector</a> v(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ v(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>)=(*this)(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,_n); }
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(v);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a06d72be5d303375e7f6319ca95d29600"></a><!-- doxytag: member="zgematrix::zgesv" ref="a06d72be5d303375e7f6319ca95d29600" args="(zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#a06d72be5d303375e7f6319ca95d29600">zgematrix::zgesv</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve A*X=Y using zgesv<br/>
 The argument is zgematrix Y. Y is overwritten and become the solution X. A is also overwritten and become P*l*U. </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00005">5</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>

<p>Referenced by <a class="el" href="__zgematrix-calc_8hpp_source.html#l00019">i()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrices cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG </span>
<span class="preprocessor"></span>  
  <span class="keywordtype">long</span> NRHS(mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>), LDA(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>), *IPIV(<span class="keyword">new</span> <span class="keywordtype">long</span>[<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>]), LDB(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), INFO(1);
  zgesv_(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, NRHS, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, IPIV, mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDB, INFO);
  <span class="keyword">delete</span> [] IPIV;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad02dcbfd68ddfbeac864e89773cd5f31"></a><!-- doxytag: member="zgematrix::zgesv" ref="ad02dcbfd68ddfbeac864e89773cd5f31" args="(zcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#a06d72be5d303375e7f6319ca95d29600">zgematrix::zgesv</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzcovector.html">zcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve A*x=y using zgesv<br/>
 The argument is zcovector y. y is overwritten and become the solution x. A is also overwritten and become P*l*U. </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00031">31</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zcovector_8hpp_source.html#l00010">zcovector::array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zcovector_8hpp_source.html#l00009">zcovector::l</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These matrix and vector cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG </span>
<span class="preprocessor"></span>  <span class="keywordtype">long</span> NRHS(1), LDA(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>), *IPIV(<span class="keyword">new</span> <span class="keywordtype">long</span>[<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>]), LDB(vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>), INFO(1);
  zgesv_(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, NRHS, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, IPIV, vec.<a class="code" href="classzcovector.html#a7c812242cb084ba940fb61755a3c8cf7" title="1D array to store vector data">array</a>, LDB, INFO);
  <span class="keyword">delete</span> [] IPIV;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9976c951912b2c4b4a37cd7e96624ffe"></a><!-- doxytag: member="zgematrix::zgels" ref="a9976c951912b2c4b4a37cd7e96624ffe" args="(zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#a9976c951912b2c4b4a37cd7e96624ffe">zgematrix::zgels</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve overdetermined or underdetermined A*X=Y using zgels<br/>
 </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00058">58</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrices cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG    </span>
<span class="preprocessor"></span>  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> tmp(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
      tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) =mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }}
    mat.<a class="code" href="classzgematrix.html#a2dad2eca3c01b51176748bdb11018ca6">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(mat,tmp);
  }
  
  <span class="keywordtype">char</span> TRANS(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> NRHS(mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>), LDA(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), LDB(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>),
    LWORK(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>)+std::max(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>),NRHS)), INFO(1);
  comple *WORK(<span class="keyword">new</span> comple[LWORK]);
  zgels_(TRANS, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, NRHS, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDB, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&gt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//overdetermined</span>
    <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> tmp(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;tmp.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;tmp.n; j++){
      tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) =mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }}
    mat.<a class="code" href="classzgematrix.html#a2dad2eca3c01b51176748bdb11018ca6">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(mat,tmp);
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="af74ea023e16c5ca2628d219d671cda2d"></a><!-- doxytag: member="zgematrix::zgels" ref="af74ea023e16c5ca2628d219d671cda2d" args="(zcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#a9976c951912b2c4b4a37cd7e96624ffe">zgematrix::zgels</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzcovector.html">zcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve overdetermined or underdetermined A*x=y using zgels<br/>
 </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00103">103</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zcovector_8hpp_source.html#l00010">zcovector::array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zcovector-misc_8hpp_source.html#l00003">zcovector::clear()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zcovector_8hpp_source.html#l00009">zcovector::l</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These matrix and vector cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG    </span>
<span class="preprocessor"></span>  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classzcovector.html" title="Complex Double-precision Column Vector Class.">zcovector</a> tmp(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>)=vec(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>); }
    vec.<a class="code" href="classzcovector.html#aa955237a69da80b75255549ceeafb365">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(vec,tmp);
  }
  
  <span class="keywordtype">char</span> TRANS(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> NRHS(1), LDA(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), LDB(vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>),
    LWORK(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>)+std::max(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>),NRHS)), INFO(1);
  comple *WORK(<span class="keyword">new</span> comple[LWORK]);
  zgels_(TRANS, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, NRHS, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, vec.<a class="code" href="classzcovector.html#a7c812242cb084ba940fb61755a3c8cf7" title="1D array to store vector data">array</a>, LDB, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&gt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//overdetermined</span>
    <a class="code" href="classzcovector.html" title="Complex Double-precision Column Vector Class.">zcovector</a> tmp(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;tmp.l; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>)=vec(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>); }
    vec.<a class="code" href="classzcovector.html#aa955237a69da80b75255549ceeafb365">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(vec,tmp);
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9c86aed41e48cc68b85cc48a8f8e862c"></a><!-- doxytag: member="zgematrix::zgels" ref="a9c86aed41e48cc68b85cc48a8f8e862c" args="(zgematrix &amp;, drovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#a9976c951912b2c4b4a37cd7e96624ffe">zgematrix::zgels</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdrovector.html">drovector</a> &amp;&#160;</td>
          <td class="paramname"><em>residual</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve overdetermined or underdetermined A*X=Y using zgels with the sum of residual squares output<br/>
 The residual is set as the columnwise sum of residual squares for overdetermined problems while it is always zero for underdetermined problems. </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00149">149</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="drovector_8hpp_source.html#l00009">drovector::l</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="drovector-misc_8hpp_source.html#l00072">drovector::resize()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>, and <a class="el" href="drovector-misc_8hpp_source.html#l00013">drovector::zero()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrices cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  residual.<a class="code" href="classdrovector.html#a3b2c5a9ed38d2e7d42cbafc635e45db2">resize</a>(mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>); residual.<a class="code" href="classdrovector.html#a845494ed14746353f61c962b3a5b5793">zero</a>();
  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> tmp(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
      tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) =mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }}
    mat.<a class="code" href="classzgematrix.html#a2dad2eca3c01b51176748bdb11018ca6">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(mat,tmp);
  }
  
  <span class="keywordtype">char</span> TRANS(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> NRHS(mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>), LDA(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), LDB(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>),
    LWORK(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>)+std::max(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>),NRHS)), INFO(1);
  comple *WORK(<span class="keyword">new</span> comple[LWORK]);
  zgels_(TRANS, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, NRHS, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDB, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&gt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//overdetermined</span>
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;residual.<a class="code" href="classdrovector.html#a08df95e527c85a13ed99c4a0fd2b303e" title="vector size">l</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>-<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
      residual(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>) += std::norm(mat(n+j,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>));
    }}
    
    <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> tmp(n,mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;tmp.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;tmp.n; j++){
      tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) =mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }}
    mat.<a class="code" href="classzgematrix.html#a2dad2eca3c01b51176748bdb11018ca6">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(mat,tmp);
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a70141ecb4bd86d1cccfa819e897dc9bc"></a><!-- doxytag: member="zgematrix::zgels" ref="a70141ecb4bd86d1cccfa819e897dc9bc" args="(zcovector &amp;, double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#a9976c951912b2c4b4a37cd7e96624ffe">zgematrix::zgels</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzcovector.html">zcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>residual</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve overdetermined or underdetermined A*x=y using zgels with the sum of residual squares output<br/>
 The residual is set as the sum of residual squares for overdetermined problems while it is always zero for underdetermined problems. </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00204">204</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zcovector_8hpp_source.html#l00010">zcovector::array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zcovector-misc_8hpp_source.html#l00003">zcovector::clear()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zcovector_8hpp_source.html#l00009">zcovector::l</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These matrix and vector cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG    </span>
<span class="preprocessor"></span>  
  residual=0.0;
  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classzcovector.html" title="Complex Double-precision Column Vector Class.">zcovector</a> tmp(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>)=vec(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>); }
    vec.<a class="code" href="classzcovector.html#aa955237a69da80b75255549ceeafb365">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(vec,tmp);
  }
  
  <span class="keywordtype">char</span> TRANS(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> NRHS(1), LDA(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), LDB(vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>),
    LWORK(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>)+std::max(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>),NRHS)), INFO(1);
  comple *WORK(<span class="keyword">new</span> comple[LWORK]);
  zgels_(TRANS, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, NRHS, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, vec.<a class="code" href="classzcovector.html#a7c812242cb084ba940fb61755a3c8cf7" title="1D array to store vector data">array</a>, LDB, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&gt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//overdetermined</span>
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>-<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ residual+=std::norm(vec(n+<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>)); }
    
    <a class="code" href="classzcovector.html" title="Complex Double-precision Column Vector Class.">zcovector</a> tmp(n);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;tmp.l; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>)=vec(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>); }
    vec.<a class="code" href="classzcovector.html#aa955237a69da80b75255549ceeafb365">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(vec,tmp);
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aade70e3c2ecde1c7a63023fbd84210d9"></a><!-- doxytag: member="zgematrix::zgelss" ref="aade70e3c2ecde1c7a63023fbd84210d9" args="(zcovector &amp;, dcovector &amp;, long &amp;, const double)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#aade70e3c2ecde1c7a63023fbd84210d9">zgematrix::zgelss</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzcovector.html">zcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>B</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long &amp;&#160;</td>
          <td class="paramname"><em>RANK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>RCOND</em> = <code>-1.</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate the least-squares-least-norm solution for overdetermined or underdetermined A*x=y using zgelss<br/>
 </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00254">254</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zcovector_8hpp_source.html#l00010">zcovector::array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="zcovector-misc_8hpp_source.html#l00003">zcovector::clear()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zcovector_8hpp_source.html#l00009">zcovector::l</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="dcovector-misc_8hpp_source.html#l00072">dcovector::resize()</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=B.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These matrix and vector cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; B.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG    </span>
<span class="preprocessor"></span>  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classzcovector.html" title="Complex Double-precision Column Vector Class.">zcovector</a> tmp(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;B.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>)=B(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>); }
    B.<a class="code" href="classzcovector.html#aa955237a69da80b75255549ceeafb365">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(B,tmp);
  }
  
  S.<a class="code" href="classdcovector.html#a969d5aaa75cde3f7b1ddcfcdefddd7af">resize</a>(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>));
  
  <span class="keywordtype">long</span> NRHS(1), LDA(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), LDB(B.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>),
    LWORK(2*std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>) +std::max(std::max(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>),NRHS)), INFO(1);
  <span class="keywordtype">double</span> *RWORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[5*std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>)]);
  comple *WORK(<span class="keyword">new</span> comple[LWORK]);
  zgelss_(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, NRHS, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, B.<a class="code" href="classzcovector.html#a7c812242cb084ba940fb61755a3c8cf7" title="1D array to store vector data">array</a>, LDB, S.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, RCOND, RANK, 
          WORK, LWORK, RWORK, INFO);
  <span class="keyword">delete</span> [] RWORK; <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a745354dfc747d73c6a2ea53f0045c7e1"></a><!-- doxytag: member="zgematrix::zgelss" ref="a745354dfc747d73c6a2ea53f0045c7e1" args="(zgematrix &amp;, dcovector &amp;, long &amp;, const double)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#aade70e3c2ecde1c7a63023fbd84210d9">zgematrix::zgelss</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>B</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long &amp;&#160;</td>
          <td class="paramname"><em>RANK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>RCOND</em> = <code>-1.</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate the least-squares-least-norm solution for overdetermined or underdetermined A*x=y using zgelss<br/>
 </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00293">293</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="dcovector-misc_8hpp_source.html#l00072">dcovector::resize()</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=B.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These matrix and vector cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; B.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; B.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG    </span>
<span class="preprocessor"></span>  
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> tmp(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,B.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;B.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;B.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
        tmp(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)=B(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
      }
    }
    B.<a class="code" href="classzgematrix.html#a2dad2eca3c01b51176748bdb11018ca6">clear</a>();
    <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(B,tmp);
  }
  
  S.<a class="code" href="classdcovector.html#a969d5aaa75cde3f7b1ddcfcdefddd7af">resize</a>(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>));
  
  <span class="keywordtype">long</span> NRHS(B.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>), LDA(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), LDB(B.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>),
    LWORK(2*std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>) +std::max(std::max(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>),NRHS)), INFO(1);
  <span class="keywordtype">double</span> *RWORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[5*std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>)]);
  comple *WORK(<span class="keyword">new</span> comple[LWORK]);
  zgelss_(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, NRHS, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, B.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDB, S.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, RCOND, RANK, 
          WORK, LWORK, RWORK, INFO);
  <span class="keyword">delete</span> [] RWORK; <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad20e206765b06af26c30706ea3d04456"></a><!-- doxytag: member="zgematrix::zgeev" ref="ad20e206765b06af26c30706ea3d04456" args="(std::vector&lt; comple &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#ad20e206765b06af26c30706ea3d04456">zgematrix::zgeev</a> </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; comple &gt; &amp;&#160;</td>
          <td class="paramname"><em>w</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate eigenvalues<br/>
 The argument need not to be initialized. w is overwitten and become eigenvalues. This matrix is also overwritten. </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00342">342</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix cannot have eigenvalues.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  w.resize(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordtype">char</span> JOBVL(<span class="charliteral">&#39;n&#39;</span>), JOBVR(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> LDA(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>), LDVL(1), LDVR(1), LWORK(4*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>), INFO(1);
  <span class="keywordtype">double</span> *RWORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[2*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>]);
  comple *VL(NULL), *VR(NULL), 
    *WORK(<span class="keyword">new</span> comple[LWORK]);
  zgeev_(JOBVL, JOBVR, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, &amp;w[0], 
         VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO);
  <span class="keyword">delete</span> [] RWORK; <span class="keyword">delete</span> [] WORK; <span class="keyword">delete</span> [] VL; <span class="keyword">delete</span> [] VR;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a77f893dbd14c3b59a8c0fb4dd48b864a"></a><!-- doxytag: member="zgematrix::zgeev" ref="a77f893dbd14c3b59a8c0fb4dd48b864a" args="(std::vector&lt; comple &gt; &amp;, std::vector&lt; zcovector &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#ad20e206765b06af26c30706ea3d04456">zgematrix::zgeev</a> </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; comple &gt; &amp;&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classzcovector.html">zcovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate eigenvalues and right eigenvectors<br/>
 All of the arguments need not to be initialized. w, vr are overwitten and become eigenvalues and right eigenvectors, respectively. This matrix is also overwritten. </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00376">376</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix cannot have eigenvalues.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  w.resize(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);  vr.resize(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ vr[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>].resize(n); }
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> VR(n,n);
  <span class="keywordtype">char</span> JOBVL(<span class="charliteral">&#39;n&#39;</span>), JOBVR(<span class="charliteral">&#39;V&#39;</span>);
  <span class="keywordtype">long</span> LDA(n), LDVL(1), LDVR(n), LWORK(4*n), INFO(1);
  <span class="keywordtype">double</span> *RWORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[2*n]);
  comple *VL(NULL), *WORK(<span class="keyword">new</span> comple[LWORK]);
  zgeev_(JOBVL, JOBVR, n, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, &amp;w[0], 
         VL, LDVL, VR.array, LDVR, WORK, LWORK, RWORK, INFO);
  <span class="keyword">delete</span> [] RWORK; <span class="keyword">delete</span> [] WORK; <span class="keyword">delete</span> [] VL;
  <span class="comment"></span>
<span class="comment">  //// forming ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    vr[j](<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>) = VR(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
  }}
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a684c4be72b789e64218072efe7f8036b"></a><!-- doxytag: member="zgematrix::zgeev" ref="a684c4be72b789e64218072efe7f8036b" args="(std::vector&lt; comple &gt; &amp;, std::vector&lt; zrovector &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#ad20e206765b06af26c30706ea3d04456">zgematrix::zgeev</a> </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; comple &gt; &amp;&#160;</td>
          <td class="paramname"><em>w</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classzrovector.html">zrovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vl</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate eigenvalues and left eigenvectors<br/>
 All of the arguments need not to be initialized. w, vr are overwitten and become eigenvalues and left eigenvectors, respectively. This matrix is also overwritten. </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00417">417</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__zcovector-calc_8hpp_source.html#l00015">conj()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix cannot have eigenvalues.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  w.resize(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);  vl.resize(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ vl[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>].resize(n); }
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> VL(n,n);
  <span class="keywordtype">char</span> JOBVL(<span class="charliteral">&#39;V&#39;</span>), JOBVR(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> LDA(n), LDVL(n), LDVR(1), LWORK(4*n), INFO(1);
  <span class="keywordtype">double</span> *RWORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[2*n]);
  comple *VR(NULL), *WORK(<span class="keyword">new</span> comple[LWORK]);
  zgeev_(JOBVL, JOBVR, n, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, &amp;w[0], 
         VL.array, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO);
  <span class="keyword">delete</span> [] RWORK; <span class="keyword">delete</span> [] WORK; <span class="keyword">delete</span> [] VR;
  <span class="comment"></span>
<span class="comment">  //// forming ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    vl[j](<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>) = <a class="code" href="__zcovector-calc_8hpp.html#a773c28a661407104353f70c7a3ab88f2">std::conj</a>(VL(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j));
  }}
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a41c2fa363688f6e70a9acc4c4f78cc8a"></a><!-- doxytag: member="zgematrix::zgesvd" ref="a41c2fa363688f6e70a9acc4c4f78cc8a" args="(dcovector &amp;, zgematrix &amp;, zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#a41c2fa363688f6e70a9acc4c4f78cc8a">zgematrix::zgesvd</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>U</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>VT</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>compute the singular value decomposition (SVD)<br/>
 The arguments are zcocector S, zgematrix U and VT. All of them need not to be initialized. S, U and VT are overwitten and become singular values, left singular vectors, and right singular vectors respectively. This matrix also overwritten. </p>

<p>Definition at line <a class="el" href="zgematrix-lapack_8hpp_source.html#l00473">473</a> of file <a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00081">resize()</a>, and <a class="el" href="dcovector-misc_8hpp_source.html#l00072">dcovector::resize()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordtype">char</span> JOBU(<span class="charliteral">&#39;A&#39;</span>), JOBVT(<span class="charliteral">&#39;A&#39;</span>);
  <span class="keywordtype">long</span> LDA(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), LDU(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), LDVT(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>),
    LWORK(std::max(3*std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>)+std::max(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>),5*std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>))), INFO(1);
  <span class="keywordtype">double</span> *RWORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[5*std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>)]);
  comple *WORK(<span class="keyword">new</span> comple[LWORK]);
  S.<a class="code" href="classdcovector.html#a969d5aaa75cde3f7b1ddcfcdefddd7af">resize</a>(std::min(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>)); U.<a class="code" href="classzgematrix.html#a701afc041695672eab0d0f3e8466668a">resize</a>(LDU,<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>); VT.<a class="code" href="classzgematrix.html#a701afc041695672eab0d0f3e8466668a">resize</a>(LDVT,<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  
  zgesvd_(JOBU, JOBVT, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDA, S.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, U.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 
          LDU, VT.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, LDVT, WORK, LWORK, RWORK, INFO);
  <span class="keyword">delete</span> [] RWORK; <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a847f1759161ed62a1c2b10a624f27603"></a><!-- doxytag: member="zgematrix::operator=" ref="a847f1759161ed62a1c2b10a624f27603" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix=zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-zgematrix_8hpp_source.html">zgematrix-zgematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00051">copy()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>!=mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>){ <span class="comment">// if it is NOT self substitution</span>
    <a class="code" href="classzgematrix.html#ab38f116cfe44c23da382fc017d1966d9">copy</a>(mat);
  }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="afc3a9937df2f0a8057912040a0960ae4"></a><!-- doxytag: member="zgematrix::operator=" ref="afc3a9937df2f0a8057912040a0960ae4" args="(const _zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix=<a class="el" href="class__zgematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class">_zgematrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-__zgematrix_8hpp_source.html">zgematrix-_zgematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-misc_8hpp_source.html#l00067">shallow_copy()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html#ace21c10bd4ff467ce270e17d9f57c7e3">shallow_copy</a>(mat);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a51ca2da3fa76d9d02c5d7019513f8cd8"></a><!-- doxytag: member="zgematrix::operator+=" ref="a51ca2da3fa76d9d02c5d7019513f8cd8" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+=zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgematrix_8hpp_source.html#l00017">17</a> of file <a class="el" href="zgematrix-zgematrix_8hpp_source.html">zgematrix-zgematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]+=mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]; }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab7d1e2f0bb7c6bc1a3e1f0e0a2c8fc5f"></a><!-- doxytag: member="zgematrix::operator+=" ref="ab7d1e2f0bb7c6bc1a3e1f0e0a2c8fc5f" args="(const _zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+=<a class="el" href="class__zgematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class">_zgematrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00015">15</a> of file <a class="el" href="zgematrix-__zgematrix_8hpp_source.html">zgematrix-_zgematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00011">_zgematrix::array</a>, <a class="el" href="__zgematrix-misc_8hpp_source.html#l00013">_zgematrix::destroy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00009">_zgematrix::m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__zgematrix_8hpp_source.html#l00010">_zgematrix::n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]+=mat.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]; }
  
  mat.<a class="code" href="class__zgematrix.html#a447e4807955f2b359831116d90aad098">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a27c80807bef3716ac6177dd0b240c969"></a><!-- doxytag: member="zgematrix::operator+=" ref="a27c80807bef3716ac6177dd0b240c969" args="(const zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+=zhematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zhematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-zhematrix_8hpp_source.html">zgematrix-zhematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zhematrix_8hpp_source.html#l00011">zhematrix::n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>( <span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
    <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) += mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
  }}
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="af6bc4a9ee4ff20a3d9033488878a8dee"></a><!-- doxytag: member="zgematrix::operator+=" ref="af6bc4a9ee4ff20a3d9033488878a8dee" args="(const _zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+=<a class="el" href="class__zhematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class">_zhematrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zhematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-__zhematrix_8hpp_source.html">zgematrix-_zhematrix.hpp</a>.</p>

<p>References <a class="el" href="__zhematrix-misc_8hpp_source.html#l00012">_zhematrix::destroy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zhematrix_8hpp_source.html#l00010">_zhematrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
    <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) +=mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
  }}
  
  mat.<a class="code" href="class__zhematrix.html#a2acc6b7bde22ce109468a72d8d40abcc">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a212fb29d7d1ab3d932c04c7ce4fb03d8"></a><!-- doxytag: member="zgematrix::operator+=" ref="a212fb29d7d1ab3d932c04c7ce4fb03d8" args="(const zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+=zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html">zgematrix-zgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00011">zgbmatrix::kl</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00012">zgbmatrix::ku</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00009">zgbmatrix::m</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00010">zgbmatrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>-mat.<a class="code" href="classzgbmatrix.html#af8f8a5015069bdb6c268652ee25838c0" title="lower band width">kl</a>); j&lt;std::min(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>+mat.<a class="code" href="classzgbmatrix.html#a2a36d59681d1b2f13120a4b4be9203e8" title="upper band width">ku</a>+1); j++){
      <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)+=mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac1ff9abeb9ab4a32f6ca47cea1e8ba9e"></a><!-- doxytag: member="zgematrix::operator+=" ref="ac1ff9abeb9ab4a32f6ca47cea1e8ba9e" args="(const _zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+=<a class="el" href="class__zgbmatrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class">_zgbmatrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html">zgematrix-_zgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="__zgbmatrix-misc_8hpp_source.html#l00016">_zgbmatrix::destroy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00011">_zgbmatrix::kl</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00012">_zgbmatrix::ku</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00009">_zgbmatrix::m</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00010">_zgbmatrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>-mat.<a class="code" href="class__zgbmatrix.html#a0a88723ded8d7728a8b90ddfd28e5d0c" title="lower band width">kl</a>); j&lt;std::min(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>+mat.<a class="code" href="class__zgbmatrix.html#a0b32db6f9ae374d5d390e24686433a77" title="upper band width">ku</a>+1); j++){
      <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)+=mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
  }
  
  mat.<a class="code" href="class__zgbmatrix.html#a30eb8221fd3a4046e3c3eb6ba9902bc8">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="afc4038ce4a8fa8c78a892c8a33eb46ce"></a><!-- doxytag: member="zgematrix::operator+=" ref="afc4038ce4a8fa8c78a892c8a33eb46ce" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aadc2f93094c823b06d65857a75db21c0"></a><!-- doxytag: member="zgematrix::operator+=" ref="aadc2f93094c823b06d65857a75db21c0" args="(const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="abdf03db4570d14c35310f37937cb47de"></a><!-- doxytag: member="zgematrix::operator+=" ref="abdf03db4570d14c35310f37937cb47de" args="(const zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a05e6952da8aaddcba33fca5c37fe5725"></a><!-- doxytag: member="zgematrix::operator+=" ref="a05e6952da8aaddcba33fca5c37fe5725" args="(const _zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6f035007b57bd37299c6d63880073f01"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="a6f035007b57bd37299c6d63880073f01" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix operator-= </p>

<p>Definition at line <a class="el" href="zgematrix-zgematrix_8hpp_source.html#l00034">34</a> of file <a class="el" href="zgematrix-zgematrix_8hpp_source.html">zgematrix-zgematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]-=mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]; }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a538726a67e23031d8ece9e49bb4cdedb"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="a538726a67e23031d8ece9e49bb4cdedb" args="(const _zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-=<a class="el" href="class__zgematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class">_zgematrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00034">34</a> of file <a class="el" href="zgematrix-__zgematrix_8hpp_source.html">zgematrix-_zgematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00011">_zgematrix::array</a>, <a class="el" href="__zgematrix-misc_8hpp_source.html#l00013">_zgematrix::destroy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00009">_zgematrix::m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__zgematrix_8hpp_source.html#l00010">_zgematrix::n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]-=mat.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]; }

  mat.<a class="code" href="class__zgematrix.html#a447e4807955f2b359831116d90aad098">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1d61ff40e32bfcf1a5e74fdf996d6f9d"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="a1d61ff40e32bfcf1a5e74fdf996d6f9d" args="(const zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-=zhematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zhematrix_8hpp_source.html#l00023">23</a> of file <a class="el" href="zgematrix-zhematrix_8hpp_source.html">zgematrix-zhematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zhematrix_8hpp_source.html#l00011">zhematrix::n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
    <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) -= mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
  }}
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0ae446c9947098274dcf5ad07aeaf01c"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="a0ae446c9947098274dcf5ad07aeaf01c" args="(const _zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-=<a class="el" href="class__zhematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class">_zhematrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zhematrix_8hpp_source.html#l00024">24</a> of file <a class="el" href="zgematrix-__zhematrix_8hpp_source.html">zgematrix-_zhematrix.hpp</a>.</p>

<p>References <a class="el" href="__zhematrix-misc_8hpp_source.html#l00012">_zhematrix::destroy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zhematrix_8hpp_source.html#l00010">_zhematrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
    <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) -=mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
  }}
  
  mat.<a class="code" href="class__zhematrix.html#a2acc6b7bde22ce109468a72d8d40abcc">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab46a7724cc5d3eb5ac19a6d009bfd7e1"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="ab46a7724cc5d3eb5ac19a6d009bfd7e1" args="(const zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-=zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html#l00025">25</a> of file <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html">zgematrix-zgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00011">zgbmatrix::kl</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00012">zgbmatrix::ku</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00009">zgbmatrix::m</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00010">zgbmatrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>-mat.<a class="code" href="classzgbmatrix.html#af8f8a5015069bdb6c268652ee25838c0" title="lower band width">kl</a>); j&lt;std::min(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>+mat.<a class="code" href="classzgbmatrix.html#a2a36d59681d1b2f13120a4b4be9203e8" title="upper band width">ku</a>+1); j++){
      <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)-=mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac79ce11041677fbe044bee15abcc0795"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="ac79ce11041677fbe044bee15abcc0795" args="(const _zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-=<a class="el" href="class__zgbmatrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class">_zgbmatrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00026">26</a> of file <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html">zgematrix-_zgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="__zgbmatrix-misc_8hpp_source.html#l00016">_zgbmatrix::destroy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00011">_zgbmatrix::kl</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00012">_zgbmatrix::ku</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00009">_zgbmatrix::m</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00010">_zgbmatrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> || <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>-mat.<a class="code" href="class__zgbmatrix.html#a0a88723ded8d7728a8b90ddfd28e5d0c" title="lower band width">kl</a>); j&lt;std::min(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>+mat.<a class="code" href="class__zgbmatrix.html#a0b32db6f9ae374d5d390e24686433a77" title="upper band width">ku</a>+1); j++){
      <a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)-=mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
  }
  
  mat.<a class="code" href="class__zgbmatrix.html#a30eb8221fd3a4046e3c3eb6ba9902bc8">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a252406235be9f85e498fb0529dc070e0"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="a252406235be9f85e498fb0529dc070e0" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a11068af3e02efe3f6e8fe26d3c9aba35"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="a11068af3e02efe3f6e8fe26d3c9aba35" args="(const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7bace61e80a06f4504b6502f47482e97"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="a7bace61e80a06f4504b6502f47482e97" args="(const zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac39dff61bf4dc108bcc92be011700908"></a><!-- doxytag: member="zgematrix::operator&#45;=" ref="ac39dff61bf4dc108bcc92be011700908" args="(const _zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac07ea4dab49a9cdae20c56f65ee22786"></a><!-- doxytag: member="zgematrix::operator*=" ref="ac07ea4dab49a9cdae20c56f65ee22786" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix operator*= </p>

<p>Definition at line <a class="el" href="zgematrix-zgematrix_8hpp_source.html#l00051">51</a> of file <a class="el" href="zgematrix-zgematrix_8hpp_source.html">zgematrix-zgematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> );
  zgemm_( <span class="charliteral">&#39;n&#39;</span>, <span class="charliteral">&#39;n&#39;</span>, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, comple(1.0,0.0), <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,
          mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, comple(0.0,0.0), newmat.array, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> );

  <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(*<span class="keyword">this</span>,newmat);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a2cdc634e23dcd6be60757321688ccd85"></a><!-- doxytag: member="zgematrix::operator*=" ref="a2cdc634e23dcd6be60757321688ccd85" args="(const _zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*=<a class="el" href="class__zgematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class">_zgematrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00053">53</a> of file <a class="el" href="zgematrix-__zgematrix_8hpp_source.html">zgematrix-_zgematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00011">_zgematrix::array</a>, <a class="el" href="__zgematrix-misc_8hpp_source.html#l00013">_zgematrix::destroy()</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00009">_zgematrix::m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zgematrix_8hpp_source.html#l00010">_zgematrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> );
  zgemm_( <span class="charliteral">&#39;n&#39;</span>, <span class="charliteral">&#39;n&#39;</span>, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, comple(1.0,0.0), <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,
          mat.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>, mat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>, comple(0.0,0.0), newmat.array, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> );
  
  <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(*<span class="keyword">this</span>,newmat);
  mat.<a class="code" href="class__zgematrix.html#a447e4807955f2b359831116d90aad098">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a181fd63864a83662667555ea2dca39d0"></a><!-- doxytag: member="zgematrix::operator*=" ref="a181fd63864a83662667555ea2dca39d0" args="(const zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*=zhematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zhematrix_8hpp_source.html#l00043">43</a> of file <a class="el" href="zgematrix-zhematrix_8hpp_source.html">zgematrix-zhematrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zhematrix_8hpp_source.html#l00012">zhematrix::array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zhematrix_8hpp_source.html#l00011">zhematrix::n</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> );
  
  zhemm_( <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;l&#39;</span>, mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, comple(1.0,0.0), mat.<a class="code" href="classzhematrix.html#a9f868de87a273d9f02ff31700fd2e068" title="1D array to store matrix data">array</a>, mat.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>, 
          <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, comple(0.0,0.0), newmat.array, newmat.m );
  
  <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(*<span class="keyword">this</span>,newmat);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0106e2048ef83919b822b2ac50886c9c"></a><!-- doxytag: member="zgematrix::operator*=" ref="a0106e2048ef83919b822b2ac50886c9c" args="(const _zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*=<a class="el" href="class__zhematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class">_zhematrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zhematrix_8hpp_source.html#l00045">45</a> of file <a class="el" href="zgematrix-__zhematrix_8hpp_source.html">zgematrix-_zhematrix.hpp</a>.</p>

<p>References <a class="el" href="__zhematrix_8hpp_source.html#l00011">_zhematrix::array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__zhematrix-misc_8hpp_source.html#l00012">_zhematrix::destroy()</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zhematrix_8hpp_source.html#l00010">_zhematrix::n</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> );
  
  zhemm_( <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;l&#39;</span>, mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>, <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, comple(1.0,0.0), mat.<a class="code" href="class__zhematrix.html#a7d20e0d43e98b9c706126d92b8683e82" title="1D array to store matrix data">array</a>, mat.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>, 
          <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, comple(0.0,0.0), newmat.array, newmat.m );
  
  <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(*<span class="keyword">this</span>,newmat);
  mat.<a class="code" href="class__zhematrix.html#a2acc6b7bde22ce109468a72d8d40abcc">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="afce761a608caf031b31908796f421cac"></a><!-- doxytag: member="zgematrix::operator*=" ref="afce761a608caf031b31908796f421cac" args="(const zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*=zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html#l00046">46</a> of file <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html">zgematrix-zgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00011">zgbmatrix::kl</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00012">zgbmatrix::ku</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00009">zgbmatrix::m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zgbmatrix_8hpp_source.html#l00010">zgbmatrix::n</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00015">zero()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,mat.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> k=std::max(<span class="keywordtype">long</span>(0),j-mat.<a class="code" href="classzgbmatrix.html#a2a36d59681d1b2f13120a4b4be9203e8" title="upper band width">ku</a>); k&lt;std::min(mat.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>,j+mat.<a class="code" href="classzgbmatrix.html#af8f8a5015069bdb6c268652ee25838c0" title="lower band width">kl</a>+1); k++){
        newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)+=<a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,k)*mat(k,j);
      }
    }
  }
  
  <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(*<span class="keyword">this</span>,newmat);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aded70958a6b8fdf5bd67a367fea1a41d"></a><!-- doxytag: member="zgematrix::operator*=" ref="aded70958a6b8fdf5bd67a367fea1a41d" args="(const _zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*=<a class="el" href="class__zgbmatrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class">_zgbmatrix</a> operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00048">48</a> of file <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html">zgematrix-_zgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="__zgbmatrix-misc_8hpp_source.html#l00016">_zgbmatrix::destroy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">i</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00011">_zgbmatrix::kl</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00012">_zgbmatrix::ku</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00009">_zgbmatrix::m</a>, <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="__zgbmatrix_8hpp_source.html#l00010">_zgbmatrix::n</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00015">zero()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=mat.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,mat.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> k=std::max(<span class="keywordtype">long</span>(0),j-mat.<a class="code" href="class__zgbmatrix.html#a0b32db6f9ae374d5d390e24686433a77" title="upper band width">ku</a>); k&lt;std::min(mat.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>,j+mat.<a class="code" href="class__zgbmatrix.html#a0a88723ded8d7728a8b90ddfd28e5d0c" title="lower band width">kl</a>+1); k++){
        newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)+=<a class="code" href="classzgematrix.html#aa5e264152b6960dacdca75cad9386f51">operator()</a>(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,k)*mat(k,j);
      }
    }
  }
  
  <a class="code" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a>(*<span class="keyword">this</span>,newmat);
  mat.<a class="code" href="class__zgbmatrix.html#a30eb8221fd3a4046e3c3eb6ba9902bc8">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="abdd5c00aaf9849da77ef3743d6f6b64d"></a><!-- doxytag: member="zgematrix::operator*=" ref="abdd5c00aaf9849da77ef3743d6f6b64d" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4fd7d79a43771436249cb87f50f2537e"></a><!-- doxytag: member="zgematrix::operator*=" ref="a4fd7d79a43771436249cb87f50f2537e" args="(const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a19918f85ae2821fd684ed65c2ad50ad1"></a><!-- doxytag: member="zgematrix::operator*=" ref="a19918f85ae2821fd684ed65c2ad50ad1" args="(const zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5391f4169698f00c12d4d457c3da1795"></a><!-- doxytag: member="zgematrix::operator*=" ref="a5391f4169698f00c12d4d457c3da1795" args="(const _zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a>&amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a140b054de4267b9d20305b977cad539e"></a><!-- doxytag: member="zgematrix::operator*=" ref="a140b054de4267b9d20305b977cad539e" args="(const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*=double operator </p>

<p>Definition at line <a class="el" href="zgematrix-double_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-double_8hpp_source.html">zgematrix-double.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  zdscal_(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, d, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0aa312b7573075f28bb147c1789303a6"></a><!-- doxytag: member="zgematrix::operator*=" ref="a0aa312b7573075f28bb147c1789303a6" args="(const comple &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const comple &amp;&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*=comple operator </p>

<p>Definition at line <a class="el" href="zgematrix-complex_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-complex_8hpp_source.html">zgematrix-complex.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  zscal_(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, d, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9d71013bbc35d0365849f42d9ae74684"></a><!-- doxytag: member="zgematrix::operator/=" ref="a9d71013bbc35d0365849f42d9ae74684" args="(const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator/= </td>
          <td>(</td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix/=double operator </p>

<p>Definition at line <a class="el" href="zgematrix-double_8hpp_source.html#l00011">11</a> of file <a class="el" href="zgematrix-double_8hpp_source.html">zgematrix-double.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  zdscal_(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, 1./d, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="afc5f79ed7ed7005ee977e6790b913c22"></a><!-- doxytag: member="zgematrix::operator/=" ref="afc5f79ed7ed7005ee977e6790b913c22" args="(const comple &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgematrix.html">zgematrix</a> &amp; zgematrix::operator/= </td>
          <td>(</td>
          <td class="paramtype">const comple &amp;&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix/=comple operator </p>

<p>Definition at line <a class="el" href="zgematrix-complex_8hpp_source.html#l00011">11</a> of file <a class="el" href="zgematrix-complex_8hpp_source.html">zgematrix-complex.hpp</a>.</p>

<p>References <a class="el" href="zgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  zscal_(<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, 1./d, <a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a2609e8a5e769476c76cb9c5111a93e96"></a><!-- doxytag: member="zgematrix::operator&lt;&lt;" ref="a2609e8a5e769476c76cb9c5111a93e96" args="(std::ostream &amp;, const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="zgematrix-io_8hpp_source.html#l00063">63</a> of file <a class="el" href="zgematrix-io_8hpp_source.html">zgematrix-io.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
      s &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
    s &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> s;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0621d72dc29dc1e6330ab76d5fb250b7"></a><!-- doxytag: member="zgematrix::swap" ref="a0621d72dc29dc1e6330ab76d5fb250b7" args="(zgematrix &amp;, zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgematrix.html#a0621d72dc29dc1e6330ab76d5fb250b7">swap</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>A</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>B</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>swap two matrices </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">147</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00058">zgels()</a>, and <a class="el" href="zgematrix-lapack_8hpp_source.html#l00254">zgelss()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordtype">long</span> A_m(A.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>), A_n(A.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  comple* A_array(A.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>);
  <span class="comment">//comple** A_darray(A.darray);</span>
  comple** A_darray=A.<a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>; <span class="comment">//corruption to support VC++</span>
  A.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>=B.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; A.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>=B.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; A.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>=B.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>; A.<a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>=B.<a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>;
  B.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>=A_m; B.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>=A_n; B.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>=A_array; B.<a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>=A_darray;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a35d2ed8fd304ed999196e435a1e7dd23"></a><!-- doxytag: member="zgematrix::_" ref="a35d2ed8fd304ed999196e435a1e7dd23" args="(zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> <a class="el" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>convert user object to smart-temporary object </p>

<p>Definition at line <a class="el" href="zgematrix-misc_8hpp_source.html#l00159">159</a> of file <a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-misc_8hpp_source.html#l00125">col()</a>, and <a class="el" href="zgematrix-misc_8hpp_source.html#l00107">row()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="class__zgematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class">_zgematrix</a> newmat;
<span class="comment"></span>
<span class="comment">  //////// shallow copy ////////</span>
<span class="comment"></span>  newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a> =mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>;
  newmat.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> =mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>;
  newmat.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a> =mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>;
  newmat.<a class="code" href="class__zgematrix.html#aef0739e6d23790625a881e082e24c7fa" title="array of pointers of column head addresses">darray</a> =mat.<a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a>;
  <span class="comment"></span>
<span class="comment">  //////// nullify ////////</span>
<span class="comment"></span>  mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> =0;
  mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> =0;
  mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a> =NULL;
  mat.<a class="code" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec" title="array of pointers of column head addresses">darray</a> =NULL;

  <span class="keywordflow">return</span> newmat;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa95e2158fa000ba10a9a4c43eabf4eab"></a><!-- doxytag: member="zgematrix::t" ref="aa95e2158fa000ba10a9a4c43eabf4eab" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> <a class="el" href="classzgematrix.html#aa95e2158fa000ba10a9a4c43eabf4eab">t</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>return transposed zgematrix </p>

<p>Definition at line <a class="el" href="zgematrix-calc_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-calc_8hpp_source.html">zgematrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
    newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) =mat(j,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>);
  }}
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a95a256991aa9fd13fa868a42453bfa8e"></a><!-- doxytag: member="zgematrix::i" ref="a95a256991aa9fd13fa868a42453bfa8e" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> <a class="el" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>return its inverse matrix </p>

<p>Definition at line <a class="el" href="zgematrix-calc_8hpp_source.html#l00016">16</a> of file <a class="el" href="zgematrix-calc_8hpp_source.html">zgematrix-calc.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-misc_8hpp_source.html#l00044">chsign()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00125">col()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00051">copy()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00025">identity()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00003">operator+=()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00026">operator-=()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00099">read()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00081">resize()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00041">set()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00079">write()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00015">zero()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00376">zgeev()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00058">zgels()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00254">zgelss()</a>, and <a class="el" href="zgematrix-constructor_8hpp_source.html#l00018">zgematrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix is not square and has no inverse matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> mat_cp(mat), mat_inv(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  mat_inv.identity();
  mat_cp.zgesv(mat_inv);
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(mat_inv);
}
</pre></div>
</div>
</div>
<a class="anchor" id="afff25f61cae8e75633b8d4c6d32b4ded"></a><!-- doxytag: member="zgematrix::conj" ref="afff25f61cae8e75633b8d4c6d32b4ded" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> <a class="el" href="classzgematrix.html#afff25f61cae8e75633b8d4c6d32b4ded">conj</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>return its conjugate matrix </p>

<p>Definition at line <a class="el" href="zgematrix-calc_8hpp_source.html#l00040">40</a> of file <a class="el" href="zgematrix-calc_8hpp_source.html">zgematrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
    newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) =<a class="code" href="classzgematrix.html#afff25f61cae8e75633b8d4c6d32b4ded">std::conj</a>(mat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j));
  }}
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8fa5aefeb5239f99143547233713166f"></a><!-- doxytag: member="zgematrix::conjt" ref="a8fa5aefeb5239f99143547233713166f" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> <a class="el" href="classzgematrix.html#a8fa5aefeb5239f99143547233713166f">conjt</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>return its conjugate transposed matrix </p>

<p>Definition at line <a class="el" href="zgematrix-calc_8hpp_source.html#l00052">52</a> of file <a class="el" href="zgematrix-calc_8hpp_source.html">zgematrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>,mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
    newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) =<a class="code" href="classzgematrix.html#afff25f61cae8e75633b8d4c6d32b4ded">std::conj</a>(mat(j,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>));
  }}
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa086f32a19b2ed79db71e1170180571e"></a><!-- doxytag: member="zgematrix::idamax" ref="aa086f32a19b2ed79db71e1170180571e" args="(long &amp;, long &amp;, const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgematrix.html#aa086f32a19b2ed79db71e1170180571e">idamax</a> </td>
          <td>(</td>
          <td class="paramtype">long &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long &amp;&#160;</td>
          <td class="paramname"><em>j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>search the index of element having the largest absolute value in 0-based numbering system </p>

<p>Definition at line <a class="el" href="zgematrix-calc_8hpp_source.html#l00069">69</a> of file <a class="el" href="zgematrix-calc_8hpp_source.html">zgematrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordtype">long</span> index( izamax_(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1) -1 );
  <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a> =index%mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>;
  j =index/mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a32e6e879c4a79196284cdbfbbf352013"></a><!-- doxytag: member="zgematrix::damax" ref="a32e6e879c4a79196284cdbfbbf352013" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">comple <a class="el" href="classzgematrix.html#a32e6e879c4a79196284cdbfbbf352013">damax</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>return its largest absolute value </p>

<p>Definition at line <a class="el" href="zgematrix-calc_8hpp_source.html#l00078">78</a> of file <a class="el" href="zgematrix-calc_8hpp_source.html">zgematrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">return</span> mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[izamax_(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, 1) -1];
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0943e5a8eb438b555c1f03e27b6f96b3"></a><!-- doxytag: member="zgematrix::operator+" ref="a0943e5a8eb438b555c1f03e27b6f96b3" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classzgematrix.html">zgematrix</a>&amp; operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>+zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-unary_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-unary_8hpp_source.html">zgematrix-unary.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">return</span> mat;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8c80624f100b8f2e5f61e9a9549e6105"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="a8c80624f100b8f2e5f61e9a9549e6105" args="(const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>-zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-unary_8hpp_source.html#l00010">10</a> of file <a class="el" href="zgematrix-unary_8hpp_source.html">zgematrix-unary.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>*newmat.n; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ newmat.array[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]=-mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]; }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5946e939a94e54e996d6eb4eb8aa0789"></a><!-- doxytag: member="zgematrix::operator+" ref="a5946e939a94e54e996d6eb4eb8aa0789" args="(const zgematrix &amp;, const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgematrix_8hpp_source.html#l00076">76</a> of file <a class="el" href="zgematrix-zgematrix_8hpp_source.html">zgematrix-zgematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>*newmat.n; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    newmat.array[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =matA.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]+matB.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>];
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a61c64f436c7aa773390abf2b672b0d1d"></a><!-- doxytag: member="zgematrix::operator+" ref="a61c64f436c7aa773390abf2b672b0d1d" args="(const zgematrix &amp;, const _zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+_zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00079">79</a> of file <a class="el" href="zgematrix-__zgematrix_8hpp_source.html">zgematrix-_zgematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ matB.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] +=matA.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]; }
  
  <span class="keywordflow">return</span> matB;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a4756ac92f1f1cf5b19659c7a1d7626a1"></a><!-- doxytag: member="zgematrix::operator+" ref="a4756ac92f1f1cf5b19659c7a1d7626a1" args="(const zgematrix &amp;, const zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+zhematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zhematrix_8hpp_source.html#l00069">69</a> of file <a class="el" href="zgematrix-zhematrix_8hpp_source.html">zgematrix-zhematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
    newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) += matB(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
  }}
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a13089796079ea7b08cda317fe6e804ea"></a><!-- doxytag: member="zgematrix::operator+" ref="a13089796079ea7b08cda317fe6e804ea" args="(const zgematrix &amp;, const _zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+_zhematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zhematrix_8hpp_source.html#l00072">72</a> of file <a class="el" href="zgematrix-__zhematrix_8hpp_source.html">zgematrix-_zhematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
    newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) +=matB(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
  }}
  
  matB.<a class="code" href="class__zhematrix.html#a2acc6b7bde22ce109468a72d8d40abcc">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae0e3b42a206c67bbe89010cc2d9db59a"></a><!-- doxytag: member="zgematrix::operator+" ref="ae0e3b42a206c67bbe89010cc2d9db59a" args="(const zgematrix &amp;, const zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html#l00077">77</a> of file <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html">zgematrix-zgbmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>-matB.<a class="code" href="classzgbmatrix.html#af8f8a5015069bdb6c268652ee25838c0" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a>,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>+matB.<a class="code" href="classzgbmatrix.html#a2a36d59681d1b2f13120a4b4be9203e8" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)+=matB(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa8581811590c95db88acc471f0772153"></a><!-- doxytag: member="zgematrix::operator+" ref="aa8581811590c95db88acc471f0772153" args="(const zgematrix &amp;, const _zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+_zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00081">81</a> of file <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html">zgematrix-_zgbmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>-matB.<a class="code" href="class__zgbmatrix.html#a0a88723ded8d7728a8b90ddfd28e5d0c" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a>,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>+matB.<a class="code" href="class__zgbmatrix.html#a0b32db6f9ae374d5d390e24686433a77" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)+=matB(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
  }
  
  matB.<a class="code" href="class__zgbmatrix.html#a30eb8221fd3a4046e3c3eb6ba9902bc8">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa3727dcb3aa9157148a2e2055f2c5eaa"></a><!-- doxytag: member="zgematrix::operator+" ref="aa3727dcb3aa9157148a2e2055f2c5eaa" args="(const zgematrix &amp;, const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgsmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-zgsmatrix_8hpp_source.html">zgematrix-zgsmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> || matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> c=0; c&lt;matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size(); c++){
    <span class="keyword">const</span> <a class="code" href="classzcomponent.html" title="Component Class for Complex Double-precision Sparse Matrix Classes.">zcomponent</a>&amp; z =matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[c];
    newmat(z.<a class="code" href="classzcomponent.html#ada76f64a7e405a2c15b112b3d2e8984c" title="i index of the component">i</a>,z.<a class="code" href="classzcomponent.html#a29f12fee46e753341612b5b47a26a792" title="j index of the component">j</a>) += z.<a class="code" href="classzcomponent.html#a6f1a14712fbf8c4ff97775ae22bd6392" title="value of the component">v</a>;
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a835a59ec2b58345a11e963334af0b33c"></a><!-- doxytag: member="zgematrix::operator+" ref="a835a59ec2b58345a11e963334af0b33c" args="(const zgematrix &amp;, const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix+_zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgsmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-__zgsmatrix_8hpp_source.html">zgematrix-_zgsmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="class__zgsmatrix.html#a1be0849915f6b79eb1444150e8bebf31" title="matrix row size">m</a> || matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgsmatrix.html#a1be0849915f6b79eb1444150e8bebf31" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> c=0; c&lt;matB.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>.size(); c++){
    <span class="keyword">const</span> <a class="code" href="classzcomponent.html" title="Component Class for Complex Double-precision Sparse Matrix Classes.">zcomponent</a>&amp; z =matB.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>[c];
    newmat(z.<a class="code" href="classzcomponent.html#ada76f64a7e405a2c15b112b3d2e8984c" title="i index of the component">i</a>,z.<a class="code" href="classzcomponent.html#a29f12fee46e753341612b5b47a26a792" title="j index of the component">j</a>) += z.<a class="code" href="classzcomponent.html#a6f1a14712fbf8c4ff97775ae22bd6392" title="value of the component">v</a>;
  }
  
  matB.<a class="code" href="class__zgsmatrix.html#a967720c5efdb91e779a955fee836d01f">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a41468c5a5436380eb3b49d4810c076d6"></a><!-- doxytag: member="zgematrix::operator+" ref="a41468c5a5436380eb3b49d4810c076d6" args="(const zgematrix &amp;, const zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa1837df01bcdeeaa893e44abdd15da78"></a><!-- doxytag: member="zgematrix::operator+" ref="aa1837df01bcdeeaa893e44abdd15da78" args="(const zgematrix &amp;, const _zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0cf94506053f4385a914362eb87e3810"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="a0cf94506053f4385a914362eb87e3810" args="(const zgematrix &amp;, const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgematrix_8hpp_source.html#l00097">97</a> of file <a class="el" href="zgematrix-zgematrix_8hpp_source.html">zgematrix-zgematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>*newmat.n; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    newmat.array[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =matA.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]-matB.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>];
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a74dccf4659edb713f01002af84807cce"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="a74dccf4659edb713f01002af84807cce" args="(const zgematrix &amp;, const _zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-_zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00097">97</a> of file <a class="el" href="zgematrix-__zgematrix_8hpp_source.html">zgematrix-_zgematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    matB.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =matA.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]-matB.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>];
  }
  
  <span class="keywordflow">return</span> matB;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a68e3a3539d5e46978aa84708d5124d65"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="a68e3a3539d5e46978aa84708d5124d65" args="(const zgematrix &amp;, const zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-zhematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zhematrix_8hpp_source.html#l00090">90</a> of file <a class="el" href="zgematrix-zhematrix_8hpp_source.html">zgematrix-zhematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
    newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) -= matB(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
  }}
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a28fc678ea9c2800285e75be3fb78c40c"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="a28fc678ea9c2800285e75be3fb78c40c" args="(const zgematrix &amp;, const _zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-_zhematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zhematrix_8hpp_source.html#l00094">94</a> of file <a class="el" href="zgematrix-__zhematrix_8hpp_source.html">zgematrix-_zhematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
    newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j) -=matB(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
  }}
  
  matB.<a class="code" href="class__zhematrix.html#a2acc6b7bde22ce109468a72d8d40abcc">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac7927eebc6578a46fdf2771d62348ca2"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="ac7927eebc6578a46fdf2771d62348ca2" args="(const zgematrix &amp;, const zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html#l00101">101</a> of file <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html">zgematrix-zgbmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>-matB.<a class="code" href="classzgbmatrix.html#af8f8a5015069bdb6c268652ee25838c0" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a>,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>+matB.<a class="code" href="classzgbmatrix.html#a2a36d59681d1b2f13120a4b4be9203e8" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)-=matB(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a866b063e0b24baff1bc502bff37f930b"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="a866b063e0b24baff1bc502bff37f930b" args="(const zgematrix &amp;, const _zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-_zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00106">106</a> of file <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html">zgematrix-_zgbmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> || matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>-matB.<a class="code" href="class__zgbmatrix.html#a0a88723ded8d7728a8b90ddfd28e5d0c" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a>,<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>+matB.<a class="code" href="class__zgbmatrix.html#a0b32db6f9ae374d5d390e24686433a77" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)-=matB(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j);
    }
  }
  
  matB.<a class="code" href="class__zgbmatrix.html#a30eb8221fd3a4046e3c3eb6ba9902bc8">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9be9a15865870c5fe6796bb178c21114"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="a9be9a15865870c5fe6796bb178c21114" args="(const zgematrix &amp;, const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgsmatrix_8hpp_source.html#l00025">25</a> of file <a class="el" href="zgematrix-zgsmatrix_8hpp_source.html">zgematrix-zgsmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> || matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> c=0; c&lt;matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size(); c++){
    <span class="keyword">const</span> <a class="code" href="classzcomponent.html" title="Component Class for Complex Double-precision Sparse Matrix Classes.">zcomponent</a>&amp; z =matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[c];
    newmat(z.<a class="code" href="classzcomponent.html#ada76f64a7e405a2c15b112b3d2e8984c" title="i index of the component">i</a>,z.<a class="code" href="classzcomponent.html#a29f12fee46e753341612b5b47a26a792" title="j index of the component">j</a>) -= z.<a class="code" href="classzcomponent.html#a6f1a14712fbf8c4ff97775ae22bd6392" title="value of the component">v</a>;
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad9a9ab4198cafd44baf503c2bacad0a5"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="ad9a9ab4198cafd44baf503c2bacad0a5" args="(const zgematrix &amp;, const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix-_zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgsmatrix_8hpp_source.html#l00026">26</a> of file <a class="el" href="zgematrix-__zgsmatrix_8hpp_source.html">zgematrix-_zgsmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>!=matB.<a class="code" href="class__zgsmatrix.html#a1be0849915f6b79eb1444150e8bebf31" title="matrix row size">m</a> || matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> c=0; c&lt;matB.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>.size(); c++){
    <span class="keyword">const</span> <a class="code" href="classzcomponent.html" title="Component Class for Complex Double-precision Sparse Matrix Classes.">zcomponent</a>&amp; z =matB.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>[c];
    newmat(z.<a class="code" href="classzcomponent.html#ada76f64a7e405a2c15b112b3d2e8984c" title="i index of the component">i</a>,z.<a class="code" href="classzcomponent.html#a29f12fee46e753341612b5b47a26a792" title="j index of the component">j</a>) -= z.<a class="code" href="classzcomponent.html#a6f1a14712fbf8c4ff97775ae22bd6392" title="value of the component">v</a>;
  }
  
  matB.<a class="code" href="class__zgsmatrix.html#a967720c5efdb91e779a955fee836d01f">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a84abf7d598bbc4f13e23da9db8d6f037"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="a84abf7d598bbc4f13e23da9db8d6f037" args="(const zgematrix &amp;, const zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acf4ceb1fd4aea748b223c44604329760"></a><!-- doxytag: member="zgematrix::operator&#45;" ref="acf4ceb1fd4aea748b223c44604329760" args="(const zgematrix &amp;, const _zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4c231738812ec81b488a7e42b3c6fdb3"></a><!-- doxytag: member="zgematrix::operator*" ref="a4c231738812ec81b488a7e42b3c6fdb3" args="(const zgematrix &amp;, const zcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zcovector.html">_zcovector</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzcovector.html">zcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*zcovector operator </p>

<p>Definition at line <a class="el" href="zgematrix-zcovector_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-zcovector_8hpp_source.html">zgematrix-zcovector.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These matrix and vector can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; vec.<a class="code" href="classzcovector.html#a25de1e5eff40a9fdae41255b5b4ab6d1" title="vector size">l</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzcovector.html" title="Complex Double-precision Column Vector Class.">zcovector</a> newvec(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>);
  zgemv_( <span class="charliteral">&#39;n&#39;</span>, mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, comple(1.0,0.0), mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,
          vec.<a class="code" href="classzcovector.html#a7c812242cb084ba940fb61755a3c8cf7" title="1D array to store vector data">array</a>, 1, comple(0.0,0.0), newvec.array, 1 );
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newvec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a549b54ea20d68a358da2d37291dd4df5"></a><!-- doxytag: member="zgematrix::operator*" ref="a549b54ea20d68a358da2d37291dd4df5" args="(const zgematrix &amp;, const _zcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zcovector.html">_zcovector</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zcovector.html">_zcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*_zcovector operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zcovector_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgematrix-__zcovector_8hpp_source.html">zgematrix-_zcovector.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=vec.<a class="code" href="class__zcovector.html#a981a16cfee6dde1206255363db5c22f1" title="vector size">l</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These matrix and vector can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; vec.<a class="code" href="class__zcovector.html#a981a16cfee6dde1206255363db5c22f1" title="vector size">l</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzcovector.html" title="Complex Double-precision Column Vector Class.">zcovector</a> newvec(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>);
  zgemv_( <span class="charliteral">&#39;n&#39;</span>, mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, comple(1.0,0.0), mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>,
          vec.<a class="code" href="class__zcovector.html#aaa49b9ce62a619d7efca0a392e60d716" title="1D array to store vector data">array</a>, 1, comple(0.0,0.0), newvec.array, 1 );
  
  vec.<a class="code" href="class__zcovector.html#a7b0dbef72aa40ca8ccd7aa11ea6bc88a">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newvec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0fe1a622e1cecbe544636af5bfb60fda"></a><!-- doxytag: member="zgematrix::operator*" ref="a0fe1a622e1cecbe544636af5bfb60fda" args="(const zgematrix &amp;, const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgematrix_8hpp_source.html#l00118">118</a> of file <a class="el" href="zgematrix-zgematrix_8hpp_source.html">zgematrix-zgematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> );
  zgemm_( <span class="charliteral">&#39;n&#39;</span>, <span class="charliteral">&#39;n&#39;</span>, matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, comple(1.0,0.0), 
          matA.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, matB.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, 
          comple(0.0,0.0), newmat.array, matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> );
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a30f7431d1ce81b86cf54f283349ca654"></a><!-- doxytag: member="zgematrix::operator*" ref="a30f7431d1ce81b86cf54f283349ca654" args="(const zgematrix &amp;, const _zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zgematrix.html">_zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*_zgematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00117">117</a> of file <a class="el" href="zgematrix-__zgematrix_8hpp_source.html">zgematrix-_zgematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a> );
  zgemm_( <span class="charliteral">&#39;n&#39;</span>, <span class="charliteral">&#39;n&#39;</span>, matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a>, matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, comple(1.0,0.0),
          matA.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>, matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>,
          comple(0.0,0.0), newmat.array, matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> );
  
  matB.<a class="code" href="class__zgematrix.html#a447e4807955f2b359831116d90aad098">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8bdf6bb052f6a5827e32c4e9654c2b30"></a><!-- doxytag: member="zgematrix::operator*" ref="a8bdf6bb052f6a5827e32c4e9654c2b30" args="(const zgematrix &amp;, const zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzhematrix.html">zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*zhematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zhematrix_8hpp_source.html#l00111">111</a> of file <a class="el" href="zgematrix-zhematrix_8hpp_source.html">zgematrix-zhematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> );
  zhemm_( <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;l&#39;</span>, newmat.m, newmat.n, comple(1.0,0.0), 
          matB.<a class="code" href="classzhematrix.html#a9f868de87a273d9f02ff31700fd2e068" title="1D array to store matrix data">array</a>, newmat.n, matA.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, newmat.m, 
          comple(0.0,0.0), newmat.array, newmat.m );
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5fb39f9b878addfef496b044c6bf393a"></a><!-- doxytag: member="zgematrix::operator*" ref="a5fb39f9b878addfef496b044c6bf393a" args="(const zgematrix &amp;, const _zhematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zhematrix.html">_zhematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*_zhematrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zhematrix_8hpp_source.html#l00116">116</a> of file <a class="el" href="zgematrix-__zhematrix_8hpp_source.html">zgematrix-_zhematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> );
  
  zhemm_( <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;l&#39;</span>, matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>, matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>, comple(1.0,0.0), 
          matB.<a class="code" href="class__zhematrix.html#a7d20e0d43e98b9c706126d92b8683e82" title="1D array to store matrix data">array</a>, matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>, matA.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>, matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, 
          comple(0.0,0.0), newmat.array, newmat.m );
  
  matB.<a class="code" href="class__zhematrix.html#a2acc6b7bde22ce109468a72d8d40abcc">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8adbaafa9325ea7db707bd6d040a5207"></a><!-- doxytag: member="zgematrix::operator*" ref="a8adbaafa9325ea7db707bd6d040a5207" args="(const zgematrix &amp;, const zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgbmatrix.html">zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html#l00125">125</a> of file <a class="el" href="zgematrix-zgbmatrix_8hpp_source.html">zgematrix-zgbmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="classzgbmatrix.html#ae648f83ec8f7cbc28335265c10e6fe45" title="matrix column size">n</a> );
  newmat.zero();
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> k=std::max(<span class="keywordtype">long</span>(0),j-matB.<a class="code" href="classzgbmatrix.html#a2a36d59681d1b2f13120a4b4be9203e8" title="upper band width">ku</a>); k&lt;std::min(matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>,j+matB.<a class="code" href="classzgbmatrix.html#af8f8a5015069bdb6c268652ee25838c0" title="lower band width">kl</a>+1); k++){
        newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)+=matA(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,k)*matB(k,j);
      }
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a198bc28cfac5c0f1835324b10ae86f37"></a><!-- doxytag: member="zgematrix::operator*" ref="a198bc28cfac5c0f1835324b10ae86f37" args="(const zgematrix &amp;, const _zgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zgbmatrix.html">_zgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*_zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00131">131</a> of file <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html">zgematrix-_zgbmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="class__zgbmatrix.html#a743983e0c14c2d3917b51c510ee957f6" title="matrix column size">n</a> );
  newmat.zero();
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;newmat.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> k=std::max(<span class="keywordtype">long</span>(0),j-matB.<a class="code" href="class__zgbmatrix.html#a0b32db6f9ae374d5d390e24686433a77" title="upper band width">ku</a>); k&lt;std::min(matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>,j+matB.<a class="code" href="class__zgbmatrix.html#a0a88723ded8d7728a8b90ddfd28e5d0c" title="lower band width">kl</a>+1); k++){
        newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,j)+=matA(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,k)*matB(k,j);
      }
    }
  }
  
  matB.<a class="code" href="class__zgbmatrix.html#a30eb8221fd3a4046e3c3eb6ba9902bc8">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a2aee6a267fec41e91bbc43861574f034"></a><!-- doxytag: member="zgematrix::operator*" ref="a2aee6a267fec41e91bbc43861574f034" args="(const zgematrix &amp;, const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-zgsmatrix_8hpp_source.html#l00047">47</a> of file <a class="el" href="zgematrix-zgsmatrix_8hpp_source.html">zgematrix-zgsmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> c=0; c&lt;matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size(); c++){
    <span class="keyword">const</span> <a class="code" href="classzcomponent.html" title="Component Class for Complex Double-precision Sparse Matrix Classes.">zcomponent</a>&amp; z =matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[c];
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
      newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,z.<a class="code" href="classzcomponent.html#a29f12fee46e753341612b5b47a26a792" title="j index of the component">j</a>) += matA(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,z.<a class="code" href="classzcomponent.html#ada76f64a7e405a2c15b112b3d2e8984c" title="i index of the component">i</a>)*z.<a class="code" href="classzcomponent.html#a6f1a14712fbf8c4ff97775ae22bd6392" title="value of the component">v</a>;
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac5e51789a2a7598aa7c1d5e12e25727e"></a><!-- doxytag: member="zgematrix::operator*" ref="ac5e51789a2a7598aa7c1d5e12e25727e" args="(const zgematrix &amp;, const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*_zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgematrix-__zgsmatrix_8hpp_source.html#l00049">49</a> of file <a class="el" href="zgematrix-__zgsmatrix_8hpp_source.html">zgematrix-_zgsmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgsmatrix.html#a1be0849915f6b79eb1444150e8bebf31" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These two matrises can not make a product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> c=0; c&lt;matB.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>.size(); c++){
    <span class="keyword">const</span> <a class="code" href="classzcomponent.html" title="Component Class for Complex Double-precision Sparse Matrix Classes.">zcomponent</a>&amp; z =matB.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>[c];
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;matA.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){
      newmat(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,z.<a class="code" href="classzcomponent.html#a29f12fee46e753341612b5b47a26a792" title="j index of the component">j</a>) += matA(<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>,z.<a class="code" href="classzcomponent.html#ada76f64a7e405a2c15b112b3d2e8984c" title="i index of the component">i</a>)*z.<a class="code" href="classzcomponent.html#a6f1a14712fbf8c4ff97775ae22bd6392" title="value of the component">v</a>;
    }
  }
  
  matB.<a class="code" href="class__zgsmatrix.html#a967720c5efdb91e779a955fee836d01f">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a91df88586bf3cc2415d9c38735e7620e"></a><!-- doxytag: member="zgematrix::operator*" ref="a91df88586bf3cc2415d9c38735e7620e" args="(const zgematrix &amp;, const zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzhsmatrix.html">zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a646eeb81d1c7beded9b8dd3b67330018"></a><!-- doxytag: member="zgematrix::operator*" ref="a646eeb81d1c7beded9b8dd3b67330018" args="(const zgematrix &amp;, const _zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class__zhsmatrix.html">_zhsmatrix</a> &amp;&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a29c0d4ffe159c1797c2fec911e9a4479"></a><!-- doxytag: member="zgematrix::operator*" ref="a29c0d4ffe159c1797c2fec911e9a4479" args="(const zgematrix &amp;, const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*double operator </p>

<p>Definition at line <a class="el" href="zgematrix-double_8hpp_source.html#l00023">23</a> of file <a class="el" href="zgematrix-double_8hpp_source.html">zgematrix-double.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ newmat.array[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]*d; }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6ba42e7f636dc529b38f3ecc7c28b138"></a><!-- doxytag: member="zgematrix::operator*" ref="a6ba42e7f636dc529b38f3ecc7c28b138" args="(const zgematrix &amp;, const comple &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const comple &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix*comple operator </p>

<p>Definition at line <a class="el" href="zgematrix-complex_8hpp_source.html#l00023">23</a> of file <a class="el" href="zgematrix-complex_8hpp_source.html">zgematrix-complex.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ newmat.array[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]*d; }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="abf13e26b77698ee896128f5260461a62"></a><!-- doxytag: member="zgematrix::operator/" ref="abf13e26b77698ee896128f5260461a62" args="(const zgematrix &amp;, const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator/ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix/double operator </p>

<p>Definition at line <a class="el" href="zgematrix-double_8hpp_source.html#l00033">33</a> of file <a class="el" href="zgematrix-double_8hpp_source.html">zgematrix-double.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ newmat.array[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]/d; }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab787c0f4d00ee8fa990f6b5e94658757"></a><!-- doxytag: member="zgematrix::operator/" ref="ab787c0f4d00ee8fa990f6b5e94658757" args="(const zgematrix &amp;, const comple &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator/ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const comple &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgematrix/comple operator </p>

<p>Definition at line <a class="el" href="zgematrix-complex_8hpp_source.html#l00033">33</a> of file <a class="el" href="zgematrix-complex_8hpp_source.html">zgematrix-complex.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ newmat.array[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]/d; }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6543978fc8be7afaea3b104d88eb674d"></a><!-- doxytag: member="zgematrix::operator*" ref="a6543978fc8be7afaea3b104d88eb674d" args="(const double &amp;, const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>double*zgematrix operator </p>

<p>Definition at line <a class="el" href="double-zgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="double-zgematrix_8hpp_source.html">double-zgematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ newmat.array[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =d*mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]; }  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1afda105ecf4df7dc8a7c5b07007e528"></a><!-- doxytag: member="zgematrix::operator*" ref="a1afda105ecf4df7dc8a7c5b07007e528" args="(const comple &amp;, const zgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const comple &amp;&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classzgematrix.html">zgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>comple*zgematrix operator </p>

<p>Definition at line <a class="el" href="complex-zgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="complex-zgematrix_8hpp_source.html">complex-zgematrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>, mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>=0; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>&lt;mat.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a>*mat.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; <a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>++){ newmat.array[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>] =d*mat.<a class="code" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef" title="1D array to store matrix data">array</a>[<a class="code" href="classzgematrix.html#a95a256991aa9fd13fa868a42453bfa8e">i</a>]; }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgematrix.html#a35d2ed8fd304ed999196e435a1e7dd23">_</a>(newmat);
}
</pre></div>
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a433dab4cf9fba73d9bc96ec6d626654e"></a><!-- doxytag: member="zgematrix::m" ref="a433dab4cf9fba73d9bc96ec6d626654e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e">zgematrix::m</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>matrix row size </p>

<p>Definition at line <a class="el" href="zgematrix_8hpp_source.html#l00009">9</a> of file <a class="el" href="zgematrix_8hpp_source.html">zgematrix.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-misc_8hpp_source.html#l00159">_()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00044">chsign()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00125">col()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00040">conj()</a>, <a class="el" href="__zgematrix-calc_8hpp_source.html#l00054">conjt()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00051">copy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00078">damax()</a>, <a class="el" href="__zgematrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00069">idamax()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00025">identity()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__zcovector-__zrovector_8hpp_source.html#l00003">operator*()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="__zgbmatrix-zgematrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00003">operator+=()</a>, <a class="el" href="__zgbmatrix-__zhematrix_8hpp_source.html#l00031">operator-()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00026">operator-=()</a>, <a class="el" href="zgematrix-complex_8hpp_source.html#l00033">operator/()</a>, <a class="el" href="zgematrix-complex_8hpp_source.html#l00011">operator/=()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00063">operator&lt;&lt;()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00099">read()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00081">resize()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00107">row()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00041">set()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00067">shallow_copy()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap()</a>, <a class="el" href="__zgematrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00079">write()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00015">zero()</a>, <a class="el" href="zgbmatrix-lapack_8hpp_source.html#l00005">zgbmatrix::zgbsv()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00342">zgeev()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00058">zgels()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00254">zgelss()</a>, <a class="el" href="zgematrix-constructor_8hpp_source.html#l00003">zgematrix()</a>, <a class="el" href="zgematrix__small-constructors_8hpp_source.html#l00012">zgematrix_small&lt; m, n &gt;::zgematrix_small()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00005">zgesv()</a>, and <a class="el" href="zgematrix-lapack_8hpp_source.html#l00473">zgesvd()</a>.</p>

</div>
</div>
<a class="anchor" id="aa2cfc802c95c61389455c6a8ff266d9a"></a><!-- doxytag: member="zgematrix::n" ref="aa2cfc802c95c61389455c6a8ff266d9a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a">zgematrix::n</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>matrix column size </p>

<p>Definition at line <a class="el" href="zgematrix_8hpp_source.html#l00010">10</a> of file <a class="el" href="zgematrix_8hpp_source.html">zgematrix.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-misc_8hpp_source.html#l00159">_()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00044">chsign()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00125">col()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00040">conj()</a>, <a class="el" href="__zgematrix-calc_8hpp_source.html#l00054">conjt()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00051">copy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00078">damax()</a>, <a class="el" href="__zgematrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00069">idamax()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00025">identity()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__zcovector-__zrovector_8hpp_source.html#l00003">operator*()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="__zgbmatrix-zgematrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00003">operator+=()</a>, <a class="el" href="__zgbmatrix-__zhematrix_8hpp_source.html#l00031">operator-()</a>, <a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html#l00026">operator-=()</a>, <a class="el" href="zgematrix-complex_8hpp_source.html#l00033">operator/()</a>, <a class="el" href="zgematrix-complex_8hpp_source.html#l00011">operator/=()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00063">operator&lt;&lt;()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00099">read()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00081">resize()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00107">row()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00041">set()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00067">shallow_copy()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap()</a>, <a class="el" href="__zgematrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00079">write()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00015">zero()</a>, <a class="el" href="zgbmatrix-lapack_8hpp_source.html#l00005">zgbmatrix::zgbsv()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00342">zgeev()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00058">zgels()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00254">zgelss()</a>, <a class="el" href="zgematrix-constructor_8hpp_source.html#l00003">zgematrix()</a>, <a class="el" href="zgematrix__small-constructors_8hpp_source.html#l00012">zgematrix_small&lt; m, n &gt;::zgematrix_small()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00005">zgesv()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00473">zgesvd()</a>, and <a class="el" href="zhematrix-lapack_8hpp_source.html#l00006">zhematrix::zhesv()</a>.</p>

</div>
</div>
<a class="anchor" id="aaa50b409ff4060aa10ad3c0f9dcd45ef"></a><!-- doxytag: member="zgematrix::array" ref="aaa50b409ff4060aa10ad3c0f9dcd45ef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">comple* <a class="el" href="classzgematrix.html#aaa50b409ff4060aa10ad3c0f9dcd45ef">zgematrix::array</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>1D array to store matrix data </p>

<p>Definition at line <a class="el" href="zgematrix_8hpp_source.html#l00011">11</a> of file <a class="el" href="zgematrix_8hpp_source.html">zgematrix.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-misc_8hpp_source.html#l00159">_()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00044">chsign()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00051">copy()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00078">damax()</a>, <a class="el" href="zgematrix-calc_8hpp_source.html#l00069">idamax()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00025">identity()</a>, <a class="el" href="__zgematrix-__zgematrix_8hpp_source.html#l00041">operator*()</a>, <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00053">operator*=()</a>, <a class="el" href="__zgematrix-zgematrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00015">operator+=()</a>, <a class="el" href="__zgematrix-zgematrix_8hpp_source.html#l00021">operator-()</a>, <a class="el" href="zgematrix-__zgematrix_8hpp_source.html#l00034">operator-=()</a>, <a class="el" href="zgematrix-complex_8hpp_source.html#l00033">operator/()</a>, <a class="el" href="zgematrix-complex_8hpp_source.html#l00011">operator/=()</a>, <a class="el" href="zgematrix-zgematrix_8hpp_source.html#l00003">operator=()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00081">resize()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00067">shallow_copy()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap()</a>, <a class="el" href="__dgematrix-cast_8hpp_source.html#l00003">_dgematrix::to_zgematrix()</a>, <a class="el" href="dgematrix-cast_8hpp_source.html#l00003">dgematrix::to_zgematrix()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00015">zero()</a>, <a class="el" href="zgbmatrix-lapack_8hpp_source.html#l00005">zgbmatrix::zgbsv()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00342">zgeev()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00058">zgels()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00254">zgelss()</a>, <a class="el" href="zgematrix-constructor_8hpp_source.html#l00003">zgematrix()</a>, <a class="el" href="zgematrix__small-constructors_8hpp_source.html#l00012">zgematrix_small&lt; m, n &gt;::zgematrix_small()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00005">zgesv()</a>, <a class="el" href="zgematrix-lapack_8hpp_source.html#l00473">zgesvd()</a>, <a class="el" href="zhematrix-lapack_8hpp_source.html#l00006">zhematrix::zhesv()</a>, and <a class="el" href="zgematrix-constructor_8hpp_source.html#l00085">~zgematrix()</a>.</p>

</div>
</div>
<a class="anchor" id="aaa1d6ceb4aeaf15c78176aed0b9320ec"></a><!-- doxytag: member="zgematrix::darray" ref="aaa1d6ceb4aeaf15c78176aed0b9320ec" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">comple** <a class="el" href="classzgematrix.html#aaa1d6ceb4aeaf15c78176aed0b9320ec">zgematrix::darray</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>array of pointers of column head addresses </p>

<p>Definition at line <a class="el" href="zgematrix_8hpp_source.html#l00012">12</a> of file <a class="el" href="zgematrix_8hpp_source.html">zgematrix.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgematrix-misc_8hpp_source.html#l00159">_()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00051">copy()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00081">resize()</a>, <a class="el" href="zgematrix-io_8hpp_source.html#l00041">set()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00067">shallow_copy()</a>, <a class="el" href="zgematrix-misc_8hpp_source.html#l00147">swap()</a>, <a class="el" href="zgematrix-constructor_8hpp_source.html#l00003">zgematrix()</a>, and <a class="el" href="zgematrix-constructor_8hpp_source.html#l00085">~zgematrix()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="zgematrix_8hpp_source.html">zgematrix.hpp</a></li>
<li><a class="el" href="zgematrix-__zgbmatrix_8hpp_source.html">zgematrix-_zgbmatrix.hpp</a></li>
<li><a class="el" href="zgematrix-__zgematrix_8hpp_source.html">zgematrix-_zgematrix.hpp</a></li>
<li><a class="el" href="zgematrix-__zhematrix_8hpp_source.html">zgematrix-_zhematrix.hpp</a></li>
<li><a class="el" href="zgematrix-complex_8hpp_source.html">zgematrix-complex.hpp</a></li>
<li><a class="el" href="zgematrix-constructor_8hpp_source.html">zgematrix-constructor.hpp</a></li>
<li><a class="el" href="zgematrix-double_8hpp_source.html">zgematrix-double.hpp</a></li>
<li><a class="el" href="zgematrix-io_8hpp_source.html">zgematrix-io.hpp</a></li>
<li><a class="el" href="zgematrix-lapack_8hpp_source.html">zgematrix-lapack.hpp</a></li>
<li><a class="el" href="zgematrix-misc_8hpp_source.html">zgematrix-misc.hpp</a></li>
<li><a class="el" href="zgematrix-zgbmatrix_8hpp_source.html">zgematrix-zgbmatrix.hpp</a></li>
<li><a class="el" href="zgematrix-zgematrix_8hpp_source.html">zgematrix-zgematrix.hpp</a></li>
<li><a class="el" href="zgematrix-zhematrix_8hpp_source.html">zgematrix-zhematrix.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Friends</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>
