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

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

<p><a href="classdgsmatrix-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="classdgsmatrix.html#a6ad742027acf4942ec320f5e574ba586">dgsmatrix</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#abbcdcef720d34007ce53e8c32b066b64">dgsmatrix</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ae6b372b2d9f4c196308a62834cb6d0ff">dgsmatrix</a> (const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a180024c8f094d391c085b19fcca0338d">dgsmatrix</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="classdgsmatrix.html#acdebdbfe56345b9093e8725fd4e5ae26">dgsmatrix</a> (const char *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a5c44996f07d90963436bff97c17217e2">~dgsmatrix</a> ()</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="classdgsmatrix.html#a4b732811fdd465702a56a078c09d7262">to_zgsmatrix</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ad4251f53be60d1fea88f3cfaf6f3e409">to_dgematrix</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#afbcf3f9cba588abbefae3ad8ea3983e1">operator()</a> (const long &amp;, const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a5df1f8d17cc9f4257dee681e2feb5d37">operator()</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ad07424170d4c42e6b23e872fce1964db">put</a> (const long &amp;, const long &amp;, const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ae333f0ff4958d51e7dee675305e74eb5">del</a> (const long, const long)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a820ebefc22bda1eb326d29309f03cfe0">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="classdgsmatrix.html#a68e9a4e8437f46f9e7edf53c5cf6c94f">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="classdgsmatrix.html#aa404222b3c2b75174ccece6ab9daf0d0">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="classdgsmatrix.html#a395b921f493d3c761c828371ac59ba50">clear</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#aa2c702113b841878123d2c34706f58b1">zero</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#aee1e63840d32e1a7f87aab8f66a99537">chsign</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a8c1d0ac836198d6a381b5d960b2f224c">copy</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#af734c1d2a3206a8e121f18ab68e6b124">shallow_copy</a> (const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a8ba5031cd0d37ec839276674af79c9f6">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="classdgsmatrix.html#ae5ee4d90a193ca9faa533a035e09326e">stretch</a> (const long &amp;, 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="classdgsmatrix.html#a9c43e47e7840f9a1b610d72e3ea34ce3">isListed</a> (const long &amp;, const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a988e6529d66568bc9e5d251a1e2e4fb1">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="classdgsmatrix.html#ac82870a830f6a57099c6b20a10b8b3f6">diet</a> (const double=DBL_MIN)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ada3b29d08d0c0a3e9fa3d5ac07b6815d">checkup</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__drovector.html">_drovector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a6d1e3e697d6b3a5945e4fead64ff2949">row</a> (const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dcovector.html">_dcovector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ac7ca23930c1a005f7edc00d97903c2a6">col</a> (const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a1c325fcce0716f69302f19b0fa369055">operator=</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ac42cee2e9f40ee42e6b00738e8af6cf9">operator=</a> (const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ab8eeaf1eadfc8e162b4cbeae86925c19">operator+=</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a4834300dfb5842c9ad66f40dc95ee3c7">operator+=</a> (const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ab08687829ef5f5a3aa62799ec9c9df7f">operator-=</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a3ae9d557bffc17ffdc822a422e6ff16c">operator-=</a> (const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ae296a8ac7f73e1a0f73fae0d1e354155">operator*=</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a9fed89ac502b52510ad678c564374ccb">operator*=</a> (const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a44e0cbf643c5652e8efe6468a6da5461">operator*=</a> (const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#aa73f82c0bf7b87fa70631e9c675a9220">operator/=</a> (const double &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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb">m</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix row size  <a href="#ae2d6c9f9657d44171a4bfd56276277cb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0">n</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix column size  <a href="#acefae40b42444c17eebbc23ccee73ae0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classdcomponent.html">dcomponent</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6">data</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix data  <a href="#a9c4f940eeedf7a7869cf03ae4a3558c6"></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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580">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="#ae14925bd737fa076dfbe651b417dd580"></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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f">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="#a421428b0a4821a7d113985f14d16709f"></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="classdgsmatrix.html#a80124179de23e7b868f9f9fc4317bce7">operator&lt;&lt;</a> (std::ostream &amp;, const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">swap</a> (<a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a> (<a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a8c17aa54644d33621a94b5aada42ad74">t</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a9e1233248276a013ef55d63dd3fca37f">idamax</a> (long &amp;, long &amp;, const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a84651a5f38c682c250934df4434139fb">damax</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a6f196752c8fbcb9eb699e2d240cfeb4d">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#adeae888d0fb44c7d499580cb56de2720">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#af35290fd6759f066fd164719e5595045">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#adadf4d6158d6d2a51e97e8df7f5a9528">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dgematrix.html">_dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a9c5254504f3cc425d5c9cfc7d1ea4b76">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdsymatrix.html">dsymatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a528be08c8f309fd1a7d233bc87dbff57">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dsymatrix.html">_dsymatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#acc865e4974bdf60b152c3fcbf5601d47">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdgbmatrix.html">dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ad97e02e41caad50d2343068719a84dbf">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dgbmatrix.html">_dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a4896359627c724c3a6f68dd66cadba62">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a084d4096ca1861eeaec44671ef9da654">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a4ed44a08d65fd30f7652407b9e0879f7">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdssmatrix.html">dssmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a2a1e6178aeaddb896dd52cf7ae1f3d42">operator+</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dssmatrix.html">_dssmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ad940c917d141f2a79a399f48c07e4d4d">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a613295a64fa52eba8c96cf3db29f4ebb">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dgematrix.html">_dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a80b97982e2839e1ee25299a8591ada7f">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdsymatrix.html">dsymatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a5153a84ae05679aef9c5e0029f16dc86">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dsymatrix.html">_dsymatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ac530488bba13cfaa68d0338e9b081980">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdgbmatrix.html">dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a08a3cc269321f0d2592c9bcb1c67ac00">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dgbmatrix.html">_dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a8702c6e45353fd028e9515068470c168">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a91edb65b695801efa505bec18f1247a2">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a6e14f2154dd5c01c30b29ba6921eb838">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdssmatrix.html">dssmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#aefb57c9928cdcb6332861a8b6250c678">operator-</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dssmatrix.html">_dssmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dcovector.html">_dcovector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#ae02b3951b5484e6fa3b0f1300b60a6b6">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdcovector.html">dcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dcovector.html">_dcovector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a26434ce127022458ab27581769fb226e">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dcovector.html">_dcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a61f761f89f91c5591255798948edb958">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a490da9030b4b3bc27e396fb9b5297f0b">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dgematrix.html">_dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a8fbf9d5483bb2198791e90ecc68d4a90">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdsymatrix.html">dsymatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a9453fd62293d491eefb46b1fbfc95cb3">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dsymatrix.html">_dsymatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a2410cec712db055b72d05f0a773ebfd7">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdgbmatrix.html">dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a19fec2ac69a56b3b1465570a5348df8c">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dgbmatrix.html">_dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a6d2f11b4a6acfd56b1c3c306822630f0">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a864562b0891f9e5deac34eace1f33d1b">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a07f0b9f8b2a5c3e7e3e8c714df301641">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="classdssmatrix.html">dssmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#af0016097bbce4b2d1143fd40e1ce0ee3">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const <a class="el" href="class__dssmatrix.html">_dssmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a7610f50a0b26628afb9815285b8d52b9">operator*</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a9c93b0fb04d76b2773022d93947be5f5">operator/</a> (const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;, const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgsmatrix.html#a6c32ce3b25ffbf2b6b23041ffb9773e1">operator*</a> (const double &amp;, const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Real Double-precision General Sparse Matrix Class. </p>

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

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> =0;
  <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> =0;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.clear();
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="abbcdcef720d34007ce53e8c32b066b64"></a><!-- doxytag: member="dgsmatrix::dgsmatrix" ref="abbcdcef720d34007ce53e8c32b066b64" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html#a6ad742027acf4942ec320f5e574ba586">dgsmatrix::dgsmatrix</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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>dgsmatrix copy constructor </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> =mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>;
  <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> =mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.clear();
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>.clear();
  <a class="code" href="classdgsmatrix.html#a8c1d0ac836198d6a381b5d960b2f224c">copy</a>(mat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae6b372b2d9f4c196308a62834cb6d0ff"></a><!-- doxytag: member="dgsmatrix::dgsmatrix" ref="ae6b372b2d9f4c196308a62834cb6d0ff" args="(const _dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html#a6ad742027acf4942ec320f5e574ba586">dgsmatrix::dgsmatrix</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</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>dgsmatrix constructor to cast <a class="el" href="class__dgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_dgsmatrix</a> </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00013">_dgsmatrix::cols</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00011">_dgsmatrix::data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00009">_dgsmatrix::m</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00010">_dgsmatrix::n</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="__dgsmatrix-misc_8hpp_source.html#l00003">_dgsmatrix::nullify()</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00012">rows</a>, and <a class="el" href="__dgsmatrix_8hpp_source.html#l00012">_dgsmatrix::rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> =mat.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a>;
  <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> =mat.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a>;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.clear();
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>.clear();
  
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.swap(mat.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>);
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.swap(mat.<a class="code" href="class__dgsmatrix.html#abd696a694a45f2b696dd803419501d25" title="array of vector to store the entry information of component for each row">rows</a>);
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>.swap(mat.<a class="code" href="class__dgsmatrix.html#a93cc648dd17686ae223bf6d38efb6738" title="array of vector to store the entry information of component for each column">cols</a>);
  
  mat.<a class="code" href="class__dgsmatrix.html#a44055dc8365ec91cfab620401db16f5b">nullify</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a180024c8f094d391c085b19fcca0338d"></a><!-- doxytag: member="dgsmatrix::dgsmatrix" ref="a180024c8f094d391c085b19fcca0338d" 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="classdgsmatrix.html#a6ad742027acf4942ec320f5e574ba586">dgsmatrix::dgsmatrix</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>dgsmatrix constructor with size specification </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> =_m;
  <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> =_n;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.resize(0);
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.reserve(_c);
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.resize(<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>);
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>.resize(<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="acdebdbfe56345b9093e8725fd4e5ae26"></a><!-- doxytag: member="dgsmatrix::dgsmatrix" ref="acdebdbfe56345b9093e8725fd4e5ae26" args="(const char *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html#a6ad742027acf4942ec320f5e574ba586">dgsmatrix::dgsmatrix</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>dgsmatrix constructor with filename </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00219">read()</a>, and <a class="el" href="dgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.clear();
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#aa404222b3c2b75174ccece6ab9daf0d0">read</a>(filename);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5c44996f07d90963436bff97c17217e2"></a><!-- doxytag: member="dgsmatrix::~dgsmatrix" ref="a5c44996f07d90963436bff97c17217e2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html#a5c44996f07d90963436bff97c17217e2">dgsmatrix::~dgsmatrix</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>dgsmatrix destructor </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, and <a class="el" href="dgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.clear();
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="a4b732811fdd465702a56a078c09d7262"></a><!-- doxytag: member="dgsmatrix::to_zgsmatrix" ref="a4b732811fdd465702a56a078c09d7262" args="() const " -->
<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="classdgsmatrix.html#a4b732811fdd465702a56a078c09d7262">dgsmatrix::to_zgsmatrix</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>cast to <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="dgsmatrix-cast_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-cast_8hpp_source.html">dgsmatrix-cast.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00326">_</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zgsmatrix-io_8hpp_source.html#l00054">zgsmatrix::put()</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(<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>,<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>,<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.size());
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    newmat.<a class="code" href="classzgsmatrix.html#aa7645a41760adbe7b7f279b018b7c85a">put</a>(it-&gt;i, it-&gt;j, comple(it-&gt;v,0.));
  }
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad4251f53be60d1fea88f3cfaf6f3e409"></a><!-- doxytag: member="dgsmatrix::to_dgematrix" ref="ad4251f53be60d1fea88f3cfaf6f3e409" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> <a class="el" href="classdgsmatrix.html#ad4251f53be60d1fea88f3cfaf6f3e409">dgsmatrix::to_dgematrix</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__dgematrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class">_dgematrix</a> </p>

<p>Definition at line <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00018">18</a> of file <a class="el" href="dgsmatrix-cast_8hpp_source.html">dgsmatrix-cast.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00326">_</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00015">dgematrix::zero()</a>.</p>

<p>Referenced by <a class="el" href="__dgbmatrix-dgsmatrix_8hpp_source.html#l00003">operator+()</a>, and <a class="el" href="dgbmatrix-dgsmatrix_8hpp_source.html#l00027">operator-()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>,<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>);
  newmat.zero();
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="afbcf3f9cba588abbefae3ad8ea3983e1"></a><!-- doxytag: member="dgsmatrix::operator()" ref="afbcf3f9cba588abbefae3ad8ea3983e1" args="(const long &amp;, const long &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double dgsmatrix::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="dgsmatrix-io_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-io_8hpp_source.html">dgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].j)==j){ <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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> 0.0;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5df1f8d17cc9f4257dee681e2feb5d37"></a><!-- doxytag: member="dgsmatrix::operator()" ref="a5df1f8d17cc9f4257dee681e2feb5d37" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double &amp; dgsmatrix::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="dgsmatrix-io_8hpp_source.html#l00025">25</a> of file <a class="el" href="dgsmatrix-io_8hpp_source.html">dgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].j)==j){ <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.size());
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[j].push_back(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.size());
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.push_back(<a class="code" href="classdcomponent.html" title="Component Class for Real Double-precision Sparse Matrix Classes.">dcomponent</a>(<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>,j,0.));
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.back().v;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad07424170d4c42e6b23e872fce1964db"></a><!-- doxytag: member="dgsmatrix::put" ref="ad07424170d4c42e6b23e872fce1964db" args="(const long &amp;, const long &amp;, const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; <a class="el" href="classdgsmatrix.html#ad07424170d4c42e6b23e872fce1964db">dgsmatrix::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 double &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 with volume cheack without isListed check </p>

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

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

<p>Referenced by <a class="el" href="dgsmatrix-io_8hpp_source.html#l00219">read()</a>, <a class="el" href="__dssmatrix-cast_8hpp_source.html#l00051">_dssmatrix::to_dgsmatrix()</a>, and <a class="el" href="dssmatrix-cast_8hpp_source.html#l00046">dssmatrix::to_dgsmatrix()</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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">if</span>( <span class="keywordtype">long</span>(it-&gt;i)==<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> &amp;&amp; long(it-&gt;j)==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; v &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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.size());
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[j].push_back(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.size());
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.push_back(<a class="code" href="classdcomponent.html" title="Component Class for Real Double-precision Sparse Matrix Classes.">dcomponent</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="ae333f0ff4958d51e7dee675305e74eb5"></a><!-- doxytag: member="dgsmatrix::del" ref="ae333f0ff4958d51e7dee675305e74eb5" args="(const long, const long)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; <a class="el" href="classdgsmatrix.html#ae333f0ff4958d51e7dee675305e74eb5">dgsmatrix::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="dgsmatrix-io_8hpp_source.html#l00087">87</a> of file <a class="el" href="dgsmatrix-io_8hpp_source.html">dgsmatrix-io.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00236">diet()</a>, and <a class="el" href="dgsmatrix-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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[j].begin(); q!=<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>[I].begin(); q!=<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[J].begin(); q!=<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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]@dgsmatrix::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="a820ebefc22bda1eb326d29309f03cfe0"></a><!-- doxytag: member="dgsmatrix::del" ref="a820ebefc22bda1eb326d29309f03cfe0" args="(const long)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; <a class="el" href="classdgsmatrix.html#ae333f0ff4958d51e7dee675305e74eb5">dgsmatrix::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="dgsmatrix-io_8hpp_source.html#l00136">136</a> of file <a class="el" href="dgsmatrix-io_8hpp_source.html">dgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, and <a class="el" href="dgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">if</span>( c==<span class="keywordtype">long</span>(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[c].<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>), j(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[c].j);
    <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::iterator q=<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[j].begin(); q!=<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[c].<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>), j(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[c].j), I(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.back().i), J(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.back().j);
    <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[j].begin(); q!=<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>[I].begin(); q!=<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[J].begin(); q!=<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="a68e9a4e8437f46f9e7edf53c5cf6c94f"></a><!-- doxytag: member="dgsmatrix::write" ref="a68e9a4e8437f46f9e7edf53c5cf6c94f" args="(const char *) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgsmatrix.html#a68e9a4e8437f46f9e7edf53c5cf6c94f">dgsmatrix::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="dgsmatrix-io_8hpp_source.html#l00202">202</a> of file <a class="el" href="dgsmatrix-io_8hpp_source.html">dgsmatrix-io.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgsmatrix_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;#dgsmatrix&quot;</span> &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; std::endl;
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="aa404222b3c2b75174ccece6ab9daf0d0"></a><!-- doxytag: member="dgsmatrix::read" ref="aa404222b3c2b75174ccece6ab9daf0d0" args="(const char *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgsmatrix.html#aa404222b3c2b75174ccece6ab9daf0d0">dgsmatrix::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="dgsmatrix-io_8hpp_source.html#l00219">219</a> of file <a class="el" href="dgsmatrix-io_8hpp_source.html">dgsmatrix-io.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00074">dgsmatrix()</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;dgsmatrix&quot;</span> &amp;&amp; <span class="keywordtype">id</span> != <span class="stringliteral">&quot;#dgsmatrix&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 dgsmatrix.&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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &gt;&gt; <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>;
  <a class="code" href="classdgsmatrix.html#a8ba5031cd0d37ec839276674af79c9f6">resize</a>(<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, n);
  
  <span class="keywordtype">double</span> 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="classdgsmatrix.html#ad07424170d4c42e6b23e872fce1964db">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="a395b921f493d3c761c828371ac59ba50"></a><!-- doxytag: member="dgsmatrix::clear" ref="a395b921f493d3c761c828371ac59ba50" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgsmatrix.html#a395b921f493d3c761c828371ac59ba50">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> =0;
  <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> =0;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.clear();
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="aa2c702113b841878123d2c34706f58b1"></a><!-- doxytag: member="dgsmatrix::zero" ref="aa2c702113b841878123d2c34706f58b1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; <a class="el" href="classdgsmatrix.html#aa2c702113b841878123d2c34706f58b1">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00014">14</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html#l00055">operator*=()</a>, <a class="el" href="__dssmatrix-cast_8hpp_source.html#l00051">_dssmatrix::to_dgsmatrix()</a>, and <a class="el" href="dssmatrix-cast_8hpp_source.html#l00046">dssmatrix::to_dgsmatrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){ <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>; j++){ <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="aee1e63840d32e1a7f87aab8f66a99537"></a><!-- doxytag: member="dgsmatrix::chsign" ref="aee1e63840d32e1a7f87aab8f66a99537" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgsmatrix.html#aee1e63840d32e1a7f87aab8f66a99537">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00024">24</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

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

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

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

<p>Referenced by <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00019">dgsmatrix()</a>, and <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html#l00003">operator=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> =mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>;
  <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> =mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a> =mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>;
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a> =mat.<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>;
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a> =mat.<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="af734c1d2a3206a8e121f18ab68e6b124"></a><!-- doxytag: member="dgsmatrix::shallow_copy" ref="af734c1d2a3206a8e121f18ab68e6b124" args="(const _dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgsmatrix.html#af734c1d2a3206a8e121f18ab68e6b124">dgsmatrix::shallow_copy</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</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="dgsmatrix-misc_8hpp_source.html#l00045">45</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00003">operator=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.clear();
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.clear();
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>.clear();
  
  <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> =mat.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a>;
  <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> =mat.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a>;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.swap(mat.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>);
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.swap(mat.<a class="code" href="class__dgsmatrix.html#abd696a694a45f2b696dd803419501d25" title="array of vector to store the entry information of component for each row">rows</a>);
  <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>.swap(mat.<a class="code" href="class__dgsmatrix.html#a93cc648dd17686ae223bf6d38efb6738" title="array of vector to store the entry information of component for each column">cols</a>);
  
  mat.<a class="code" href="class__dgsmatrix.html#a44055dc8365ec91cfab620401db16f5b">nullify</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8ba5031cd0d37ec839276674af79c9f6"></a><!-- doxytag: member="dgsmatrix::resize" ref="a8ba5031cd0d37ec839276674af79c9f6" 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="classdgsmatrix.html">dgsmatrix</a> &amp; <a class="el" href="classdgsmatrix.html#a8ba5031cd0d37ec839276674af79c9f6">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00062">62</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="dgsmatrix-io_8hpp_source.html#l00219">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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> =_m;
  <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> =_n;
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.resize(0);
  <a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.reserve(_c);
  <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>.resize(<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>.resize(<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="ae5ee4d90a193ca9faa533a035e09326e"></a><!-- doxytag: member="dgsmatrix::stretch" ref="ae5ee4d90a193ca9faa533a035e09326e" 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="classdgsmatrix.html#ae5ee4d90a193ca9faa533a035e09326e">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00093">93</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00087">del()</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>+dm&lt;0 || <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> +=dm;
  <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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;dcomponent&gt;::reverse_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.rbegin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> ){ <a class="code" href="classdgsmatrix.html#ae333f0ff4958d51e7dee675305e74eb5">del</a>(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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;dcomponent&gt;::reverse_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.rbegin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> ){ <a class="code" href="classdgsmatrix.html#ae333f0ff4958d51e7dee675305e74eb5">del</a>(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="a9c43e47e7840f9a1b610d72e3ea34ce3"></a><!-- doxytag: member="dgsmatrix::isListed" ref="a9c43e47e7840f9a1b610d72e3ea34ce3" args="(const long &amp;, const long &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classdgsmatrix.html#a9c43e47e7840f9a1b610d72e3ea34ce3">dgsmatrix::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> const<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="dgsmatrix-misc_8hpp_source.html#l00149">149</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="a988e6529d66568bc9e5d251a1e2e4fb1"></a><!-- doxytag: member="dgsmatrix::number" ref="a988e6529d66568bc9e5d251a1e2e4fb1" 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="classdgsmatrix.html#a988e6529d66568bc9e5d251a1e2e4fb1">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00170">170</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>&lt;=<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a> || <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="ac82870a830f6a57099c6b20a10b8b3f6"></a><!-- doxytag: member="dgsmatrix::diet" ref="ac82870a830f6a57099c6b20a10b8b3f6" args="(const double=DBL_MIN)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgsmatrix.html#ac82870a830f6a57099c6b20a10b8b3f6">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00236">236</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, and <a class="el" href="dgsmatrix-io_8hpp_source.html#l00087">del()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::reverse_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.rbegin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.rend(); it++){
    <span class="keywordflow">if</span>( fabs(it-&gt;v)&lt;eps ){ <a class="code" href="classdgsmatrix.html#ae333f0ff4958d51e7dee675305e74eb5">del</a>(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.rend()-it-1); }
  }
}
</pre></div>
</div>
</div>
<a class="anchor" id="ada3b29d08d0c0a3e9fa3d5ac07b6815d"></a><!-- doxytag: member="dgsmatrix::checkup" ref="ada3b29d08d0c0a3e9fa3d5ac07b6815d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgsmatrix.html#ada3b29d08d0c0a3e9fa3d5ac07b6815d">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00249">249</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgsmatrix_8hpp_source.html#l00012">rows</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;<span class="comment"></span>
<span class="comment">  //////// write ////////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    std::cerr &lt;&lt; <span class="stringliteral">&quot;array[&quot;</span> &lt;&lt; it-<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin() &lt;&lt; <span class="stringliteral">&quot;] = (&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;) = &quot;</span> &lt;&lt; it-&gt;v &lt;&lt; std::endl;
  }
  std::cerr &lt;&lt; std::endl;
  
  <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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    std::cerr &lt;&lt; <span class="stringliteral">&quot;rows[&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; std::flush;
    <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> k=0; k&lt;<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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>].size(); k++){
      std::cerr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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>][k] &lt;&lt; std::flush;
    }
    std::cerr &lt;&lt; std::endl;
  }
  std::cerr &lt;&lt; std::endl;
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>; j++){
    std::cerr &lt;&lt; <span class="stringliteral">&quot;cols[&quot;</span> &lt;&lt; j &lt;&lt; <span class="stringliteral">&quot;] =&quot;</span> &lt;&lt; std::flush;
    <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> k=0; k&lt;<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[j].size(); k++){
      std::cerr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[j][k] &lt;&lt; std::flush;
    }
    std::cerr &lt;&lt; std::endl;
  }
  <span class="comment"></span>
<span class="comment">  //////// Elements ////////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){<span class="comment"></span>
<span class="comment">    //// m bound ////</span>
<span class="comment"></span>    <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(it-&gt;i)&gt;=<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>){
      ERROR_REPORT;
      std::cerr &lt;&lt; <span class="stringliteral">&quot;The indx of the &quot;</span> &lt;&lt; it-<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin() &lt;&lt; <span class="stringliteral">&quot;th element is out of the matrix size.&quot;</span> &lt;&lt; std::endl
                &lt;&lt; <span class="stringliteral">&quot;Its i index was &quot;</span> &lt;&lt; it-&gt;i &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
      exit(1);
    }
    <span class="comment"></span>
<span class="comment">    //// n bound ////</span>
<span class="comment"></span>    <span class="keywordflow">if</span>(<span class="keywordtype">long</span>(it-&gt;j)&gt;=n){
      ERROR_REPORT;
      std::cerr &lt;&lt; <span class="stringliteral">&quot;The indx of the &quot;</span> &lt;&lt; it-<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin() &lt;&lt; <span class="stringliteral">&quot;th element is out of the matrix size.&quot;</span> &lt;&lt; std::endl
                &lt;&lt; <span class="stringliteral">&quot;Its j index was &quot;</span> &lt;&lt; it-&gt;j &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
      exit(1);
    }
    <span class="comment"></span>
<span class="comment">    //// double-listed ////</span>
<span class="comment"></span>    <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator IT=it+1; IT!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); IT++){
      <span class="keywordflow">if</span>( it-&gt;i==IT-&gt;i &amp;&amp; it-&gt;j==IT-&gt;j ){
        ERROR_REPORT;
        std::cerr &lt;&lt; <span class="stringliteral">&quot;The (&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;) component is double-listed at the &quot;</span> &lt;&lt; it-<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin() &lt;&lt; <span class="stringliteral">&quot;th and the&quot;</span> &lt;&lt; IT-<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin() &lt;&lt; <span class="stringliteral">&quot;the elements.&quot;</span>&lt;&lt; std::endl;
        exit(1);
      }
    }
  }
  <span class="comment"></span>
<span class="comment">  //////// ijc consistence ////////</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]@dgsmatrix::checkup(): This sparse matrix is fine.&quot;</span> &lt;&lt; std::endl;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6d1e3e697d6b3a5945e4fead64ff2949"></a><!-- doxytag: member="dgsmatrix::row" ref="a6d1e3e697d6b3a5945e4fead64ff2949" args="(const long &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__drovector.html">_drovector</a> <a class="el" href="classdgsmatrix.html#a6d1e3e697d6b3a5945e4fead64ff2949">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00194">194</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00326">_</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00012">rows</a>, and <a class="el" href="drovector-misc_8hpp_source.html#l00013">drovector::zero()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( _m&lt;0 || _m&gt;<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" 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="classdrovector.html" title="Real Double-precision Row Vector Class.">drovector</a> vec(<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>);
  vec.zero();
  <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::const_iterator p=<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>[_m].begin(); p!=<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>[_m].end(); p++){
    vec(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].j) =<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(vec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac7ca23930c1a005f7edc00d97903c2a6"></a><!-- doxytag: member="dgsmatrix::col" ref="ac7ca23930c1a005f7edc00d97903c2a6" args="(const long &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dcovector.html">_dcovector</a> <a class="el" href="classdgsmatrix.html#ac7ca23930c1a005f7edc00d97903c2a6">dgsmatrix::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="dgsmatrix-misc_8hpp_source.html#l00215">215</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00326">_</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00013">cols</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dcovector-misc_8hpp_source.html#l00013">dcovector::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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdcovector.html" title="Real Double-precision Column Vector Class.">dcovector</a> vec(<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>);
  vec.zero();
  <span class="keywordflow">for</span>(std::vector&lt;uint32_t&gt;::const_iterator p=<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[_n].begin(); p!=<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>[_n].end(); p++){
    vec(<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>) =<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].v;
  }
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(vec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1c325fcce0716f69302f19b0fa369055"></a><!-- doxytag: member="dgsmatrix::operator=" ref="a1c325fcce0716f69302f19b0fa369055" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; dgsmatrix::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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>dgsmatrix=dgsmatrix operator </p>

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

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

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

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

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgsmatrix_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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> || <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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;dcomponent&gt;::const_iterator it=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="a4834300dfb5842c9ad66f40dc95ee3c7"></a><!-- doxytag: member="dgsmatrix::operator+=" ref="a4834300dfb5842c9ad66f40dc95ee3c7" args="(const _dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; dgsmatrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</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>dgsmatrix+=<a class="el" href="class__dgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_dgsmatrix</a> operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00015">15</a> of file <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html">dgsmatrix-_dgsmatrix.hpp</a>.</p>

<p>References <a class="el" href="__dgsmatrix_8hpp_source.html#l00011">_dgsmatrix::data</a>, <a class="el" href="__dgsmatrix-misc_8hpp_source.html#l00014">_dgsmatrix::destroy()</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00009">_dgsmatrix::m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__dgsmatrix_8hpp_source.html#l00010">_dgsmatrix::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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=mat.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a> || <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=mat.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" 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;dcomponent&gt;::const_iterator it=mat.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.end(); it++){
    (*this)(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  mat.<a class="code" href="class__dgsmatrix.html#aa2851712fa4f99d8d608815ef274a362">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab08687829ef5f5a3aa62799ec9c9df7f"></a><!-- doxytag: member="dgsmatrix::operator&#45;=" ref="ab08687829ef5f5a3aa62799ec9c9df7f" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; dgsmatrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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>dgsmatrix-=dgsmatrix operator </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgsmatrix_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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> || <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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;dcomponent&gt;::const_iterator it=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="a3ae9d557bffc17ffdc822a422e6ff16c"></a><!-- doxytag: member="dgsmatrix::operator&#45;=" ref="a3ae9d557bffc17ffdc822a422e6ff16c" args="(const _dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; dgsmatrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</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>dgsmatrix-=<a class="el" href="class__dgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_dgsmatrix</a> operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00035">35</a> of file <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html">dgsmatrix-_dgsmatrix.hpp</a>.</p>

<p>References <a class="el" href="__dgsmatrix_8hpp_source.html#l00011">_dgsmatrix::data</a>, <a class="el" href="__dgsmatrix-misc_8hpp_source.html#l00014">_dgsmatrix::destroy()</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00009">_dgsmatrix::m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__dgsmatrix_8hpp_source.html#l00010">_dgsmatrix::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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=mat.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a> || <a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=mat.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" 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;dcomponent&gt;::const_iterator it=mat.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.end(); it++){
    (*this)(it-&gt;i,it-&gt;j) -= it-&gt;v;
  }
  mat.<a class="code" href="class__dgsmatrix.html#aa2851712fa4f99d8d608815ef274a362">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae296a8ac7f73e1a0f73fae0d1e354155"></a><!-- doxytag: member="dgsmatrix::operator*=" ref="ae296a8ac7f73e1a0f73fae0d1e354155" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; dgsmatrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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>dgsmatrix*=dgsmatrix operator </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00012">rows</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00315">swap</a>, and <a class="el" href="dgsmatrix-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>(<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat(<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>[k].begin(); p!=mat.<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].j) +=it-&gt;v*mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].v;
    }
  }
  
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">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="a9fed89ac502b52510ad678c564374ccb"></a><!-- doxytag: member="dgsmatrix::operator*=" ref="a9fed89ac502b52510ad678c564374ccb" args="(const _dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; dgsmatrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgsmatrix.html">_dgsmatrix</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>dgsmatrix*=<a class="el" href="class__dgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_dgsmatrix</a> operator </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00011">_dgsmatrix::data</a>, <a class="el" href="__dgsmatrix-misc_8hpp_source.html#l00014">_dgsmatrix::destroy()</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00009">_dgsmatrix::m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgsmatrix_8hpp_source.html#l00010">n</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00010">_dgsmatrix::n</a>, <a class="el" href="__dgsmatrix_8hpp_source.html#l00012">_dgsmatrix::rows</a>, and <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00315">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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=mat.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" 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="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat(<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, mat.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a>);
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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__dgsmatrix.html#abd696a694a45f2b696dd803419501d25" 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__dgsmatrix.html#abd696a694a45f2b696dd803419501d25" 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__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>[*p].j) += it-&gt;v*mat.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>[*p].v;
    }
  }
  
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">swap</a>(*<span class="keyword">this</span>,newmat);
  mat.<a class="code" href="class__dgsmatrix.html#aa2851712fa4f99d8d608815ef274a362">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a44e0cbf643c5652e8efe6468a6da5461"></a><!-- doxytag: member="dgsmatrix::operator*=" ref="a44e0cbf643c5652e8efe6468a6da5461" args="(const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; dgsmatrix::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>dgsmatrix*=double operator </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="aa73f82c0bf7b87fa70631e9c675a9220"></a><!-- doxytag: member="dgsmatrix::operator/=" ref="aa73f82c0bf7b87fa70631e9c675a9220" args="(const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp; dgsmatrix::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>dgsmatrix/=double operator </p>

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

<p>References <a class="el" href="dgsmatrix_8hpp_source.html#l00011">data</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::iterator it=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="a80124179de23e7b868f9f9fc4317bce7"></a><!-- doxytag: member="dgsmatrix::operator&lt;&lt;" ref="a80124179de23e7b868f9f9fc4317bce7" args="(std::ostream &amp;, const dgsmatrix &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="classdgsmatrix.html">dgsmatrix</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="dgsmatrix-io_8hpp_source.html#l00180">180</a> of file <a class="el" href="dgsmatrix-io_8hpp_source.html">dgsmatrix-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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" 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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*q].j)==j){ <span class="keywordflow">break</span>; }
      }
      <span class="keywordflow">if</span>(q!=mat.<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="a7347ec5d9c2c96a230e2e8de84c6ffad"></a><!-- doxytag: member="dgsmatrix::swap" ref="a7347ec5d9c2c96a230e2e8de84c6ffad" args="(dgsmatrix &amp;, dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">swap</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgsmatrix.html">dgsmatrix</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="dgsmatrix-misc_8hpp_source.html#l00315">315</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>Referenced by <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00055">operator*=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(A.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>,B.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>);
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(A.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>,B.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>);
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(A.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>,B.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>);
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(A.<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>,B.<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>);
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(A.<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>,B.<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" title="array of vector to store the entry information of component for each column">cols</a>);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a248c52d7e52c2b6c4cc1d1b1423b57c0"></a><!-- doxytag: member="dgsmatrix::_" ref="a248c52d7e52c2b6c4cc1d1b1423b57c0" args="(dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> <a class="el" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgsmatrix.html">dgsmatrix</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="dgsmatrix-misc_8hpp_source.html#l00326">326</a> of file <a class="el" href="dgsmatrix-misc_8hpp_source.html">dgsmatrix-misc.hpp</a>.</p>

<p>Referenced by <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00215">col()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00194">row()</a>, <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00018">to_dgematrix()</a>, and <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00003">to_zgsmatrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="class__dgsmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class">_dgsmatrix</a> newmat;
  <span class="comment"></span>
<span class="comment">  //////// shallow copy ////////</span>
<span class="comment"></span>  newmat.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a> =mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>;
  newmat.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a> =mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>;
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(newmat.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>,mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>);
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(newmat.<a class="code" href="class__dgsmatrix.html#abd696a694a45f2b696dd803419501d25" title="array of vector to store the entry information of component for each row">rows</a>,mat.<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>);
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(newmat.<a class="code" href="class__dgsmatrix.html#a93cc648dd17686ae223bf6d38efb6738" title="array of vector to store the entry information of component for each column">cols</a>,mat.<a class="code" href="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> =0;
  mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> =0;
  
  <span class="keywordflow">return</span> newmat;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8c17aa54644d33621a94b5aada42ad74"></a><!-- doxytag: member="dgsmatrix::t" ref="a8c17aa54644d33621a94b5aada42ad74" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> <a class="el" href="classdgsmatrix.html#a8c17aa54644d33621a94b5aada42ad74">t</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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 dgsmatrix </p>

<p>Definition at line <a class="el" href="dgsmatrix-calc_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-calc_8hpp_source.html">dgsmatrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat(mat);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::iterator it=newmat.data.begin(); it!=newmat.data.end(); it++){
    <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(it-&gt;i,it-&gt;j);
  }
  <a class="code" href="classdgsmatrix.html#a7347ec5d9c2c96a230e2e8de84c6ffad">std::swap</a>(newmat.rows,newmat.cols);
  
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9e1233248276a013ef55d63dd3fca37f"></a><!-- doxytag: member="dgsmatrix::idamax" ref="a9e1233248276a013ef55d63dd3fca37f" args="(long &amp;, long &amp;, const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgsmatrix.html#a9e1233248276a013ef55d63dd3fca37f">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="classdgsmatrix.html">dgsmatrix</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="dgsmatrix-calc_8hpp_source.html#l00021">21</a> of file <a class="el" href="dgsmatrix-calc_8hpp_source.html">dgsmatrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  std::vector&lt;dcomponent&gt;::const_iterator itx(mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin());
  <span class="keywordtype">double</span> vmax =0.;
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">if</span>( vmax &lt; fabs(it-&gt;v) ){
      vmax =fabs(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="a84651a5f38c682c250934df4434139fb"></a><!-- doxytag: member="dgsmatrix::damax" ref="a84651a5f38c682c250934df4434139fb" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classdgsmatrix.html#a84651a5f38c682c250934df4434139fb">damax</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="dgsmatrix-calc_8hpp_source.html#l00037">37</a> of file <a class="el" href="dgsmatrix-calc_8hpp_source.html">dgsmatrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  std::vector&lt;dcomponent&gt;::const_iterator itx(mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin());
  <span class="keywordtype">double</span> vmax =0.;
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">if</span>( vmax &lt; fabs(it-&gt;v) ){
      vmax =fabs(it-&gt;v);
      itx =it;
    }
  }
  <span class="keywordflow">return</span> itx-&gt;v;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6f196752c8fbcb9eb699e2d240cfeb4d"></a><!-- doxytag: member="dgsmatrix::operator+" ref="a6f196752c8fbcb9eb699e2d240cfeb4d" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classdgsmatrix.html">dgsmatrix</a>&amp; operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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>+dgsmatrix operator </p>

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

<p>Definition at line <a class="el" href="dgsmatrix-unary_8hpp_source.html#l00010">10</a> of file <a class="el" href="dgsmatrix-unary_8hpp_source.html">dgsmatrix-unary.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat(mat);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="af35290fd6759f066fd164719e5595045"></a><!-- doxytag: member="dgsmatrix::operator+" ref="af35290fd6759f066fd164719e5595045" args="(const dgsmatrix &amp;, const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgematrix.html">dgematrix</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>dgsmatrix+dgematrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-dgematrix_8hpp_source.html">dgsmatrix-dgematrix.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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> || matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(matB);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="adadf4d6158d6d2a51e97e8df7f5a9528"></a><!-- doxytag: member="dgsmatrix::operator+" ref="adadf4d6158d6d2a51e97e8df7f5a9528" args="(const dgsmatrix &amp;, const _dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dgematrix.html">_dgematrix</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>dgsmatrix+_dgematrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-__dgematrix_8hpp_source.html">dgsmatrix-_dgematrix.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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a> || matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" 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;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="a9c5254504f3cc425d5c9cfc7d1ea4b76"></a><!-- doxytag: member="dgsmatrix::operator+" ref="a9c5254504f3cc425d5c9cfc7d1ea4b76" args="(const dgsmatrix &amp;, const dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdsymatrix.html">dsymatrix</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>dgsmatrix+dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dsymatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-dsymatrix_8hpp_source.html">dgsmatrix-dsymatrix.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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( matB.<a class="code" href="classdsymatrix.html#a45ff312f6c694841edfd30809e09ba7b">to_dgematrix</a>() );
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a528be08c8f309fd1a7d233bc87dbff57"></a><!-- doxytag: member="dgsmatrix::operator+" ref="a528be08c8f309fd1a7d233bc87dbff57" args="(const dgsmatrix &amp;, const _dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dsymatrix.html">_dsymatrix</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>dgsmatrix+_dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dsymatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-__dsymatrix_8hpp_source.html">dgsmatrix-_dsymatrix.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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="class__dsymatrix.html#a0ae0bb2812e15cb1a0667fd6f6f6b44f" title="matrix row size">m</a> || matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dsymatrix.html#a0ae0bb2812e15cb1a0667fd6f6f6b44f" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( matB.<a class="code" href="class__dsymatrix.html#acdf4ff1ebc021a28f63351bd6f6a368c">to_dgematrix</a>() );
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  matB.<a class="code" href="class__dsymatrix.html#a09e5b4ca8579bef58e01e80c22e799b1">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="acc865e4974bdf60b152c3fcbf5601d47"></a><!-- doxytag: member="dgsmatrix::operator+" ref="acc865e4974bdf60b152c3fcbf5601d47" args="(const dgsmatrix &amp;, const dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgbmatrix.html">dgbmatrix</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>dgsmatrix+dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dgbmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-dgbmatrix_8hpp_source.html">dgsmatrix-dgbmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( matA.<a class="code" href="classdgsmatrix.html#ad4251f53be60d1fea88f3cfaf6f3e409">to_dgematrix</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="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" 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(<span class="keywordtype">long</span>(0),<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>-matB.<a class="code" href="classdgbmatrix.html#aeeb3e79431677905a4ece19c6616edd4" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" title="matrix column size">n</a>,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>+matB.<a class="code" href="classdgbmatrix.html#a0b4d519e95ddf780bf1151a42018d646" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad97e02e41caad50d2343068719a84dbf"></a><!-- doxytag: member="dgsmatrix::operator+" ref="ad97e02e41caad50d2343068719a84dbf" args="(const dgsmatrix &amp;, const _dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dgbmatrix.html">_dgbmatrix</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>dgsmatrix+_dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgbmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-__dgbmatrix_8hpp_source.html">dgsmatrix-_dgbmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( matA.<a class="code" href="classdgsmatrix.html#ad4251f53be60d1fea88f3cfaf6f3e409">to_dgematrix</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__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" 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(<span class="keywordtype">long</span>(0),<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>-matB.<a class="code" href="class__dgbmatrix.html#aeea4fdf76630ca1b51f93c5bed64662c" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" title="matrix column size">n</a>,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>+matB.<a class="code" href="class__dgbmatrix.html#a116dadc8ed5246ee0b4cd0a9fffc53ea" 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__dgbmatrix.html#a170fdd995797f5d394863105e658df9e">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a4896359627c724c3a6f68dd66cadba62"></a><!-- doxytag: member="dgsmatrix::operator+" ref="a4896359627c724c3a6f68dd66cadba62" args="(const dgsmatrix &amp;, const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgsmatrix.html">dgsmatrix</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>dgsmatrix+dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html#l00087">87</a> of file <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html">dgsmatrix-dgsmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat(matA);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matB.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matB.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a084d4096ca1861eeaec44671ef9da654"></a><!-- doxytag: member="dgsmatrix::operator+" ref="a084d4096ca1861eeaec44671ef9da654" args="(const dgsmatrix &amp;, const _dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dgsmatrix.html">_dgsmatrix</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>dgsmatrix+_dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00087">87</a> of file <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html">dgsmatrix-_dgsmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" 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="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat(matB);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a4ed44a08d65fd30f7652407b9e0879f7"></a><!-- doxytag: member="dgsmatrix::operator+" ref="a4ed44a08d65fd30f7652407b9e0879f7" args="(const dgsmatrix &amp;, const dssmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classdssmatrix.html">dssmatrix</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="a2a1e6178aeaddb896dd52cf7ae1f3d42"></a><!-- doxytag: member="dgsmatrix::operator+" ref="a2a1e6178aeaddb896dd52cf7ae1f3d42" args="(const dgsmatrix &amp;, const _dssmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dssmatrix.html">_dssmatrix</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="ad940c917d141f2a79a399f48c07e4d4d"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="ad940c917d141f2a79a399f48c07e4d4d" args="(const dgsmatrix &amp;, const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgematrix.html">dgematrix</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>dgsmatrix-dgematrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dgematrix_8hpp_source.html#l00023">23</a> of file <a class="el" href="dgsmatrix-dgematrix_8hpp_source.html">dgsmatrix-dgematrix.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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> || matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(-matB);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a613295a64fa52eba8c96cf3db29f4ebb"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="a613295a64fa52eba8c96cf3db29f4ebb" args="(const dgsmatrix &amp;, const _dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dgematrix.html">_dgematrix</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>dgsmatrix-_dgematrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgematrix_8hpp_source.html#l00022">22</a> of file <a class="el" href="dgsmatrix-__dgematrix_8hpp_source.html">dgsmatrix-_dgematrix.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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a> || matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" 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__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>*matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a>; <a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>++){
    matB.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" 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__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" 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;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="a80b97982e2839e1ee25299a8591ada7f"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="a80b97982e2839e1ee25299a8591ada7f" args="(const dgsmatrix &amp;, const dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdsymatrix.html">dsymatrix</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>dgsmatrix-dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dsymatrix_8hpp_source.html#l00024">24</a> of file <a class="el" href="dgsmatrix-dsymatrix_8hpp_source.html">dgsmatrix-dsymatrix.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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" 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 dgematrix ////</span>
<span class="comment"></span>  <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( (-matB).<a class="code" href="classdgsmatrix.html#ad4251f53be60d1fea88f3cfaf6f3e409">to_dgematrix</a>() );
  <span class="comment"></span>
<span class="comment">  //// add ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5153a84ae05679aef9c5e0029f16dc86"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="a5153a84ae05679aef9c5e0029f16dc86" args="(const dgsmatrix &amp;, const _dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dsymatrix.html">_dsymatrix</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>dgsmatrix-_dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dsymatrix_8hpp_source.html#l00024">24</a> of file <a class="el" href="dgsmatrix-__dsymatrix_8hpp_source.html">dgsmatrix-_dsymatrix.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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="class__dsymatrix.html#a0ae0bb2812e15cb1a0667fd6f6f6b44f" title="matrix row size">m</a> || matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dsymatrix.html#a0ae0bb2812e15cb1a0667fd6f6f6b44f" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( (-matB).<a class="code" href="classdgsmatrix.html#ad4251f53be60d1fea88f3cfaf6f3e409">to_dgematrix</a>() );
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  matB.<a class="code" href="class__dsymatrix.html#a09e5b4ca8579bef58e01e80c22e799b1">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac530488bba13cfaa68d0338e9b081980"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="ac530488bba13cfaa68d0338e9b081980" args="(const dgsmatrix &amp;, const dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgbmatrix.html">dgbmatrix</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>dgsmatrix-dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dgbmatrix_8hpp_source.html#l00027">27</a> of file <a class="el" href="dgsmatrix-dgbmatrix_8hpp_source.html">dgsmatrix-dgbmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( matA.<a class="code" href="classdgsmatrix.html#ad4251f53be60d1fea88f3cfaf6f3e409">to_dgematrix</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="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" 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(<span class="keywordtype">long</span>(0),<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>-matB.<a class="code" href="classdgbmatrix.html#aeeb3e79431677905a4ece19c6616edd4" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" title="matrix column size">n</a>,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>+matB.<a class="code" href="classdgbmatrix.html#a0b4d519e95ddf780bf1151a42018d646" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a08a3cc269321f0d2592c9bcb1c67ac00"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="a08a3cc269321f0d2592c9bcb1c67ac00" args="(const dgsmatrix &amp;, const _dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dgbmatrix.html">_dgbmatrix</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>dgsmatrix-_dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgbmatrix_8hpp_source.html#l00028">28</a> of file <a class="el" href="dgsmatrix-__dgbmatrix_8hpp_source.html">dgsmatrix-_dgbmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( matA.<a class="code" href="classdgsmatrix.html#ad4251f53be60d1fea88f3cfaf6f3e409">to_dgematrix</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__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" 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(<span class="keywordtype">long</span>(0),<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>-matB.<a class="code" href="class__dgbmatrix.html#aeea4fdf76630ca1b51f93c5bed64662c" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" title="matrix column size">n</a>,<a class="code" href="__dgbmatrix-calc_8hpp.html#af7c79b3740ba9c1d547f55ac94bc1258">i</a>+matB.<a class="code" href="class__dgbmatrix.html#a116dadc8ed5246ee0b4cd0a9fffc53ea" 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__dgbmatrix.html#a170fdd995797f5d394863105e658df9e">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8702c6e45353fd028e9515068470c168"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="a8702c6e45353fd028e9515068470c168" args="(const dgsmatrix &amp;, const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgsmatrix.html">dgsmatrix</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>dgsmatrix-dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html#l00107">107</a> of file <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html">dgsmatrix-dgsmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat(matA);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matB.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matB.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a91edb65b695801efa505bec18f1247a2"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="a91edb65b695801efa505bec18f1247a2" args="(const dgsmatrix &amp;, const _dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dgsmatrix.html">_dgsmatrix</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>dgsmatrix-_dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00107">107</a> of file <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html">dgsmatrix-_dgsmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a> || matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>!=matB.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" 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="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat(matB);
  newmat.chsign();
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6e14f2154dd5c01c30b29ba6921eb838"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="a6e14f2154dd5c01c30b29ba6921eb838" args="(const dgsmatrix &amp;, const dssmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classdssmatrix.html">dssmatrix</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="aefb57c9928cdcb6332861a8b6250c678"></a><!-- doxytag: member="dgsmatrix::operator&#45;" ref="aefb57c9928cdcb6332861a8b6250c678" args="(const dgsmatrix &amp;, const _dssmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dssmatrix.html">_dssmatrix</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="ae02b3951b5484e6fa3b0f1300b60a6b6"></a><!-- doxytag: member="dgsmatrix::operator*" ref="ae02b3951b5484e6fa3b0f1300b60a6b6" args="(const dgsmatrix &amp;, const dcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dcovector.html">_dcovector</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdcovector.html">dcovector</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>dgsmatrix*dcovector operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dcovector_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-dcovector_8hpp_source.html">dgsmatrix-dcovector.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=vec.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; vec.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" 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="classdcovector.html" title="Real Double-precision Column Vector Class.">dcovector</a> newvec(mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>);
  newvec.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newvec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a26434ce127022458ab27581769fb226e"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a26434ce127022458ab27581769fb226e" args="(const dgsmatrix &amp;, const _dcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dcovector.html">_dcovector</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dcovector.html">_dcovector</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>dgsmatrix*_dcovector operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dcovector_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgsmatrix-__dcovector_8hpp_source.html">dgsmatrix-_dcovector.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=vec.<a class="code" href="class__dcovector.html#a2db3a577da8bc07533cf2da09fddaa58" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; vec.<a class="code" href="class__dcovector.html#a2db3a577da8bc07533cf2da09fddaa58" 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="classdcovector.html" title="Real Double-precision Column Vector Class.">dcovector</a> newvec(mat.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>);
  newvec.zero();
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=mat.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    newvec(it-&gt;i) += it-&gt;v * vec(it-&gt;j);
  }
  
  vec.<a class="code" href="class__dcovector.html#a3e16f52298eac6c97958a9cbc6388bc4">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newvec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a61f761f89f91c5591255798948edb958"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a61f761f89f91c5591255798948edb958" args="(const dgsmatrix &amp;, const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgematrix.html">dgematrix</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>dgsmatrix*dgematrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dgematrix_8hpp_source.html#l00043">43</a> of file <a class="el" href="dgsmatrix-dgematrix_8hpp_source.html">dgsmatrix-dgematrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a490da9030b4b3bc27e396fb9b5297f0b"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a490da9030b4b3bc27e396fb9b5297f0b" args="(const dgsmatrix &amp;, const _dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dgematrix.html">_dgematrix</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>dgsmatrix*_dgematrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgematrix_8hpp_source.html#l00048">48</a> of file <a class="el" href="dgsmatrix-__dgematrix_8hpp_source.html">dgsmatrix-_dgematrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" 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__dgematrix.html#ac6d270d6c2d1d73afdfb2029eca920d9">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8fbf9d5483bb2198791e90ecc68d4a90"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a8fbf9d5483bb2198791e90ecc68d4a90" args="(const dgsmatrix &amp;, const dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdsymatrix.html">dsymatrix</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>dgsmatrix*dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dsymatrix_8hpp_source.html#l00048">48</a> of file <a class="el" href="dgsmatrix-dsymatrix_8hpp_source.html">dgsmatrix-dsymatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9453fd62293d491eefb46b1fbfc95cb3"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a9453fd62293d491eefb46b1fbfc95cb3" args="(const dgsmatrix &amp;, const _dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dsymatrix.html">_dsymatrix</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>dgsmatrix*_dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dsymatrix_8hpp_source.html#l00045">45</a> of file <a class="el" href="dgsmatrix-__dsymatrix_8hpp_source.html">dgsmatrix-_dsymatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dsymatrix.html#a0ae0bb2812e15cb1a0667fd6f6f6b44f" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dsymatrix.html#a0ae0bb2812e15cb1a0667fd6f6f6b44f" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" 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__dsymatrix.html#a09e5b4ca8579bef58e01e80c22e799b1">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a2410cec712db055b72d05f0a773ebfd7"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a2410cec712db055b72d05f0a773ebfd7" args="(const dgsmatrix &amp;, const dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgbmatrix.html">dgbmatrix</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>dgsmatrix*dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dgbmatrix_8hpp_source.html#l00051">51</a> of file <a class="el" href="dgsmatrix-dgbmatrix_8hpp_source.html">dgsmatrix-dgbmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, matB.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" title="matrix column size">n</a> );
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<span class="keywordtype">long</span>(it-&gt;j)-matB.<a class="code" href="classdgbmatrix.html#aeeb3e79431677905a4ece19c6616edd4" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" title="matrix column size">n</a>,<span class="keywordtype">long</span>(it-&gt;j)+matB.<a class="code" href="classdgbmatrix.html#a0b4d519e95ddf780bf1151a42018d646" 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="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a19fec2ac69a56b3b1465570a5348df8c"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a19fec2ac69a56b3b1465570a5348df8c" args="(const dgsmatrix &amp;, const _dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgematrix.html">_dgematrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dgbmatrix.html">_dgbmatrix</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>dgsmatrix*_dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgbmatrix_8hpp_source.html#l00053">53</a> of file <a class="el" href="dgsmatrix-__dgbmatrix_8hpp_source.html">dgsmatrix-_dgbmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat( matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, matB.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" title="matrix column size">n</a> );
  newmat.zero();
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=std::max(<span class="keywordtype">long</span>(0),<span class="keywordtype">long</span>(it-&gt;j)-matB.<a class="code" href="class__dgbmatrix.html#aeea4fdf76630ca1b51f93c5bed64662c" title="lower band width">kl</a>); j&lt;std::min(matB.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" title="matrix column size">n</a>,<span class="keywordtype">long</span>(it-&gt;j)+matB.<a class="code" href="class__dgbmatrix.html#a116dadc8ed5246ee0b4cd0a9fffc53ea" 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__dgbmatrix.html#a170fdd995797f5d394863105e658df9e">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6d2f11b4a6acfd56b1c3c306822630f0"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a6d2f11b4a6acfd56b1c3c306822630f0" args="(const dgsmatrix &amp;, const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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="classdgsmatrix.html">dgsmatrix</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>dgsmatrix*dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html#l00127">127</a> of file <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html">dgsmatrix-dgsmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat( matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, matB.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> );
  
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" title="array of vector to store the entry information of component for each row">rows</a>[k].begin(); p!=matB.<a class="code" href="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].j) +=it-&gt;v*matB.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>[*p].v;
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a864562b0891f9e5deac34eace1f33d1b"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a864562b0891f9e5deac34eace1f33d1b" args="(const dgsmatrix &amp;, const _dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dgsmatrix.html">_dgsmatrix</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>dgsmatrix*_dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00128">128</a> of file <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html">dgsmatrix-_dgsmatrix.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="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" 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="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matB.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" 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="classdgsmatrix.html" title="Real Double-precision General Sparse Matrix Class.">dgsmatrix</a> newmat(matA.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a>, matB.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" title="matrix data">data</a>.begin(); it!=matA.<a class="code" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6" 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__dgsmatrix.html#abd696a694a45f2b696dd803419501d25" 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__dgsmatrix.html#abd696a694a45f2b696dd803419501d25" 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__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>[*p].j) += it-&gt;v*matB.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>[*p].v;
    }
  }
  
  matB.<a class="code" href="class__dgsmatrix.html#aa2851712fa4f99d8d608815ef274a362">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgsmatrix.html#a248c52d7e52c2b6c4cc1d1b1423b57c0">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a07f0b9f8b2a5c3e7e3e8c714df301641"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a07f0b9f8b2a5c3e7e3e8c714df301641" args="(const dgsmatrix &amp;, const dssmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classdssmatrix.html">dssmatrix</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="af0016097bbce4b2d1143fd40e1ce0ee3"></a><!-- doxytag: member="dgsmatrix::operator*" ref="af0016097bbce4b2d1143fd40e1ce0ee3" args="(const dgsmatrix &amp;, const _dssmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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__dssmatrix.html">_dssmatrix</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="a7610f50a0b26628afb9815285b8d52b9"></a><!-- doxytag: member="dgsmatrix::operator*" ref="a7610f50a0b26628afb9815285b8d52b9" args="(const dgsmatrix &amp;, const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__dgsmatrix.html">_dgsmatrix</a> operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</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>dgsmatrix*double operator </p>

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

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

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

<p>matrix row size </p>

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

<p>Referenced by <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00326">_()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00249">checkup()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00215">col()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00087">del()</a>, <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00003">dgsmatrix()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00149">isListed()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00170">number()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__dgbmatrix-dgsmatrix_8hpp_source.html#l00051">operator*()</a>, <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00055">operator*=()</a>, <a class="el" href="__dgbmatrix-dgsmatrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00015">operator+=()</a>, <a class="el" href="__dgbmatrix-dgsmatrix_8hpp_source.html#l00027">operator-()</a>, <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00035">operator-=()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00180">operator&lt;&lt;()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00219">read()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00194">row()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00315">swap()</a>, <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00018">to_dgematrix()</a>, <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00003">to_zgsmatrix()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00202">write()</a>, and <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00014">zero()</a>.</p>

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

<p>matrix column size </p>

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

<p>Referenced by <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00326">_()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00249">checkup()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00215">col()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00087">del()</a>, <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00003">dgsmatrix()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00149">isListed()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00170">number()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__dgbmatrix-dgsmatrix_8hpp_source.html#l00051">operator*()</a>, <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00055">operator*=()</a>, <a class="el" href="__dgbmatrix-dgsmatrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00015">operator+=()</a>, <a class="el" href="__dgbmatrix-dgsmatrix_8hpp_source.html#l00027">operator-()</a>, <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00035">operator-=()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00180">operator&lt;&lt;()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00219">read()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00194">row()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00315">swap()</a>, <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00018">to_dgematrix()</a>, <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00003">to_zgsmatrix()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00202">write()</a>, and <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00014">zero()</a>.</p>

</div>
</div>
<a class="anchor" id="a9c4f940eeedf7a7869cf03ae4a3558c6"></a><!-- doxytag: member="dgsmatrix::data" ref="a9c4f940eeedf7a7869cf03ae4a3558c6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classdcomponent.html">dcomponent</a>&gt; <a class="el" href="classdgsmatrix.html#a9c4f940eeedf7a7869cf03ae4a3558c6">dgsmatrix::data</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>matrix data </p>

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

<p>Referenced by <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00326">_()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00249">checkup()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00024">chsign()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00215">col()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="dgsmatrix-calc_8hpp_source.html#l00037">damax()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00087">del()</a>, <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00003">dgsmatrix()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00236">diet()</a>, <a class="el" href="dgsmatrix-calc_8hpp_source.html#l00021">idamax()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00149">isListed()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00170">number()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__dgbmatrix-dgsmatrix_8hpp_source.html#l00051">operator*()</a>, <a class="el" href="dgsmatrix-__dgsmatrix_8hpp_source.html#l00055">operator*=()</a>, <a class="el" href="__dgematrix-dgsmatrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html#l00017">operator+=()</a>, <a class="el" href="__dgematrix-dgsmatrix_8hpp_source.html#l00023">operator-()</a>, <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html#l00036">operator-=()</a>, <a class="el" href="dgsmatrix-double_8hpp_source.html#l00038">operator/()</a>, <a class="el" href="dgsmatrix-double_8hpp_source.html#l00013">operator/=()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00180">operator&lt;&lt;()</a>, <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html#l00003">operator=()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00194">row()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00315">swap()</a>, <a class="el" href="dgsmatrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00018">to_dgematrix()</a>, <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00003">to_zgsmatrix()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00202">write()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00014">zero()</a>, and <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00090">~dgsmatrix()</a>.</p>

</div>
</div>
<a class="anchor" id="ae14925bd737fa076dfbe651b417dd580"></a><!-- doxytag: member="dgsmatrix::rows" ref="ae14925bd737fa076dfbe651b417dd580" 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="classdgsmatrix.html#ae14925bd737fa076dfbe651b417dd580">dgsmatrix::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="dgsmatrix_8hpp_source.html#l00012">12</a> of file <a class="el" href="dgsmatrix_8hpp_source.html">dgsmatrix.hpp</a>.</p>

<p>Referenced by <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00326">_()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00249">checkup()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00087">del()</a>, <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00003">dgsmatrix()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00149">isListed()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00170">number()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__dgsmatrix-dgsmatrix_8hpp_source.html#l00043">operator*()</a>, <a class="el" href="dgsmatrix-dgsmatrix_8hpp_source.html#l00055">operator*=()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00180">operator&lt;&lt;()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00194">row()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00315">swap()</a>, <a class="el" href="dgsmatrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00014">zero()</a>, and <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00090">~dgsmatrix()</a>.</p>

</div>
</div>
<a class="anchor" id="a421428b0a4821a7d113985f14d16709f"></a><!-- doxytag: member="dgsmatrix::cols" ref="a421428b0a4821a7d113985f14d16709f" 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="classdgsmatrix.html#a421428b0a4821a7d113985f14d16709f">dgsmatrix::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="dgsmatrix_8hpp_source.html#l00013">13</a> of file <a class="el" href="dgsmatrix_8hpp_source.html">dgsmatrix.hpp</a>.</p>

<p>Referenced by <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00326">_()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00249">checkup()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00215">col()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00033">copy()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00087">del()</a>, <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00003">dgsmatrix()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00025">operator()()</a>, <a class="el" href="dgsmatrix-io_8hpp_source.html#l00054">put()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00062">resize()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00045">shallow_copy()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00093">stretch()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00315">swap()</a>, <a class="el" href="dgsmatrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="dgsmatrix-misc_8hpp_source.html#l00014">zero()</a>, and <a class="el" href="dgsmatrix-constructor_8hpp_source.html#l00090">~dgsmatrix()</a>.</p>

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