<!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: zgsmatrix 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">zgsmatrix Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="zgsmatrix" -->
<p>Complex Double-precision General Sparse Matrix Class.  
 <a href="classzgsmatrix.html#details">More...</a></p>

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

<p><a href="classzgsmatrix-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="classzgsmatrix.html#a0523864c03f92d5c7af2618dfc10c55b">zgsmatrix</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a3944c914fe9c056ff5edeebea6e72bf5">zgsmatrix</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a45d816c2d735ed34e7026f96251b31fd">zgsmatrix</a> (const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a589dad846d9f01f510a9808d15579584">zgsmatrix</a> (const long &amp;, const long &amp;, const long=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a8c00e5bd885dc6bf7f65f0044892e8ff">zgsmatrix</a> (const char *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#adfc0fa2c234bf53e7b269b7b73b3e358">~zgsmatrix</a> ()</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="classzgsmatrix.html#a584ebcb4e6076094d96fc35869808004">to_zgematrix</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">comple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ac3acf9ae8db150aefe729a070348e594">operator()</a> (const long &amp;, const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">comple &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ac907d0649d984b39cade88e42fac8be7">operator()</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#aa7645a41760adbe7b7f279b018b7c85a">put</a> (const long &amp;, const long &amp;, const comple &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#acf84da742f630747050783980d2a2080">del</a> (const long, const long)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ab028c584f28a98911943005418c0eb9a">del</a> (const long)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ae2fbed12441e4fcc678cfd9964c6e131">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="classzgsmatrix.html#a78279f3540541fa92c989eec67222a46">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="classzgsmatrix.html#af19f5ede3f54d597804b73a20b0af479">clear</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ac7198a8299ffcf356f65679293e3ed89">zero</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a3980e2e7c9cd4ebb5b0ce85832a62925">chsign</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ab7888502a62bee56c287e14c138bd6ce">copy</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a995a71abf1f1182da2be9e4201b12ef4">shallow_copy</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="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a58f671b4909a2bdd70e8d893635130c7">resize</a> (const long &amp;, const long &amp;, const long=0, const long=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#af27d040e30bb6dc28cdf79874b19d20d">stretch</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a1f7e88627b9b0c9e96ed538c208bc7a8">expand</a> (const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a5c1d444b61e3e63ddaa68937639ceb23">isListed</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ae819389ff65b1989371730d22ca2662f">number</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ab5b8fa4d12186aa09f146b255dc535fb">checkup</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#adf22d668642bcbba4977e9dc3e8bb210">diet</a> (const double=DBL_MIN)</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="classzgsmatrix.html#a1e2feb859c5d3287cedfe6bb61a410d4">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="classzgsmatrix.html#a5263ec1bc0e7b77c58c5675494561172">col</a> (const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a1d7674d484b3ee61918a605e2830927d">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="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a29bb41069ee0fe42f302629041fe7afd">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="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a23a5f7006c3259f5db966e5021a845b2">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="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#afc2c9b01d3dba46862beebef77de7e04">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="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ac88019bc74752c2ebbde375d6f3e7310">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="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ae9ce3e8bf3df4500121f5a62b4b43dba">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="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#abff4209cc126d7995bdee6f2cdcab147">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="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#abda687835ed94411d8a4f6b7d2eb1866">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="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#aa6a165894181413c381ea076dc8313e1">operator*=</a> (const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#aaaa80d4657ec0dee96e7c3caba91459a">operator*=</a> (const comple &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a2377528ca4b15c9f978e433a2140a689">operator/=</a> (const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#aff4f1b6adc9af8b0718bb85f25dd63fb">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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe">m</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix row size  <a href="#a98ae26acaf05df9ca358514b776faafe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228">n</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix column size  <a href="#a00a2cb15c41645107d565ba6efae0228"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classzcomponent.html">zcomponent</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ac538118e334585236087f35829234452">data</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix data  <a href="#ac538118e334585236087f35829234452"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector<br class="typebreak"/>
&lt; uint32_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d">rows</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">array of vector to store the entry information of component for each row  <a href="#a2e04d29f8158ca2d45347866584e994d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector<br class="typebreak"/>
&lt; uint32_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60">cols</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">array of vector to store the entry information of component for each column  <a href="#a25ef7bc7a72f0a3dbb052c268b3e9b60"></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="classzgsmatrix.html#a173ad7edccb1362ce5c16452f3d4a36a">operator&lt;&lt;</a> (std::ostream &amp;, const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">swap</a> (<a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;, <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a> (<a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#acb7ed5855221c154735ff9e4631a5b9d">t</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="class__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a2b13e2483179072631280ad812d52d46">conj</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="class__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#acef894c05af5a26f2f301035fd020244">conjt</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a3acfa3df78ac748b19a29316d5207fdb">idamax</a> (long &amp;, long &amp;, const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">comple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#aaa4ded817d7508aa55280f9177d895c2">damax</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ac90a8650ce2580957751c35a59aaa40a">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="class__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a80563651873ad4c3b1ff00de4dfeb660">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="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a774c6a55bbed6906728d9c7e1e748484">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a409376a29ffa9e372225eaee5ca96380">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a3c16f8a58fd6371a50a5fa89feddf532">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#acdf5586514b17f4ccec10d7d9ae0a42d">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a74267fa0b997208b158e76ae008f0740">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a66665548691a80b2b710e65557ecf1a0">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a168e9e1111461d7c47b620a07b76d703">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a69ffca3464e57cd119280b2621de6d80">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a1f4d4b666a0e04cb125a16864a089340">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a78f764a4662708ae3df8c68142a1e02a">operator+</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a79b0052d730c398fdd3874da450ab1f3">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a938418d11b4b6cc19b06abc2efcc7ba9">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a77ed75e64051c44aa40d40da6cfa834e">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#aae98fbb98b24b4cb7d7db154232940f2">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#ac0e61650b2e7311016bc7ccafd6d7595">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a0fbd2b269c04677b7fa90e0777b52ebc">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#acfffa81736ebe981674f23d35b7f9da2">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a6de2e4b77ec890317e453f7c057f5e37">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a1fcfc2bafb2e287484ea915e63fae123">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a5c6f81cb6ec19b11b47f1ac4a45d0488">operator-</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#afa5a3f56b2ccdad29636d1d363cc43a9">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#aa36a500064fddc074fa90c20961b53ae">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a43d7dc6eb6ab11497cf5752d16e6d270">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a748e85e8a38f29f29d4d7930ece5edc6">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#ac9f3f24caf5ad2cc8531520e49001edf">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a9e163e48b6d5632ed6f5e2eb5ec78589">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a5ea569f6be838eca5cab353f6e26c7c2">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html#a67fe4a961fd7bd25b850dbb97452f4e3">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a572e9c7a79cb4deebac8987480c05953">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a8ed3d605ca290ea8b49168cdb05f05b2">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a80e123e7981396950e00207054888e91">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#aaca91f09aeb2f43b666522bcf53037d5">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a64825d47fda9929346eac84381d6c702">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;, const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#aef3ee3bfa748bf1bec6787e9d7b0832e">operator*</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;, const comple &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a4031b88ccfb5006eae52a47ce7fe6ddc">operator/</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;, const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ae466b80d2697c9e0a210f16bdb31182c">operator/</a> (const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;, const comple &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#ab7c257c4d2e5925d89629f9607e5b10d">operator*</a> (const double &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__zgsmatrix.html">_zgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classzgsmatrix.html#a96275743e339086550c1bd9e47f491c7">operator*</a> (const comple &amp;, const <a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp;)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Complex Double-precision General Sparse Matrix Class. </p>

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

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

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> =0;
  <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> =0;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.clear();
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.clear();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a3944c914fe9c056ff5edeebea6e72bf5"></a><!-- doxytag: member="zgsmatrix::zgsmatrix" ref="a3944c914fe9c056ff5edeebea6e72bf5" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html#a0523864c03f92d5c7af2618dfc10c55b">zgsmatrix::zgsmatrix</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix copy constructor </p>

<p>Definition at line <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00019">19</a> of file <a class="el" href="zgsmatrix-constructor_8hpp_source.html">zgsmatrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> =mat.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>;
  <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> =mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.clear();
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.clear();
  <a class="code" href="classzgsmatrix.html#ab7888502a62bee56c287e14c138bd6ce">copy</a>(mat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a45d816c2d735ed34e7026f96251b31fd"></a><!-- doxytag: member="zgsmatrix::zgsmatrix" ref="a45d816c2d735ed34e7026f96251b31fd" args="(const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html#a0523864c03f92d5c7af2618dfc10c55b">zgsmatrix::zgsmatrix</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</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>zgsmatrix constructor to cast <a class="el" href="class__zgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_zgsmatrix</a> </p>

<p>Definition at line <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00031">31</a> of file <a class="el" href="zgsmatrix-constructor_8hpp_source.html">zgsmatrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00013">_zgsmatrix::cols</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00011">_zgsmatrix::data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00009">_zgsmatrix::m</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00010">_zgsmatrix::n</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="__zgsmatrix-misc_8hpp_source.html#l00003">_zgsmatrix::nullify()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>, and <a class="el" href="__zgsmatrix_8hpp_source.html#l00012">_zgsmatrix::rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> =mat.<a class="code" href="class__zgsmatrix.html#a1be0849915f6b79eb1444150e8bebf31" title="matrix row size">m</a>;
  <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> =mat.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a>;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.clear();
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.clear();
  
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.swap(mat.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>);
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.swap(mat.<a class="code" href="class__zgsmatrix.html#a5b554e651d84b2edcfa203d5c1140221" title="array of vector to store the entry information of component for each row">rows</a>);
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.swap(mat.<a class="code" href="class__zgsmatrix.html#a9179bd81a14abc4cf55ee4b48847b0eb" title="array of vector to store the entry information of component for each column">cols</a>);
  
  mat.<a class="code" href="class__zgsmatrix.html#a319c20ac96b91a6be070eec7850ac146">nullify</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a589dad846d9f01f510a9808d15579584"></a><!-- doxytag: member="zgsmatrix::zgsmatrix" ref="a589dad846d9f01f510a9808d15579584" args="(const long &amp;, const long &amp;, const long=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html#a0523864c03f92d5c7af2618dfc10c55b">zgsmatrix::zgsmatrix</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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>_c</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgsmatrix constructor with size specification </p>

<p>Definition at line <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00052">52</a> of file <a class="el" href="zgsmatrix-constructor_8hpp_source.html">zgsmatrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</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 || _c&lt;0 ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Matrix sizes and the length of arrays 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; _c &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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> =_m;
  <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> =_n;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.resize(0);
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.reserve(_c);
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.resize(<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>);
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.resize(<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8c00e5bd885dc6bf7f65f0044892e8ff"></a><!-- doxytag: member="zgsmatrix::zgsmatrix" ref="a8c00e5bd885dc6bf7f65f0044892e8ff" args="(const char *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html#a0523864c03f92d5c7af2618dfc10c55b">zgsmatrix::zgsmatrix</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>zgsmatrix constructor with filename </p>

<p>Definition at line <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00074">74</a> of file <a class="el" href="zgsmatrix-constructor_8hpp_source.html">zgsmatrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00226">read()</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.clear();
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.clear();
  <span class="comment"></span>
<span class="comment">  //// read ////</span>
<span class="comment"></span>  <a class="code" href="classzgsmatrix.html#a78279f3540541fa92c989eec67222a46">read</a>(filename);
}
</pre></div>
</div>
</div>
<a class="anchor" id="adfc0fa2c234bf53e7b269b7b73b3e358"></a><!-- doxytag: member="zgsmatrix::~zgsmatrix" ref="adfc0fa2c234bf53e7b269b7b73b3e358" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html#adfc0fa2c234bf53e7b269b7b73b3e358">zgsmatrix::~zgsmatrix</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>zgsmatrix destructor </p>

<p>Definition at line <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00090">90</a> of file <a class="el" href="zgsmatrix-constructor_8hpp_source.html">zgsmatrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.clear();
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.clear();
}
</pre></div>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a584ebcb4e6076094d96fc35869808004"></a><!-- doxytag: member="zgsmatrix::to_zgematrix" ref="a584ebcb4e6076094d96fc35869808004" args="() const " -->
<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="classzgsmatrix.html#a584ebcb4e6076094d96fc35869808004">zgsmatrix::to_zgematrix</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>convert to <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="zgsmatrix-cast_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-cast_8hpp_source.html">zgsmatrix-cast.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00279">_</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zcomponent_8hpp_source.html#l00009">zcomponent::i</a>, <a class="el" href="zcomponent_8hpp_source.html#l00010">zcomponent::j</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zcomponent_8hpp_source.html#l00011">zcomponent::v</a>, and <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00014">zero()</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-__zgbmatrix_8hpp_source.html#l00003">operator+()</a>, and <a class="el" href="zgsmatrix-__zgbmatrix_8hpp_source.html#l00028">operator-()</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( <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a>(<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>,<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>).<a class="code" href="classzgsmatrix.html#ac7198a8299ffcf356f65679293e3ed89">zero</a>() );
  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> c=0; c&lt;<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 =<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="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac3acf9ae8db150aefe729a070348e594"></a><!-- doxytag: member="zgsmatrix::operator()" ref="ac3acf9ae8db150aefe729a070348e594" args="(const long &amp;, const long &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">comple zgsmatrix::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="zgsmatrix-io_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-io_8hpp_source.html">zgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;0 || j&lt;0 || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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"></span>
<span class="comment">  //// search (i,j) component ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::const_iterator p=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].begin(); p!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].end(); p++){
    <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].j)==j){ <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].v; }
  }
  <span class="comment"></span>
<span class="comment">  //// (i,j) component was not found ////</span>
<span class="comment"></span>  <span class="keywordflow">return</span> comple(0.0,0.0);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac907d0649d984b39cade88e42fac8be7"></a><!-- doxytag: member="zgsmatrix::operator()" ref="ac907d0649d984b39cade88e42fac8be7" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">comple &amp; zgsmatrix::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 const object </p>

<p>Definition at line <a class="el" href="zgsmatrix-io_8hpp_source.html#l00025">25</a> of file <a class="el" href="zgsmatrix-io_8hpp_source.html">zgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;0 || j&lt;0 || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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"></span>
<span class="comment">  //////// search (i,j) component ////////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator p=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].begin(); p!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].end(); p++){
    <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].j)==j){ <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].v; }
  }
  <span class="comment"></span>
<span class="comment">  //////// (i,j) component not found ////////</span>
<span class="comment"></span>  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].push_back(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size());
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].push_back(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size());
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.push_back( <a class="code" href="classzcomponent.html" title="Component Class for Complex Double-precision Sparse Matrix Classes.">zcomponent</a>(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j, comple(0.,0.)) );
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.back().v;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa7645a41760adbe7b7f279b018b7c85a"></a><!-- doxytag: member="zgsmatrix::put" ref="aa7645a41760adbe7b7f279b018b7c85a" 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="classzgsmatrix.html">zgsmatrix</a> &amp; <a class="el" href="classzgsmatrix.html#aa7645a41760adbe7b7f279b018b7c85a">zgsmatrix::put</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>put value without isListed check </p>

<p>Definition at line <a class="el" href="zgsmatrix-io_8hpp_source.html#l00054">54</a> of file <a class="el" href="zgsmatrix-io_8hpp_source.html">zgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00149">isListed()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-io_8hpp_source.html#l00226">read()</a>, <a class="el" href="__dgsmatrix-cast_8hpp_source.html#l00003">_dgsmatrix::to_zgsmatrix()</a>, <a class="el" href="__zhsmatrix-cast_8hpp_source.html#l00033">_zhsmatrix::to_zgsmatrix()</a>, <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00003">dgsmatrix::to_zgsmatrix()</a>, and <a class="el" href="zhsmatrix-cast_8hpp_source.html#l00031">zhsmatrix::to_zgsmatrix()</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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;0 || j&lt;0 || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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="keywordflow">if</span>( <a class="code" href="classzgsmatrix.html#a5c1d444b61e3e63ddaa68937639ceb23">isListed</a>(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j) ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The required component is already listed.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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"></span>
<span class="comment">  //// push ////</span>
<span class="comment"></span>  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].push_back(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size());
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].push_back(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size());
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.push_back(<a class="code" href="classzcomponent.html" title="Component Class for Complex Double-precision Sparse Matrix Classes.">zcomponent</a>(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j,v));
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="acf84da742f630747050783980d2a2080"></a><!-- doxytag: member="zgsmatrix::del" ref="acf84da742f630747050783980d2a2080" args="(const long, const long)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; <a class="el" href="classzgsmatrix.html#acf84da742f630747050783980d2a2080">zgsmatrix::del</a> </td>
          <td>(</td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#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>delete the entry of a component </p>

<p>Definition at line <a class="el" href="zgsmatrix-io_8hpp_source.html#l00086">86</a> of file <a class="el" href="zgsmatrix-io_8hpp_source.html">zgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00189">diet()</a>, and <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00093">stretch()</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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;0 || j&lt;0 || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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"></span>
<span class="comment">  //// search (i,j) component ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator p=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].begin(); p!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].end(); p++){
    <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].j)==j){<span class="comment">//exists</span><span class="comment"></span>
<span class="comment">      //// save position ////</span>
<span class="comment"></span>      uint32_t c(*p);
      uint32_t C(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size()-1);
      <span class="comment"></span>
<span class="comment">      //// data translation ////</span>
<span class="comment"></span>      <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[c]=data.back();
      data.pop_back();
      <span class="comment"></span>
<span class="comment">      //// remove from List ////</span>
<span class="comment"></span>      <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].erase(p);
      <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].begin(); q!=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].end(); q++){
        <span class="keywordflow">if</span>(*q==c){ <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].erase(q); <span class="keywordflow">break</span>; }
      }
      <span class="comment"></span>
<span class="comment">      //// modify the entry of translated component ////</span>
<span class="comment"></span>      <span class="keywordtype">long</span> I(data[c].<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>), J(data[c].j);
      <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[I].begin(); q!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[I].end(); q++){
        <span class="keywordflow">if</span>(*q==C){ *q=c; <span class="keywordflow">break</span>; }
      }
      <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[J].begin(); q!=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[J].end(); q++){
        <span class="keywordflow">if</span>(*q==C){ *q=c; <span class="keywordflow">break</span>; }
      }
      <span class="keywordflow">return</span> *<span class="keyword">this</span>;
    }
  }
  
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  std::cerr &lt;&lt; <span class="stringliteral">&quot;# [NOTE] zgsmatrix::del(long&amp;, long&amp;): The required component was not listed. Your input was (&quot;</span> &lt;&lt; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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;
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab028c584f28a98911943005418c0eb9a"></a><!-- doxytag: member="zgsmatrix::del" ref="ab028c584f28a98911943005418c0eb9a" args="(const long)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; <a class="el" href="classzgsmatrix.html#acf84da742f630747050783980d2a2080">zgsmatrix::del</a> </td>
          <td>(</td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>delete the entry of an element </p>

<p>Definition at line <a class="el" href="zgsmatrix-io_8hpp_source.html#l00135">135</a> of file <a class="el" href="zgsmatrix-io_8hpp_source.html">zgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</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>( c&lt;0 || c&gt;=<span class="keywordtype">long</span>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size()) ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The required element is out of the matrix volume.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; c &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>( c==<span class="keywordtype">long</span>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size()-1) ){<span class="comment">//if c is the last element</span>
    <span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[c].<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>), j(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[c].j);
    <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].begin(); q!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].end(); q++){
      <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(*q)==c){ <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].erase(q); <span class="keywordflow">break</span>; }
    }
    <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].begin(); q!=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].end(); q++){
      <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(*q)==c){ <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].erase(q); <span class="keywordflow">break</span>; }
    }
    <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.pop_back();
  }

  <span class="keywordflow">else</span>{<span class="comment">//if c is NOT the last element</span><span class="comment"></span>
<span class="comment">    //// data translation ////</span>
<span class="comment"></span>    uint32_t C(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.size()-1);
    <span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[c].<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>), j(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[c].j), I(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.back().i), J(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.back().j);
    <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[c]=data.back();<span class="comment"></span>
<span class="comment">    //// remove entry of component ////</span>
<span class="comment"></span>    <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].begin(); q!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].end(); q++){
      <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(*q)==c){ <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].erase(q); <span class="keywordflow">break</span>; }
    }
    <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].begin(); q!=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].end(); q++){
      <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(*q)==c){ <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].erase(q); <span class="keywordflow">break</span>; }
    }<span class="comment"></span>
<span class="comment">    //// modify the entry of translated component ////</span>
<span class="comment"></span>    <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[I].begin(); q!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[I].end(); q++){
      <span class="keywordflow">if</span>(*q==C){ *q=c; <span class="keywordflow">break</span>; }
    }
    <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[J].begin(); q!=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[J].end(); q++){
      <span class="keywordflow">if</span>(*q==C){ *q=c; <span class="keywordflow">break</span>; }
    }<span class="comment"></span>
<span class="comment">    //// pop_back ////</span>
<span class="comment"></span>    data.pop_back();
  }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae2fbed12441e4fcc678cfd9964c6e131"></a><!-- doxytag: member="zgsmatrix::write" ref="ae2fbed12441e4fcc678cfd9964c6e131" args="(const char *) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#ae2fbed12441e4fcc678cfd9964c6e131">zgsmatrix::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="zgsmatrix-io_8hpp_source.html#l00210">210</a> of file <a class="el" href="zgsmatrix-io_8hpp_source.html">zgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</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;#zgsmatrix&quot;</span> &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; std::endl;
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    ofs &lt;&lt; it-&gt;i &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; it-&gt;j &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; it-&gt;v &lt;&lt; std::endl;
  }
  ofs.close();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a78279f3540541fa92c989eec67222a46"></a><!-- doxytag: member="zgsmatrix::read" ref="a78279f3540541fa92c989eec67222a46" args="(const char *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#a78279f3540541fa92c989eec67222a46">zgsmatrix::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="zgsmatrix-io_8hpp_source.html#l00226">226</a> of file <a class="el" href="zgsmatrix-io_8hpp_source.html">zgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00054">put()</a>, and <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00062">resize()</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00074">zgsmatrix()</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;zgsmatrix&quot;</span> &amp;&amp; <span class="keywordtype">id</span> != <span class="stringliteral">&quot;#zgsmatrix&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 zgsmatrix.&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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &gt;&gt; <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>;
  <a class="code" href="classzgsmatrix.html#a58f671b4909a2bdd70e8d893635130c7">resize</a>(<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>, n);
  
  comple val;
  <span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>, j,  pos, tmp;
  <span class="keywordflow">while</span>(!s.eof()){
    s &gt;&gt; i &gt;&gt; j &gt;&gt; val;
    <a class="code" href="classzgsmatrix.html#aa7645a41760adbe7b7f279b018b7c85a">put</a>(i,j, val);
    pos =s.tellg();
    s &gt;&gt; tmp;
    s.seekg(pos);
  }
  
  <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;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Most likely, there are too many data components over the context.&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
  s.close();
}
</pre></div>
</div>
</div>
<a class="anchor" id="af19f5ede3f54d597804b73a20b0af479"></a><!-- doxytag: member="zgsmatrix::clear" ref="af19f5ede3f54d597804b73a20b0af479" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#af19f5ede3f54d597804b73a20b0af479">zgsmatrix::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="zgsmatrix-misc_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> =0;
  <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> =0;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.clear();
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.clear();
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac7198a8299ffcf356f65679293e3ed89"></a><!-- doxytag: member="zgsmatrix::zero" ref="ac7198a8299ffcf356f65679293e3ed89" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; <a class="el" href="classzgsmatrix.html#ac7198a8299ffcf356f65679293e3ed89">zgsmatrix::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="zgsmatrix-misc_8hpp_source.html#l00014">14</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00244">col()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00224">row()</a>, <a class="el" href="zgsmatrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>, <a class="el" href="__zhsmatrix-cast_8hpp_source.html#l00033">_zhsmatrix::to_zgsmatrix()</a>, and <a class="el" href="zhsmatrix-cast_8hpp_source.html#l00031">zhsmatrix::to_zgsmatrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.resize(0);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){ <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].resize(0); }
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>; j++){ <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[j].resize(0); }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a3980e2e7c9cd4ebb5b0ce85832a62925"></a><!-- doxytag: member="zgsmatrix::chsign" ref="a3980e2e7c9cd4ebb5b0ce85832a62925" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#a3980e2e7c9cd4ebb5b0ce85832a62925">zgsmatrix::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="zgsmatrix-misc_8hpp_source.html#l00024">24</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00107">operator-()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    it-&gt;v =-it-&gt;v;
  }
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab7888502a62bee56c287e14c138bd6ce"></a><!-- doxytag: member="zgsmatrix::copy" ref="ab7888502a62bee56c287e14c138bd6ce" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#ab7888502a62bee56c287e14c138bd6ce">zgsmatrix::copy</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="zgsmatrix-misc_8hpp_source.html#l00033">33</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00003">operator=()</a>, and <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00019">zgsmatrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> =mat.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>;
  <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> =mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a> =mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>;
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a> =mat.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>;
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a> =mat.<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a995a71abf1f1182da2be9e4201b12ef4"></a><!-- doxytag: member="zgsmatrix::shallow_copy" ref="a995a71abf1f1182da2be9e4201b12ef4" args="(const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#a995a71abf1f1182da2be9e4201b12ef4">zgsmatrix::shallow_copy</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</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="zgsmatrix-misc_8hpp_source.html#l00045">45</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00013">_zgsmatrix::cols</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00011">_zgsmatrix::data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00009">_zgsmatrix::m</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00010">_zgsmatrix::n</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="__zgsmatrix-misc_8hpp_source.html#l00003">_zgsmatrix::nullify()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>, and <a class="el" href="__zgsmatrix_8hpp_source.html#l00012">_zgsmatrix::rows</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00003">operator=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.clear();
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.clear();

  <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> =mat.<a class="code" href="class__zgsmatrix.html#a1be0849915f6b79eb1444150e8bebf31" title="matrix row size">m</a>;
  <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> =mat.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a>;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.swap(mat.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>);
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.swap(mat.<a class="code" href="class__zgsmatrix.html#a5b554e651d84b2edcfa203d5c1140221" title="array of vector to store the entry information of component for each row">rows</a>);
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.swap(mat.<a class="code" href="class__zgsmatrix.html#a9179bd81a14abc4cf55ee4b48847b0eb" title="array of vector to store the entry information of component for each column">cols</a>);

  mat.<a class="code" href="class__zgsmatrix.html#a319c20ac96b91a6be070eec7850ac146">nullify</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a58f671b4909a2bdd70e8d893635130c7"></a><!-- doxytag: member="zgsmatrix::resize" ref="a58f671b4909a2bdd70e8d893635130c7" args="(const long &amp;, const long &amp;, const long=0, const long=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; <a class="el" href="classzgsmatrix.html#a58f671b4909a2bdd70e8d893635130c7">zgsmatrix::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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>_c</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long&#160;</td>
          <td class="paramname"><em>_l</em> = <code>0</code>&#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="zgsmatrix-misc_8hpp_source.html#l00062">62</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-io_8hpp_source.html#l00226">read()</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 || _c&lt;0 ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Matrix sizes and the length of arrays 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; _c &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; _l &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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> =_m;
  <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> =_n;
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.resize(0);
  <a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.reserve(_c);
  <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.resize(<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].resize(0);
    <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].reserve(_l);
  }
  <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.resize(<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].resize(0);
    <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].reserve(_l);
  }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="af27d040e30bb6dc28cdf79874b19d20d"></a><!-- doxytag: member="zgsmatrix::stretch" ref="af27d040e30bb6dc28cdf79874b19d20d" 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="classzgsmatrix.html#af27d040e30bb6dc28cdf79874b19d20d">zgsmatrix::stretch</a> </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>dm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>dn</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>stretch the matrix size </p>

<p>Definition at line <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00093">93</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00086">del()</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>+dm&lt;0 || <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>+dn&lt;0 ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The new matrix size must be larger than zero. &quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; dm &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; dn &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">  //////// zero ////////</span>
<span class="comment"></span>  <span class="keywordflow">if</span>(dm==0 &amp;&amp; dn==0){ <span class="keywordflow">return</span>; }
  <span class="comment"></span>
<span class="comment">  //////// non-zero ////////</span>
<span class="comment"></span>  <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> +=dm;
  <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> +=dn;
  <span class="comment"></span>
<span class="comment">  //// for rows ////</span>
<span class="comment"></span>  <span class="keywordflow">if</span>(dm&lt;0){<span class="comment"></span>
<span class="comment">    //// delete components over the new size ////</span>
<span class="comment"></span>    <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::reverse_iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.rbegin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.rend(); it++){
      <span class="keywordflow">if</span>( <span class="keywordtype">long</span>(it-&gt;i)&gt;=<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> ){ <a class="code" href="classzgsmatrix.html#acf84da742f630747050783980d2a2080">del</a>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.rend()-it-1); }
    }<span class="comment"></span>
<span class="comment">    //// shrink rows ////</span>
<span class="comment"></span>    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;-dm; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
      <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.pop_back();
    }
  }
  <span class="keywordflow">else</span>{<span class="comment">//dm&gt;0</span><span class="comment"></span>
<span class="comment">    //// expand rows ////</span>
<span class="comment"></span>    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;dm; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
      <a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>.push_back( std::vector&lt;uint32_t&gt;(0) );
    }
  }
<span class="comment"></span>
<span class="comment">  //// for cols ////</span>
<span class="comment"></span>  <span class="keywordflow">if</span>(dn&lt;0){<span class="comment"></span>
<span class="comment">    //// delete components over the new size ////</span>
<span class="comment"></span>    <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::reverse_iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.rbegin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.rend(); it++){
      <span class="keywordflow">if</span>( <span class="keywordtype">long</span>(it-&gt;j)&gt;=<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> ){ <a class="code" href="classzgsmatrix.html#acf84da742f630747050783980d2a2080">del</a>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.rend()-it-1); }
    }
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;-dn; j++){
      <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.pop_back();
    }
  }
  <span class="keywordflow">else</span>{<span class="comment">//dn&gt;0</span><span class="comment"></span>
<span class="comment">    //// expand cols ////</span>
<span class="comment"></span>    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;dn; j++){
      <a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>.push_back( std::vector&lt;uint32_t&gt;(0) );
    }
  }
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1f7e88627b9b0c9e96ed538c208bc7a8"></a><!-- doxytag: member="zgsmatrix::expand" ref="a1f7e88627b9b0c9e96ed538c208bc7a8" args="(const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#a1f7e88627b9b0c9e96ed538c208bc7a8">zgsmatrix::expand</a> </td>
          <td>(</td>
          <td class="paramtype">const long &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="a5c1d444b61e3e63ddaa68937639ceb23"></a><!-- doxytag: member="zgsmatrix::isListed" ref="a5c1d444b61e3e63ddaa68937639ceb23" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classzgsmatrix.html#a5c1d444b61e3e63ddaa68937639ceb23">zgsmatrix::isListed</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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>check if the component is listed </p>

<p>Definition at line <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00149">149</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-io_8hpp_source.html#l00054">put()</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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;0 || j&lt;0 || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::const_iterator p=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].begin(); p!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].end(); p++){
    <span class="keywordflow">if</span>( <span class="keywordtype">long</span>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].j)==j ){ <span class="keywordflow">return</span> 1; }
  }
  
  <span class="keywordflow">return</span> 0;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae819389ff65b1989371730d22ca2662f"></a><!-- doxytag: member="zgsmatrix::number" ref="ae819389ff65b1989371730d22ca2662f" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgsmatrix.html#ae819389ff65b1989371730d22ca2662f">zgsmatrix::number</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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>return the element number of the component </p>

<p>Definition at line <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00169">169</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;0 || j&lt;0 || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator p=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].begin(); p!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].end(); p++){
    <span class="keywordflow">if</span>( <span class="keywordtype">long</span>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].j)==j ){ <span class="keywordflow">return</span> *p; }
  }
  
  <span class="keywordflow">return</span> -1;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab5b8fa4d12186aa09f146b255dc535fb"></a><!-- doxytag: member="zgsmatrix::checkup" ref="ab5b8fa4d12186aa09f146b255dc535fb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#ab5b8fa4d12186aa09f146b255dc535fb">zgsmatrix::checkup</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>health checkup </p>

<p>Definition at line <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00198">198</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;<span class="comment"></span>
<span class="comment">  //////////////// data ////////////////</span>
<span class="comment">  //////// check i,j ////////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">if</span>( <span class="keywordtype">long</span>(it-&gt;i)&gt;=<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> || long(it-&gt;j)&gt;=<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> ){
      ERROR_REPORT;
      std::cerr &lt;&lt; <span class="stringliteral">&quot;A component, (&quot;</span> &lt;&lt; it-&gt;i &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; it-&gt;j &lt;&lt; <span class="stringliteral">&quot;), is out of matrix size.&quot;</span> &lt;&lt; std::endl;
      exit(1);
    }
  }<span class="comment"></span>
<span class="comment">  //////// check double listing ////////</span>
<span class="comment"></span>  <span class="comment"></span>
<span class="comment">  //////////////// rows ////////////////</span>
<span class="comment">  //////////////// cols ////////////////</span>
<span class="comment"></span>  <span class="comment"></span>
<span class="comment">  //////////////// NOTE ////////////////</span>
<span class="comment"></span>  std::cerr &lt;&lt; <span class="stringliteral">&quot;# [NOTE] zgsmatrix::checkup(): This sparse matrix is fine.&quot;</span> &lt;&lt; std::endl;
}
</pre></div>
</div>
</div>
<a class="anchor" id="adf22d668642bcbba4977e9dc3e8bb210"></a><!-- doxytag: member="zgsmatrix::diet" ref="adf22d668642bcbba4977e9dc3e8bb210" args="(const double=DBL_MIN)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#adf22d668642bcbba4977e9dc3e8bb210">zgsmatrix::diet</a> </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>eps</em> = <code>DBL_MIN</code></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>erase components less than DBL_MIN </p>

<p>Definition at line <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00189">189</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, and <a class="el" href="zgsmatrix-io_8hpp_source.html#l00086">del()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::reverse_iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.rbegin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.rend(); it++){
    <span class="keywordflow">if</span>( fabs(it-&gt;v.real())&lt;eps &amp;&amp; fabs(it-&gt;v.imag())&lt;eps ){ <a class="code" href="classzgsmatrix.html#acf84da742f630747050783980d2a2080">del</a>(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.rend()-it-1); }
  }
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1e2feb859c5d3287cedfe6bb61a410d4"></a><!-- doxytag: member="zgsmatrix::row" ref="a1e2feb859c5d3287cedfe6bb61a410d4" 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="classzgsmatrix.html#a1e2feb859c5d3287cedfe6bb61a410d4">zgsmatrix::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="zgsmatrix-misc_8hpp_source.html#l00224">224</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00279">_</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>, and <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00014">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>( _m&lt;0 || _m&gt;<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" 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> vec( <a class="code" href="classzrovector.html" title="Complex Double-precision Row Vector Class.">zrovector</a>(<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>).<a class="code" href="classzgsmatrix.html#ac7198a8299ffcf356f65679293e3ed89">zero</a>() );
  <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::const_iterator p=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[_m].begin(); p!=<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[_m].end(); p++){
    vec(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].j) =<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(vec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5263ec1bc0e7b77c58c5675494561172"></a><!-- doxytag: member="zgsmatrix::col" ref="a5263ec1bc0e7b77c58c5675494561172" 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="classzgsmatrix.html#a5263ec1bc0e7b77c58c5675494561172">zgsmatrix::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="zgsmatrix-misc_8hpp_source.html#l00244">244</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00279">_</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00014">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>( _n&lt;0 || _n&gt;<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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> vec( <a class="code" href="classzcovector.html" title="Complex Double-precision Column Vector Class.">zcovector</a>(<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>).<a class="code" href="classzgsmatrix.html#ac7198a8299ffcf356f65679293e3ed89">zero</a>() );
  <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::const_iterator p=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[_n].begin(); p!=<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>[_n].end(); p++){
    vec(<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>) =<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(vec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1d7674d484b3ee61918a605e2830927d"></a><!-- doxytag: member="zgsmatrix::operator=" ref="a1d7674d484b3ee61918a605e2830927d" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix=zgsmatrix operator </p>

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

<p>References <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, and <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">if</span>(&amp;<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>!=&amp;mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>){ <span class="comment">// if it is NOT self substitution</span>
    <a class="code" href="classzgsmatrix.html#ab7888502a62bee56c287e14c138bd6ce">copy</a>(mat);
  }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a29bb41069ee0fe42f302629041fe7afd"></a><!-- doxytag: member="zgsmatrix::operator=" ref="a29bb41069ee0fe42f302629041fe7afd" args="(const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</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>zgsmatrix=<a class="el" href="class__zgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_zgsmatrix</a> operator </p>

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

<p>References <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#a995a71abf1f1182da2be9e4201b12ef4">shallow_copy</a>(mat);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a23a5f7006c3259f5db966e5021a845b2"></a><!-- doxytag: member="zgsmatrix::operator+=" ref="a23a5f7006c3259f5db966e5021a845b2" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix+=zgsmatrix operator </p>

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

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgsmatrix_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=mat.<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 summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    (*this)(it-&gt;i,it-&gt;j) +=it-&gt;v;
  }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="afc2c9b01d3dba46862beebef77de7e04"></a><!-- doxytag: member="zgsmatrix::operator+=" ref="afc2c9b01d3dba46862beebef77de7e04" args="(const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</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>zgsmatrix+=<a class="el" href="class__zgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_zgsmatrix</a> operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00015">15</a> of file <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html">zgsmatrix-_zgsmatrix.hpp</a>.</p>

<p>References <a class="el" href="__zgsmatrix_8hpp_source.html#l00011">_zgsmatrix::data</a>, <a class="el" href="__zgsmatrix-misc_8hpp_source.html#l00014">_zgsmatrix::destroy()</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00009">_zgsmatrix::m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__zgsmatrix_8hpp_source.html#l00010">_zgsmatrix::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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=mat.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=mat.<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 summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<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; mat.<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>  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=mat.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>.end(); it++){
    (*this)(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  mat.<a class="code" href="class__zgsmatrix.html#a967720c5efdb91e779a955fee836d01f">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac88019bc74752c2ebbde375d6f3e7310"></a><!-- doxytag: member="zgsmatrix::operator&#45;=" ref="ac88019bc74752c2ebbde375d6f3e7310" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix-=zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00036">36</a> of file <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html">zgsmatrix-zgsmatrix.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="zgsmatrix_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=mat.<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 sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    (*this)(it-&gt;i,it-&gt;j) -=it-&gt;v;
  }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae9ce3e8bf3df4500121f5a62b4b43dba"></a><!-- doxytag: member="zgsmatrix::operator&#45;=" ref="ae9ce3e8bf3df4500121f5a62b4b43dba" args="(const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</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>zgsmatrix-=<a class="el" href="class__zgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_zgsmatrix</a> operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00035">35</a> of file <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html">zgsmatrix-_zgsmatrix.hpp</a>.</p>

<p>References <a class="el" href="__zgsmatrix_8hpp_source.html#l00011">_zgsmatrix::data</a>, <a class="el" href="__zgsmatrix-misc_8hpp_source.html#l00014">_zgsmatrix::destroy()</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00009">_zgsmatrix::m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__zgsmatrix_8hpp_source.html#l00010">_zgsmatrix::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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=mat.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> || <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=mat.<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 sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<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; mat.<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>  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=mat.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>.end(); it++){
    (*this)(it-&gt;i,it-&gt;j) -= it-&gt;v;
  }
  mat.<a class="code" href="class__zgsmatrix.html#a967720c5efdb91e779a955fee836d01f">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="abff4209cc126d7995bdee6f2cdcab147"></a><!-- doxytag: member="zgsmatrix::operator*=" ref="abff4209cc126d7995bdee6f2cdcab147" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*=zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00055">55</a> of file <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html">zgsmatrix-zgsmatrix.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00012">rows</a>, and <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00268">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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=mat.<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; <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>, mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>);
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordtype">long</span> k(it-&gt;j);
    std::vector&lt;uint32_t&gt;::const_iterator p;
    <span class="keywordflow">for</span>(p=mat.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[k].begin(); p!=mat.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[k].end(); p++){
      newmat(it-&gt;i,mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].j) +=it-&gt;v*mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].v;
    }
  }
  
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">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="abda687835ed94411d8a4f6b7d2eb1866"></a><!-- doxytag: member="zgsmatrix::operator*=" ref="abda687835ed94411d8a4f6b7d2eb1866" args="(const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__zgsmatrix.html">_zgsmatrix</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>zgsmatrix*=<a class="el" href="class__zgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_zgsmatrix</a> operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00055">55</a> of file <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html">zgsmatrix-_zgsmatrix.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00011">_zgsmatrix::data</a>, <a class="el" href="__zgsmatrix-misc_8hpp_source.html#l00014">_zgsmatrix::destroy()</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00009">_zgsmatrix::m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="zgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00010">_zgsmatrix::n</a>, <a class="el" href="__zgsmatrix_8hpp_source.html#l00012">_zgsmatrix::rows</a>, and <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00268">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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=mat.<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; <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<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; mat.<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="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat( <a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>, mat.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a>, 0 );

  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordtype">long</span> k(it-&gt;j);
    std::vector&lt;uint32_t&gt;::iterator p;
    <span class="keywordflow">for</span>(p=mat.<a class="code" href="class__zgsmatrix.html#a5b554e651d84b2edcfa203d5c1140221" title="array of vector to store the entry information of component for each row">rows</a>[k].begin(); p!=mat.<a class="code" href="class__zgsmatrix.html#a5b554e651d84b2edcfa203d5c1140221" title="array of vector to store the entry information of component for each row">rows</a>[k].end(); p++){
      newmat(it-&gt;i,mat.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>[*p].j) += it-&gt;v*mat.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>[*p].v;
    }
  }
  
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">swap</a>(*<span class="keyword">this</span>,newmat);
  mat.<a class="code" href="class__zgsmatrix.html#a967720c5efdb91e779a955fee836d01f">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa6a165894181413c381ea076dc8313e1"></a><!-- doxytag: member="zgsmatrix::operator*=" ref="aa6a165894181413c381ea076dc8313e1" args="(const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::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>zgsmatrix*=double operator </p>

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

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    it-&gt;v *=d;
  }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aaaa80d4657ec0dee96e7c3caba91459a"></a><!-- doxytag: member="zgsmatrix::operator*=" ref="aaaa80d4657ec0dee96e7c3caba91459a" args="(const comple &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::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>zgsmatrix*=comple operator </p>

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

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    it-&gt;v *=d;
  }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a2377528ca4b15c9f978e433a2140a689"></a><!-- doxytag: member="zgsmatrix::operator/=" ref="a2377528ca4b15c9f978e433a2140a689" args="(const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::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>zgsmatrix/=double operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-double_8hpp_source.html#l00013">13</a> of file <a class="el" href="zgsmatrix-double_8hpp_source.html">zgsmatrix-double.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    it-&gt;v /=d;
  }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aff4f1b6adc9af8b0718bb85f25dd63fb"></a><!-- doxytag: member="zgsmatrix::operator/=" ref="aff4f1b6adc9af8b0718bb85f25dd63fb" args="(const comple &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classzgsmatrix.html">zgsmatrix</a> &amp; zgsmatrix::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>zgsmatrix/=comple operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-complex_8hpp_source.html#l00013">13</a> of file <a class="el" href="zgsmatrix-complex_8hpp_source.html">zgsmatrix-complex.hpp</a>.</p>

<p>References <a class="el" href="zgsmatrix_8hpp_source.html#l00011">data</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    it-&gt;v /=d;
  }
  <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="a173ad7edccb1362ce5c16452f3d4a36a"></a><!-- doxytag: member="zgsmatrix::operator&lt;&lt;" ref="a173ad7edccb1362ce5c16452f3d4a36a" args="(std::ostream &amp;, const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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="zgsmatrix-io_8hpp_source.html#l00188">188</a> of file <a class="el" href="zgsmatrix-io_8hpp_source.html">zgsmatrix-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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;mat.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>; j++){
      std::vector&lt;uint32_t&gt;::const_iterator q;
      <span class="keywordflow">for</span>(q=mat.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].begin(); q!=mat.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].end(); q++){
        <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*q].j)==j){ <span class="keywordflow">break</span>; }
      }
      <span class="keywordflow">if</span>(q!=mat.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>].end()){ s &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*q].v; }
      <span class="keywordflow">else</span>{ s &lt;&lt; <span class="stringliteral">&quot; x&quot;</span>; }
    }
    s &lt;&lt; std::endl;
  }
  
  <span class="keywordflow">return</span> s;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac4ab5b59cb2a847555450bdd31623ed4"></a><!-- doxytag: member="zgsmatrix::swap" ref="ac4ab5b59cb2a847555450bdd31623ed4" args="(zgsmatrix &amp;, zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">swap</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzgsmatrix.html">zgsmatrix</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="classzgsmatrix.html">zgsmatrix</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="zgsmatrix-misc_8hpp_source.html#l00268">268</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00055">operator*=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(A.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>,B.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>);
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(A.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>,B.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>);
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(A.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>,B.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>);
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(A.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>,B.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>);
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(A.<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>,B.<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a63eec9bc0211848fbc364dcfefa07f70"></a><!-- doxytag: member="zgsmatrix::_" ref="a63eec9bc0211848fbc364dcfefa07f70" args="(zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> <a class="el" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzgsmatrix.html">zgsmatrix</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="zgsmatrix-misc_8hpp_source.html#l00279">279</a> of file <a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00244">col()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00224">row()</a>, and <a class="el" href="zgsmatrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="class__zgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_zgsmatrix</a> newmat;
  <span class="comment"></span>
<span class="comment">  //////// shallow copy ////////</span>
<span class="comment"></span>  newmat.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> =mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>;
  newmat.<a class="code" href="class__zgsmatrix.html#a1be0849915f6b79eb1444150e8bebf31" title="matrix row size">m</a> =mat.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>;
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(newmat.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>,mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>);
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(newmat.<a class="code" href="class__zgsmatrix.html#a5b554e651d84b2edcfa203d5c1140221" title="array of vector to store the entry information of component for each row">rows</a>,mat.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>);
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(newmat.<a class="code" href="class__zgsmatrix.html#a9179bd81a14abc4cf55ee4b48847b0eb" title="array of vector to store the entry information of component for each column">cols</a>,mat.<a class="code" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60" title="array of vector to store the entry information of component for each column">cols</a>);
<span class="comment"></span>
<span class="comment">  //////// nullify ////////</span>
<span class="comment"></span>  mat.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> =0;
  mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> =0;
  
  <span class="keywordflow">return</span> newmat;
}
</pre></div>
</div>
</div>
<a class="anchor" id="acb7ed5855221c154735ff9e4631a5b9d"></a><!-- doxytag: member="zgsmatrix::t" ref="acb7ed5855221c154735ff9e4631a5b9d" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> <a class="el" href="classzgsmatrix.html#acb7ed5855221c154735ff9e4631a5b9d">t</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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 zgsmatrix </p>

<p>Definition at line <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-calc_8hpp_source.html">zgsmatrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(newmat.rows,newmat.cols);
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=newmat.data.end(); it++){
    <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(it-&gt;i,it-&gt;j);
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a2b13e2483179072631280ad812d52d46"></a><!-- doxytag: member="zgsmatrix::conj" ref="a2b13e2483179072631280ad812d52d46" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> <a class="el" href="classzgsmatrix.html#a2b13e2483179072631280ad812d52d46">conj</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="zgsmatrix-calc_8hpp_source.html#l00021">21</a> of file <a class="el" href="zgsmatrix-calc_8hpp_source.html">zgsmatrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=newmat.data.end(); it++){
    it-&gt;v =<a class="code" href="classzgsmatrix.html#a2b13e2483179072631280ad812d52d46">std::conj</a>(it-&gt;v);
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="acef894c05af5a26f2f301035fd020244"></a><!-- doxytag: member="zgsmatrix::conjt" ref="acef894c05af5a26f2f301035fd020244" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> <a class="el" href="classzgsmatrix.html#acef894c05af5a26f2f301035fd020244">conjt</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="zgsmatrix-calc_8hpp_source.html#l00034">34</a> of file <a class="el" href="zgsmatrix-calc_8hpp_source.html">zgsmatrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(newmat.rows,newmat.cols);
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=newmat.data.end(); it++){
    <a class="code" href="classzgsmatrix.html#ac4ab5b59cb2a847555450bdd31623ed4">std::swap</a>(it-&gt;i,it-&gt;j);
    it-&gt;v =<a class="code" href="classzgsmatrix.html#a2b13e2483179072631280ad812d52d46">std::conj</a>(it-&gt;v);
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a3acfa3df78ac748b19a29316d5207fdb"></a><!-- doxytag: member="zgsmatrix::idamax" ref="a3acfa3df78ac748b19a29316d5207fdb" args="(long &amp;, long &amp;, const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classzgsmatrix.html#a3acfa3df78ac748b19a29316d5207fdb">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="classzgsmatrix.html">zgsmatrix</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="zgsmatrix-calc_8hpp_source.html#l00053">53</a> of file <a class="el" href="zgsmatrix-calc_8hpp_source.html">zgsmatrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  std::vector&lt;zcomponent&gt;::const_iterator itx(mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin());
  <span class="keywordtype">double</span> vmax =0.;
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">if</span>( vmax &lt; norm(it-&gt;v) ){
      vmax =norm(it-&gt;v);
      itx =it;
    }
  }
  <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=itx-&gt;<a class="code" href="class__dgematrix.html#ab4e0cbe78518b4af9da89406bb2b9d19">i</a>;
  j=itx-&gt;j;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aaa4ded817d7508aa55280f9177d895c2"></a><!-- doxytag: member="zgsmatrix::damax" ref="aaa4ded817d7508aa55280f9177d895c2" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">comple <a class="el" href="classzgsmatrix.html#aaa4ded817d7508aa55280f9177d895c2">damax</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="zgsmatrix-calc_8hpp_source.html#l00069">69</a> of file <a class="el" href="zgsmatrix-calc_8hpp_source.html">zgsmatrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  std::vector&lt;zcomponent&gt;::const_iterator itx(mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin());
  <span class="keywordtype">double</span> vmax =0.;
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">if</span>( vmax &lt; norm(it-&gt;v) ){
      vmax =norm(it-&gt;v);
      itx =it;
    }
  }
  <span class="keywordflow">return</span> itx-&gt;v;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac90a8650ce2580957751c35a59aaa40a"></a><!-- doxytag: member="zgsmatrix::operator+" ref="ac90a8650ce2580957751c35a59aaa40a" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classzgsmatrix.html">zgsmatrix</a>&amp; operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>+zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-unary_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-unary_8hpp_source.html">zgsmatrix-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="a80563651873ad4c3b1ff00de4dfeb660"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="a80563651873ad4c3b1ff00de4dfeb660" args="(const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>-zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-unary_8hpp_source.html#l00010">10</a> of file <a class="el" href="zgsmatrix-unary_8hpp_source.html">zgsmatrix-unary.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=newmat.data.end(); it++){
    it-&gt;v =-it-&gt;v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a774c6a55bbed6906728d9c7e1e748484"></a><!-- doxytag: member="zgsmatrix::operator+" ref="a774c6a55bbed6906728d9c7e1e748484" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix+zgematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-zgematrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=matB.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> || matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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(matB);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a409376a29ffa9e372225eaee5ca96380"></a><!-- doxytag: member="zgsmatrix::operator+" ref="a409376a29ffa9e372225eaee5ca96380" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix+_zgematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-__zgematrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a> || matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    matB(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  <span class="keywordflow">return</span> matB;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a3c16f8a58fd6371a50a5fa89feddf532"></a><!-- doxytag: member="zgsmatrix::operator+" ref="a3c16f8a58fd6371a50a5fa89feddf532" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix+zhematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zhematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-zhematrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> || matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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( matB.<a class="code" href="classzhematrix.html#a4431c33c07ba437ea65491d437413a3c">to_zgematrix</a>() );
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="acdf5586514b17f4ccec10d7d9ae0a42d"></a><!-- doxytag: member="zgsmatrix::operator+" ref="acdf5586514b17f4ccec10d7d9ae0a42d" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix+_zhematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zhematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-__zhematrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> || matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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( matB.<a class="code" href="class__zhematrix.html#abcc15982d68ccf755653d2bfcf5dc2be">to_zgematrix</a>() );
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  
  matB.<a class="code" href="class__zhematrix.html#a2acc6b7bde22ce109468a72d8d40abcc">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a74267fa0b997208b158e76ae008f0740"></a><!-- doxytag: member="zgsmatrix::operator+" ref="a74267fa0b997208b158e76ae008f0740" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix+zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgbmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-zgbmatrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a584ebcb4e6076094d96fc35869808004">to_zgematrix</a>() );
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(0l,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>+matB.<a class="code" href="classzgbmatrix.html#a2a36d59681d1b2f13120a4b4be9203e8" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j) +=matB(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a66665548691a80b2b710e65557ecf1a0"></a><!-- doxytag: member="zgsmatrix::operator+" ref="a66665548691a80b2b710e65557ecf1a0" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix+_zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgbmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-__zgbmatrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a584ebcb4e6076094d96fc35869808004">to_zgematrix</a>() );
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(0l,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>+matB.<a class="code" href="class__zgbmatrix.html#a0b32db6f9ae374d5d390e24686433a77" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j) +=matB(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j);
    }
  }
  
  matB.<a class="code" href="class__zgbmatrix.html#a30eb8221fd3a4046e3c3eb6ba9902bc8">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a168e9e1111461d7c47b620a07b76d703"></a><!-- doxytag: member="zgsmatrix::operator+" ref="a168e9e1111461d7c47b620a07b76d703" args="(const zgsmatrix &amp;, const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix+zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00086">86</a> of file <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> || matA.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</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 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(matA);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i, it-&gt;j) +=it-&gt;v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a69ffca3464e57cd119280b2621de6d80"></a><!-- doxytag: member="zgsmatrix::operator+" ref="a69ffca3464e57cd119280b2621de6d80" args="(const zgsmatrix &amp;, const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix+_zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00087">87</a> of file <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> || matA.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</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 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(matB);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1f4d4b666a0e04cb125a16864a089340"></a><!-- doxytag: member="zgsmatrix::operator+" ref="a1f4d4b666a0e04cb125a16864a089340" args="(const zgsmatrix &amp;, const zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="a78f764a4662708ae3df8c68142a1e02a"></a><!-- doxytag: member="zgsmatrix::operator+" ref="a78f764a4662708ae3df8c68142a1e02a" args="(const zgsmatrix &amp;, const _zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="a79b0052d730c398fdd3874da450ab1f3"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="a79b0052d730c398fdd3874da450ab1f3" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix-zgematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgematrix_8hpp_source.html#l00023">23</a> of file <a class="el" href="zgsmatrix-zgematrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=matB.<a class="code" href="classzgematrix.html#a433dab4cf9fba73d9bc96ec6d626654e" title="matrix row size">m</a> || matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</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(-matB);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a938418d11b4b6cc19b06abc2efcc7ba9"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="a938418d11b4b6cc19b06abc2efcc7ba9" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix-_zgematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgematrix_8hpp_source.html#l00022">22</a> of file <a class="el" href="zgsmatrix-__zgematrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a> || matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&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;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="comment"></span>
<span class="comment">  //// change sign ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;matB.<a class="code" href="class__zgematrix.html#a078ae1faad7aa3659a8f7d15cdfa27ec" title="matrix row size">m</a>*matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    matB.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>]=-matB.<a class="code" href="class__zgematrix.html#a5582bee2b868f89c22a455800cb96985" title="1D array to store matrix data">array</a>[<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>];
  }
  <span class="comment"></span>
<span class="comment">  //// add ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    matB(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  
  <span class="keywordflow">return</span> matB;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a77ed75e64051c44aa40d40da6cfa834e"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="a77ed75e64051c44aa40d40da6cfa834e" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix-zhematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zhematrix_8hpp_source.html#l00024">24</a> of file <a class="el" href="zgsmatrix-zhematrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a> || matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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><span class="comment"></span>
<span class="comment">  //// shallow copy to zgematrix ////</span>
<span class="comment"></span>  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat( (-matB).<a class="code" href="classzgsmatrix.html#a584ebcb4e6076094d96fc35869808004">to_zgematrix</a>() );
  <span class="comment"></span>
<span class="comment">  //// add ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aae98fbb98b24b4cb7d7db154232940f2"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="aae98fbb98b24b4cb7d7db154232940f2" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix-_zhematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zhematrix_8hpp_source.html#l00025">25</a> of file <a class="el" href="zgsmatrix-__zhematrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>!=matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a> || matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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( (-matB).<a class="code" href="classzgsmatrix.html#a584ebcb4e6076094d96fc35869808004">to_zgematrix</a>() );
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  
  matB.<a class="code" href="class__zhematrix.html#a2acc6b7bde22ce109468a72d8d40abcc">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac0e61650b2e7311016bc7ccafd6d7595"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="ac0e61650b2e7311016bc7ccafd6d7595" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix-zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgbmatrix_8hpp_source.html#l00027">27</a> of file <a class="el" href="zgsmatrix-zgbmatrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a584ebcb4e6076094d96fc35869808004">to_zgematrix</a>() );
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;matB.<a class="code" href="classzgbmatrix.html#a760031d62091c1ce2808a1b07c7f81bf" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(0l,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>+matB.<a class="code" href="classzgbmatrix.html#a2a36d59681d1b2f13120a4b4be9203e8" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j) -=matB(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0fbd2b269c04677b7fa90e0777b52ebc"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="a0fbd2b269c04677b7fa90e0777b52ebc" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix-_zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgbmatrix_8hpp_source.html#l00028">28</a> of file <a class="el" href="zgsmatrix-__zgbmatrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a584ebcb4e6076094d96fc35869808004">to_zgematrix</a>() );
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;matB.<a class="code" href="class__zgbmatrix.html#a2c7cdee481455ef265dc77dea7cd03cf" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(0l,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">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="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>+matB.<a class="code" href="class__zgbmatrix.html#a0b32db6f9ae374d5d390e24686433a77" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j) -=matB(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j);
    }
  }
  
  matB.<a class="code" href="class__zgbmatrix.html#a30eb8221fd3a4046e3c3eb6ba9902bc8">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="acfffa81736ebe981674f23d35b7f9da2"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="acfffa81736ebe981674f23d35b7f9da2" args="(const zgsmatrix &amp;, const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix-zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00106">106</a> of file <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> || matA.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</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 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(matA);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i, it-&gt;j) -=it-&gt;v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6de2e4b77ec890317e453f7c057f5e37"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="a6de2e4b77ec890317e453f7c057f5e37" args="(const zgsmatrix &amp;, const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix-_zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00107">107</a> of file <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>!=matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a> || matA.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</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 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(matB);
  newmat.chsign();
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1fcfc2bafb2e287484ea915e63fae123"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="a1fcfc2bafb2e287484ea915e63fae123" args="(const zgsmatrix &amp;, const zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="a5c6f81cb6ec19b11b47f1ac4a45d0488"></a><!-- doxytag: member="zgsmatrix::operator&#45;" ref="a5c6f81cb6ec19b11b47f1ac4a45d0488" args="(const zgsmatrix &amp;, const _zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="afa5a3f56b2ccdad29636d1d363cc43a9"></a><!-- doxytag: member="zgsmatrix::operator*" ref="afa5a3f56b2ccdad29636d1d363cc43a9" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*zcovector operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zcovector_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-zcovector_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>);
  newvec.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newvec(it-&gt;i) += it-&gt;v*vec(it-&gt;j);
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newvec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa36a500064fddc074fa90c20961b53ae"></a><!-- doxytag: member="zgsmatrix::operator*" ref="aa36a500064fddc074fa90c20961b53ae" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*_zcovector operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zcovector_8hpp_source.html#l00003">3</a> of file <a class="el" href="zgsmatrix-__zcovector_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>);
  newvec.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    newvec(it-&gt;i) += it-&gt;v*vec(it-&gt;j);
  }
  
  vec.<a class="code" href="class__zcovector.html#a7b0dbef72aa40ca8ccd7aa11ea6bc88a">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newvec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a43d7dc6eb6ab11497cf5752d16e6d270"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a43d7dc6eb6ab11497cf5752d16e6d270" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*zgematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgematrix_8hpp_source.html#l00043">43</a> of file <a class="el" href="zgsmatrix-zgematrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>, matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matB.<a class="code" href="classzgematrix.html#aa2cfc802c95c61389455c6a8ff266d9a" title="matrix column size">n</a>; j++){
      newmat(it-&gt;i,j) += it-&gt;v*matB(it-&gt;j,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a748e85e8a38f29f29d4d7930ece5edc6"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a748e85e8a38f29f29d4d7930ece5edc6" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*_zgematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgematrix_8hpp_source.html#l00048">48</a> of file <a class="el" href="zgsmatrix-__zgematrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&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;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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>, matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matB.<a class="code" href="class__zgematrix.html#ad69dfb0c64f2f0ea5f9928ce33a2b1e0" title="matrix column size">n</a>; j++){
      newmat(it-&gt;i,j) += it-&gt;v *matB(it-&gt;j,j);
    }
  }
  
  matB.<a class="code" href="class__zgematrix.html#a447e4807955f2b359831116d90aad098">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac9f3f24caf5ad2cc8531520e49001edf"></a><!-- doxytag: member="zgsmatrix::operator*" ref="ac9f3f24caf5ad2cc8531520e49001edf" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*zhematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zhematrix_8hpp_source.html#l00048">48</a> of file <a class="el" href="zgsmatrix-zhematrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>, matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;matB.<a class="code" href="classzhematrix.html#a03e22e408f98102f65c1b8b4acc4c082" title="matrix column size">n</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
      newmat(it-&gt;i,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>) += it-&gt;v*matB(it-&gt;j,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9e163e48b6d5632ed6f5e2eb5ec78589"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a9e163e48b6d5632ed6f5e2eb5ec78589" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*_zhematrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zhematrix_8hpp_source.html#l00048">48</a> of file <a class="el" href="zgsmatrix-__zhematrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>, matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>=0; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>&lt;matB.<a class="code" href="class__zhematrix.html#a3cd8e436cf59991845c6b8e66d56c023" title="matrix column size">n</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
      newmat(it-&gt;i,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>) += it-&gt;v*matB(it-&gt;j,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>);
    }
  }
  
  matB.<a class="code" href="class__zhematrix.html#a2acc6b7bde22ce109468a72d8d40abcc">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5ea569f6be838eca5cab353f6e26c7c2"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a5ea569f6be838eca5cab353f6e26c7c2" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgbmatrix_8hpp_source.html#l00051">51</a> of file <a class="el" href="zgsmatrix-zgbmatrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" 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>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(0l,<span class="keywordtype">long</span>(it-&gt;j)-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>,<span class="keywordtype">long</span>(it-&gt;j)+matB.<a class="code" href="classzgbmatrix.html#a2a36d59681d1b2f13120a4b4be9203e8" title="upper band width">ku</a>+1); j++){
      newmat(it-&gt;i,j) += it-&gt;v*matB(it-&gt;j,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a67fe4a961fd7bd25b850dbb97452f4e3"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a67fe4a961fd7bd25b850dbb97452f4e3" args="(const zgsmatrix &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="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*_zgbmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgbmatrix_8hpp_source.html#l00053">53</a> of file <a class="el" href="zgsmatrix-__zgbmatrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" 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>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(0l,<span class="keywordtype">long</span>(it-&gt;j)-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>,<span class="keywordtype">long</span>(it-&gt;j)+matB.<a class="code" href="class__zgbmatrix.html#a0b32db6f9ae374d5d390e24686433a77" title="upper band width">ku</a>+1); j++){
      newmat(it-&gt;i,j) += it-&gt;v*matB(it-&gt;j,j);
    }
  }
  
  matB.<a class="code" href="class__zgbmatrix.html#a30eb8221fd3a4046e3c3eb6ba9902bc8">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a572e9c7a79cb4deebac8987480c05953"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a572e9c7a79cb4deebac8987480c05953" args="(const zgsmatrix &amp;, const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00126">126</a> of file <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html">zgsmatrix-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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(matA.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>, matB.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" title="matrix column size">n</a>);
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordtype">long</span> k(it-&gt;j);
    std::vector&lt;uint32_t&gt;::const_iterator p;
    <span class="keywordflow">for</span>(p=matB.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[k].begin(); p!=matB.<a class="code" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d" title="array of vector to store the entry information of component for each row">rows</a>[k].end(); p++){
      newmat(it-&gt;i,matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].j) +=it-&gt;v*matB.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>[*p].v;
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8ed3d605ca290ea8b49168cdb05f05b2"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a8ed3d605ca290ea8b49168cdb05f05b2" args="(const zgsmatrix &amp;, const _zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*_zgsmatrix operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00128">128</a> of file <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html">zgsmatrix-_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="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classzgsmatrix.html#a00a2cb15c41645107d565ba6efae0228" 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="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(matA.<a class="code" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe" title="matrix row size">m</a>, matB.<a class="code" href="class__zgsmatrix.html#ae2f1f4a6454a285b6b50feae90da335c" title="matrix column size">n</a>);
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::const_iterator it=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    <span class="keywordtype">long</span> k(it-&gt;j);
    std::vector&lt;uint32_t&gt;::iterator p;
    <span class="keywordflow">for</span>(p=matB.<a class="code" href="class__zgsmatrix.html#a5b554e651d84b2edcfa203d5c1140221" title="array of vector to store the entry information of component for each row">rows</a>[k].begin(); p!=matB.<a class="code" href="class__zgsmatrix.html#a5b554e651d84b2edcfa203d5c1140221" title="array of vector to store the entry information of component for each row">rows</a>[k].end(); p++){
      newmat(it-&gt;i,matB.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>[*p].j) += it-&gt;v*matB.<a class="code" href="class__zgsmatrix.html#a967bd821b1efa288e865366c7c09c42c" title="matrix data">data</a>[*p].v;
    }
  }
  
  matB.<a class="code" href="class__zgsmatrix.html#a967720c5efdb91e779a955fee836d01f">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a80e123e7981396950e00207054888e91"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a80e123e7981396950e00207054888e91" args="(const zgsmatrix &amp;, const zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="aaca91f09aeb2f43b666522bcf53037d5"></a><!-- doxytag: member="zgsmatrix::operator*" ref="aaca91f09aeb2f43b666522bcf53037d5" args="(const zgsmatrix &amp;, const _zhsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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="a64825d47fda9929346eac84381d6c702"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a64825d47fda9929346eac84381d6c702" args="(const zgsmatrix &amp;, const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*double operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-double_8hpp_source.html#l00027">27</a> of file <a class="el" href="zgsmatrix-double_8hpp_source.html">zgsmatrix-double.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    it-&gt;v *=d;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aef3ee3bfa748bf1bec6787e9d7b0832e"></a><!-- doxytag: member="zgsmatrix::operator*" ref="aef3ee3bfa748bf1bec6787e9d7b0832e" args="(const zgsmatrix &amp;, const comple &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix*comple operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-complex_8hpp_source.html#l00027">27</a> of file <a class="el" href="zgsmatrix-complex_8hpp_source.html">zgsmatrix-complex.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    it-&gt;v *=d;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a4031b88ccfb5006eae52a47ce7fe6ddc"></a><!-- doxytag: member="zgsmatrix::operator/" ref="a4031b88ccfb5006eae52a47ce7fe6ddc" args="(const zgsmatrix &amp;, const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator/ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix/double operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-double_8hpp_source.html#l00038">38</a> of file <a class="el" href="zgsmatrix-double_8hpp_source.html">zgsmatrix-double.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    it-&gt;v /=d;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae466b80d2697c9e0a210f16bdb31182c"></a><!-- doxytag: member="zgsmatrix::operator/" ref="ae466b80d2697c9e0a210f16bdb31182c" args="(const zgsmatrix &amp;, const comple &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</a> operator/ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classzgsmatrix.html">zgsmatrix</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>zgsmatrix/comple operator </p>

<p>Definition at line <a class="el" href="zgsmatrix-complex_8hpp_source.html#l00038">38</a> of file <a class="el" href="zgsmatrix-complex_8hpp_source.html">zgsmatrix-complex.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=mat.<a class="code" href="classzgsmatrix.html#ac538118e334585236087f35829234452" title="matrix data">data</a>.end(); it++){
    it-&gt;v /=d;
  }
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab7c257c4d2e5925d89629f9607e5b10d"></a><!-- doxytag: member="zgsmatrix::operator*" ref="ab7c257c4d2e5925d89629f9607e5b10d" args="(const double &amp;, const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</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="classzgsmatrix.html">zgsmatrix</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*zgsmatrix operator </p>

<p>Definition at line <a class="el" href="double-zgsmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="double-zgsmatrix_8hpp_source.html">double-zgsmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=newmat.data.end(); it++){
    it-&gt;v *= d;
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a96275743e339086550c1bd9e47f491c7"></a><!-- doxytag: member="zgsmatrix::operator*" ref="a96275743e339086550c1bd9e47f491c7" args="(const comple &amp;, const zgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgsmatrix.html">_zgsmatrix</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="classzgsmatrix.html">zgsmatrix</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>complex*zgsmatrix operator </p>

<p>Definition at line <a class="el" href="complex-zgsmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="complex-zgsmatrix_8hpp_source.html">complex-zgsmatrix.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgsmatrix.html" title="Complex Double-precision General Sparse Matrix Class.">zgsmatrix</a> newmat(mat);
  
  <span class="keywordflow">for</span>(std::vector&lt;zcomponent&gt;::iterator it=newmat.data.begin(); it!=newmat.data.end(); it++){
    it-&gt;v *= d;
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classzgsmatrix.html#a63eec9bc0211848fbc364dcfefa07f70">_</a>(newmat);
}
</pre></div>
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a98ae26acaf05df9ca358514b776faafe"></a><!-- doxytag: member="zgsmatrix::m" ref="a98ae26acaf05df9ca358514b776faafe" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classzgsmatrix.html#a98ae26acaf05df9ca358514b776faafe">zgsmatrix::m</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>matrix row size </p>

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

<p>Referenced by <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00279">_()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00198">checkup()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00244">col()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00086">del()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00149">isListed()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00169">number()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__zgematrix-zgsmatrix_8hpp_source.html#l00045">operator*()</a>, <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00055">operator*=()</a>, <a class="el" href="__zgematrix-zgsmatrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00015">operator+=()</a>, <a class="el" href="__zgematrix-zgsmatrix_8hpp_source.html#l00024">operator-()</a>, <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00035">operator-=()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00188">operator&lt;&lt;()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00226">read()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00224">row()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00268">swap()</a>, <a class="el" href="zgsmatrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00210">write()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00014">zero()</a>, and <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00003">zgsmatrix()</a>.</p>

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

<p>matrix column size </p>

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

<p>Referenced by <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00279">_()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00198">checkup()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00244">col()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00086">del()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00149">isListed()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00169">number()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__zgematrix-zgsmatrix_8hpp_source.html#l00045">operator*()</a>, <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00055">operator*=()</a>, <a class="el" href="__zgematrix-zgsmatrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00015">operator+=()</a>, <a class="el" href="__zgematrix-zgsmatrix_8hpp_source.html#l00024">operator-()</a>, <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00035">operator-=()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00188">operator&lt;&lt;()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00226">read()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00224">row()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00268">swap()</a>, <a class="el" href="zgsmatrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00210">write()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00014">zero()</a>, and <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00003">zgsmatrix()</a>.</p>

</div>
</div>
<a class="anchor" id="ac538118e334585236087f35829234452"></a><!-- doxytag: member="zgsmatrix::data" ref="ac538118e334585236087f35829234452" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classzcomponent.html">zcomponent</a>&gt; <a class="el" href="classzgsmatrix.html#ac538118e334585236087f35829234452">zgsmatrix::data</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>matrix data </p>

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

<p>Referenced by <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00279">_()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00198">checkup()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00024">chsign()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00244">col()</a>, <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00021">conj()</a>, <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00034">conjt()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00069">damax()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00086">del()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00189">diet()</a>, <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00053">idamax()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00149">isListed()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00169">number()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__zgematrix-zgsmatrix_8hpp_source.html#l00045">operator*()</a>, <a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html#l00055">operator*=()</a>, <a class="el" href="__zgematrix-zgsmatrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00017">operator+=()</a>, <a class="el" href="__zgematrix-zgsmatrix_8hpp_source.html#l00024">operator-()</a>, <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00036">operator-=()</a>, <a class="el" href="zgsmatrix-complex_8hpp_source.html#l00038">operator/()</a>, <a class="el" href="zgsmatrix-complex_8hpp_source.html#l00013">operator/=()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00188">operator&lt;&lt;()</a>, <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00003">operator=()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00224">row()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00268">swap()</a>, <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="zgsmatrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00210">write()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00014">zero()</a>, <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00003">zgsmatrix()</a>, and <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00090">~zgsmatrix()</a>.</p>

</div>
</div>
<a class="anchor" id="a2e04d29f8158ca2d45347866584e994d"></a><!-- doxytag: member="zgsmatrix::rows" ref="a2e04d29f8158ca2d45347866584e994d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; std::vector&lt;uint32_t&gt; &gt; <a class="el" href="classzgsmatrix.html#a2e04d29f8158ca2d45347866584e994d">zgsmatrix::rows</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>array of vector to store the entry information of component for each row </p>

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

<p>Referenced by <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00279">_()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00034">conjt()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00086">del()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00149">isListed()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00169">number()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__zgsmatrix-zgsmatrix_8hpp_source.html#l00047">operator*()</a>, <a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html#l00055">operator*=()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00188">operator&lt;&lt;()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00224">row()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00268">swap()</a>, <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00014">zero()</a>, <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00003">zgsmatrix()</a>, and <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00090">~zgsmatrix()</a>.</p>

</div>
</div>
<a class="anchor" id="a25ef7bc7a72f0a3dbb052c268b3e9b60"></a><!-- doxytag: member="zgsmatrix::cols" ref="a25ef7bc7a72f0a3dbb052c268b3e9b60" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; std::vector&lt;uint32_t&gt; &gt; <a class="el" href="classzgsmatrix.html#a25ef7bc7a72f0a3dbb052c268b3e9b60">zgsmatrix::cols</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>array of vector to store the entry information of component for each column </p>

<p>Definition at line <a class="el" href="zgsmatrix_8hpp_source.html#l00013">13</a> of file <a class="el" href="zgsmatrix_8hpp_source.html">zgsmatrix.hpp</a>.</p>

<p>Referenced by <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00279">_()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00244">col()</a>, <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00034">conjt()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00086">del()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00025">operator()()</a>, <a class="el" href="zgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00268">swap()</a>, <a class="el" href="zgsmatrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="zgsmatrix-misc_8hpp_source.html#l00014">zero()</a>, <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00003">zgsmatrix()</a>, and <a class="el" href="zgsmatrix-constructor_8hpp_source.html#l00090">~zgsmatrix()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="zgsmatrix_8hpp_source.html">zgsmatrix.hpp</a></li>
<li><a class="el" href="zgsmatrix-__zgsmatrix_8hpp_source.html">zgsmatrix-_zgsmatrix.hpp</a></li>
<li><a class="el" href="zgsmatrix-cast_8hpp_source.html">zgsmatrix-cast.hpp</a></li>
<li><a class="el" href="zgsmatrix-complex_8hpp_source.html">zgsmatrix-complex.hpp</a></li>
<li><a class="el" href="zgsmatrix-constructor_8hpp_source.html">zgsmatrix-constructor.hpp</a></li>
<li><a class="el" href="zgsmatrix-double_8hpp_source.html">zgsmatrix-double.hpp</a></li>
<li><a class="el" href="zgsmatrix-io_8hpp_source.html">zgsmatrix-io.hpp</a></li>
<li><a class="el" href="zgsmatrix-misc_8hpp_source.html">zgsmatrix-misc.hpp</a></li>
<li><a class="el" href="zgsmatrix-zgsmatrix_8hpp_source.html">zgsmatrix-zgsmatrix.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>
