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

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

<p><a href="classdgematrix-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="classdgematrix.html#a9f6be82a31f8e5dcf6679b0538ad5ed0">dgematrix</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a432052b6de33d4fa74415aa48c34c090">dgematrix</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a05f639248c883bcfc95594fa10974edc">dgematrix</a> (const <a class="el" href="class__dgematrix.html">_dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a63857fece57712ae689f4e93838a9e3a">dgematrix</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a0a308ab4eb0d258f1d4582eb2fef5a9a">dgematrix</a> (const char *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ae0ee96c9fbe8191add248bd62ec69f4c">~dgematrix</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class__zgematrix.html">_zgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#af96622e75eb3f47cc2922224c58164b3">to_zgematrix</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a> (const long &amp;, const long &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a7f9dc4cae64f3fbedb6bce299f9d0c98">operator()</a> (const long &amp;, const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a8ebd71873ec3de410b720deade0944c6">set</a> (const long &amp;, const long &amp;, const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#abd60f7173189be742262c85ae3e757df">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="classdgematrix.html#abc804bb585672c4cda4905626ed5b347">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="classdgematrix.html#aff82fa7ef089e6c565bfd4aaea4b9a27">clear</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ac958d77804c7586c58e706023d1d77a6">zero</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a4f4f05475673773a1ffb763428a7a473">identity</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a22d70e465a1c796fc2544f076f035eb4">chsign</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a724393dcdae73aa04cc0208998e1935d">copy</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#aef1b87bdfd42b08d7de68fc9b931417a">shallow_copy</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a1e4f028034bc8b777661785e3fea6386">resize</a> (const long &amp;, const long &amp;)</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="classdgematrix.html#a6e03773e046f0303129d0c99ac93ae21">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="classdgematrix.html#a96440f50e51f20a0da6330cf76ce0bd7">col</a> (const long &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ae25bb3ac4f085be249786264c3a0328e">dgesv</a> (<a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a0ff6861efc9d6223c61184cd0026d8e9">dgesv</a> (<a class="el" href="classdcovector.html">dcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a5007de00e1868c04a553b2cbf35ed075">dgels</a> (<a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ae91ffc25042f1f25977c048953a6ad41">dgels</a> (<a class="el" href="classdcovector.html">dcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ab10e284667ca1e913d96f82a9f4fbd18">dgels</a> (<a class="el" href="classdgematrix.html">dgematrix</a> &amp;, <a class="el" href="classdrovector.html">drovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a63301c542bc49999259dcef0a64433ca">dgels</a> (<a class="el" href="classdcovector.html">dcovector</a> &amp;, double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ab3abb914fecbe4b373b8bab0b4395230">dgelss</a> (<a class="el" href="classdcovector.html">dcovector</a> &amp;, <a class="el" href="classdcovector.html">dcovector</a> &amp;, long &amp;, const double)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a99cdffa03cc68b2c1fd8a19490c2a443">dgelss</a> (<a class="el" href="classdgematrix.html">dgematrix</a> &amp;, <a class="el" href="classdcovector.html">dcovector</a> &amp;, long &amp;, const double)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ab4c6d8212ee192595eca196890defb81">dgeev</a> (std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ac00b17d31d60895c2786d030b816a930">dgeev</a> (<a class="el" href="classzcovector.html">zcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a82152e07a32a87a430dccdb9f93f3ac0">dgeev</a> (std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; <a class="el" href="classdcovector.html">dcovector</a> &gt; &amp;, std::vector&lt; <a class="el" href="classdcovector.html">dcovector</a> &gt; &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#adbabdbe158f8c57c2ba95515f0590105">dgeev</a> (std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; <a class="el" href="classdrovector.html">drovector</a> &gt; &amp;, std::vector&lt; <a class="el" href="classdrovector.html">drovector</a> &gt; &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a3374d63da801c823055f52dc7f2f55d9">dggev</a> (<a class="el" href="classdgematrix.html">dgematrix</a> &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ae6828a6230344c9ce9463b8f229f684d">dggev</a> (<a class="el" href="classdgematrix.html">dgematrix</a> &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; <a class="el" href="classdcovector.html">dcovector</a> &gt; &amp;, std::vector&lt; <a class="el" href="classdcovector.html">dcovector</a> &gt; &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ac36887f04b66cde5595b5b0a8de4daf0">dggev</a> (<a class="el" href="classdgematrix.html">dgematrix</a> &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; <a class="el" href="classdrovector.html">drovector</a> &gt; &amp;, std::vector&lt; <a class="el" href="classdrovector.html">drovector</a> &gt; &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#af2da13a6844756c2203bf5143d3eeb28">dgesvd</a> (<a class="el" href="classdgbmatrix.html">dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#af12c9079ff9bbe229a4ebfa3458e43ed">dgesvd</a> (<a class="el" href="classdcovector.html">dcovector</a> &amp;, <a class="el" href="classdgematrix.html">dgematrix</a> &amp;, <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#af731210d05771c998fa9ef6ddaef1bdf">dgglse</a> (<a class="el" href="classdgematrix.html">dgematrix</a> &amp;, <a class="el" href="classdcovector.html">dcovector</a> &amp;, <a class="el" href="classdcovector.html">dcovector</a> &amp;, <a class="el" href="classdcovector.html">dcovector</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a9a9bad1d2e618af24cd251db80c47ee2">operator=</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a8d423cd2aef503330bb0d9eeb41c49fb">operator=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#aef1587b0515782b7b03e505d53c330f5">operator+=</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a20a728ecd19cc07a3bcc4811b60614ce">operator+=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ac7eb236fa55256df7f92b4add0f95aca">operator+=</a> (const <a class="el" href="classdsymatrix.html">dsymatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a863447c714147dd22b91a4a410e2c6dc">operator+=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a25fe4e166583b97298e34955e4e04a3a">operator+=</a> (const <a class="el" href="classdgbmatrix.html">dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ad6e18e4b2695b2cfb18976e151928b81">operator+=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#af81df831d22ee32deaf9e78a73edffd4">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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#aed055d23279772d64cd4ca0993e02cd4">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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a6f57e4af258d726561636015bf6424de">operator+=</a> (const <a class="el" href="classdssmatrix.html">dssmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a0867a7e95ad3d31ccf5af19c7dfad1d0">operator+=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a5160f5f7f7aecb2d829ca2d7d3b9aee4">operator-=</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a687dd74572df2b379b20e3183162f22d">operator-=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ad7490db7371afd9d97641d80941cf4e6">operator-=</a> (const <a class="el" href="classdsymatrix.html">dsymatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ab7ce407b004e75156c6febef4b1e3318">operator-=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#aa6526a22d5b2c5cf6eb5af438d3724c9">operator-=</a> (const <a class="el" href="classdgbmatrix.html">dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#aebb1e44f72c4f85486eb70702e80d95a">operator-=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a19c0d94fac0f5ea05ef097f196fc5462">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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a6e370bf1b0a291ec69cb0297b0c4decb">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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a73bc91775453fa562d6d5c96cb658f21">operator-=</a> (const <a class="el" href="classdssmatrix.html">dssmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a5ab7dc46bc0cff15677ca740c4b387b4">operator-=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a6d8b018d2baf7e9f74c71f08faeea25f">operator*=</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a27eb6113b08799cb8f98051547894b4c">operator*=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#afd3f01c5276b022a057b948c2480c662">operator*=</a> (const <a class="el" href="classdsymatrix.html">dsymatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a34eb3a3fc1ba3f113d8cff028fac1d23">operator*=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a85eebeaa926dc2d00a5bd86c25fe3c07">operator*=</a> (const <a class="el" href="classdgbmatrix.html">dgbmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#aa4a612dd19ee9538d18d3b4d2970f06a">operator*=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a029d8be2c0b10a4766b832bf8629c5c8">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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a06a999c4c27701b46c9b4be9faaf0439">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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a42c7200c98955e2d8a05efb927611edf">operator*=</a> (const <a class="el" href="classdssmatrix.html">dssmatrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a40e14c5284e6c1aa5230827b3be66d2a">operator*=</a> (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="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a47baf9702cd2fd75ce810167a2976397">operator*=</a> (const double &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#abfdf389426bcbcabd791891b3fa428dd">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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2">m</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix row size  <a href="#a3852aa1d0b876a74c1070e982cf388a2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a">n</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">matrix column size  <a href="#a60d26e3a499a235310e59a0aebbe0d0a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01">array</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">1D array to store matrix data  <a href="#a006ce8c2f9add380bcb2816fdb13aa01"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827">darray</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">array of pointers of column head addresses  <a href="#a66ff2629b52ff5d1a36ff70d4828d827"></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="classdgematrix.html#a4af03a0937a014f2fab03320dfc4c8e0">operator&lt;&lt;</a> (std::ostream &amp;, const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a> (<a class="el" href="classdgematrix.html">dgematrix</a> &amp;, <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="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a> (<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="classdgematrix.html#aa082426dfb93e41a134eafae585fb7e5">t</a> (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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a7364af3e9c7e63caf566bfaf255a0525">idamax</a> (long &amp;, long &amp;, const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a43627f90cccbd94ad63178d01d2035e2">damax</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a2ecf80379eaf97f4489414e8c073d830">operator+</a> (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="classdgematrix.html#a7383bc2bdfa0b645aa6e247eb3cf9b68">operator-</a> (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="classdgematrix.html#a807de7bf584453026db42b420aa675b5">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a23c418fd5bac1e4f85433fe2ee6c9921">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#ad3d3647164f45c25488b56aabc988854">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a17cc046a53ffe02f7eab25900db82447">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#aa8f83de50a49ee7f3c0113e8fadc5d8f">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a4e25ccf71cec51b81725795816700ca0">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#aad754bd77b0b4a7b0efe3ce7f0666b65">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ab989e72be09441e1971f7c69e46217ac">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a69c9603702052173e8a74e740d11be09">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ab0b96148951fe7d357db0c9c87509398">operator+</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#aad60c753e79b5e48d0b876ae3b832f54">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#adf3880fbeb1f71b6d7a5d0cfccf268ec">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a75b4d1ba8c43c959a4af3601fe8f9b3d">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#ab6316988a415eb48c4fa162d9234491e">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a3ae22355a3a04066f674565e77a687ba">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a03dc0b0a4d017889b7febd3967d7dbf4">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ac26282fd9d954b2d02c1959a18963ebe">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#ac2e91dcd305ff9f4010bb85261460092">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#aaf53a486619b69d5547b66dd3510348b">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a97d9ebd143534fcf44568061405fb592">operator-</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#aa75006c0df84a468de2daa7edd4046dc">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a842c592d9412f5d0667ccc7120bcf381">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a337f7271ad907dbe74030d5360403862">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a9b6f80bb9762c4f9c211f2067a3a43b7">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#aff1f1027f835aa003aa595d6a7433288">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a9dea69a96168f95591774e4bbcecbeab">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#afc27e131bd6f697e469e5cfd92b08605">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a01d320b56cddc71f5b88000c71b20683">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a072f5fb853acdd9026cfe01c6405edff">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a5b97afc135e164fdf4a4eb7510eac186">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a823a6e0ac96a91c4125dfe9176bf50bf">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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__dgematrix.html">_dgematrix</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdgematrix.html#a31f49416412e7cf5dac77b125528c7e7">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a96cef2e30ffdac1f0a8b216ed72c3ff1">operator*</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;, const double &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="classdgematrix.html#ad67d18dcc37878f9c2e7689ea4a812e0">operator/</a> (const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;, const double &amp;)</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="classdgematrix.html#adb2c3c722a6f3ebf83118885b41e6e57">operator%</a> (const <a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html#a5ccd265b22f9c4060eebbb920001015f">operator*</a> (const double &amp;, const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Real Double-precision General Dence Matrix Class. </p>

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

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;<span class="comment"></span>
<span class="comment">  //////// initialize ////////</span>
<span class="comment"></span>  <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> =0;
  <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> =0;
  <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a> =NULL;
  <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a> =NULL;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a432052b6de33d4fa74415aa48c34c090"></a><!-- doxytag: member="dgematrix::dgematrix" ref="a432052b6de33d4fa74415aa48c34c090" args="(const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html#a9f6be82a31f8e5dcf6679b0538ad5ed0">dgematrix::dgematrix</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</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>dgematrix copy constructor </p>

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;<span class="comment"></span>
<span class="comment">  //////// initialize ////////</span>
<span class="comment"></span>  <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> =mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>;
  <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> =mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>;
  <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a> =<span class="keyword">new</span> <span class="keywordtype">double</span>[<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>];
  <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a> =<span class="keyword">new</span> <span class="keywordtype">double</span>*[<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>];
  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =&amp;<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>*<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>]; }
  <span class="comment"></span>
<span class="comment">  //////// copy ////////</span>
<span class="comment"></span>  dcopy_(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*n, mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, 1, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, 1);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a05f639248c883bcfc95594fa10974edc"></a><!-- doxytag: member="dgematrix::dgematrix" ref="a05f639248c883bcfc95594fa10974edc" args="(const _dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html#a9f6be82a31f8e5dcf6679b0538ad5ed0">dgematrix::dgematrix</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgematrix.html">_dgematrix</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>dgematrix constructor to cast <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="dgematrix-constructor_8hpp_source.html#l00033">33</a> of file <a class="el" href="dgematrix-constructor_8hpp_source.html">dgematrix-constructor.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00011">_dgematrix::array</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00012">_dgematrix::darray</a>, <a class="el" href="dgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00009">_dgematrix::m</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00010">_dgematrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__dgematrix-misc_8hpp_source.html#l00003">_dgematrix::nullify()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> =mat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>;
  <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> =mat.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a>;
  <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a> =mat.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a>;
  <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a> =mat.<a class="code" href="class__dgematrix.html#a786195fb817b58bccf85b759cef8b7b0" title="array of pointers of column head addresses">darray</a>;
  
  mat.<a class="code" href="class__dgematrix.html#ad8252e45cb00c450bb9dcd743f394580">nullify</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a63857fece57712ae689f4e93838a9e3a"></a><!-- doxytag: member="dgematrix::dgematrix" ref="a63857fece57712ae689f4e93838a9e3a" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html#a9f6be82a31f8e5dcf6679b0538ad5ed0">dgematrix::dgematrix</a> </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>dgematrix constructor with size specification </p>

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( _m&lt;0 || _n&lt;0 ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Matrix sizes must be positive integers. &quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; _m &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; _n &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="comment"></span>
<span class="comment">  //////// initialize ////////</span>
<span class="comment"></span>  <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> =_m;
  <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> =_n;
  <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a> =<span class="keyword">new</span> <span class="keywordtype">double</span>[<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>];
  <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>  =<span class="keyword">new</span> <span class="keywordtype">double</span>*[<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>];
  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =&amp;<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>*<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>]; }
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0a308ab4eb0d258f1d4582eb2fef5a9a"></a><!-- doxytag: member="dgematrix::dgematrix" ref="a0a308ab4eb0d258f1d4582eb2fef5a9a" args="(const char *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html#a9f6be82a31f8e5dcf6679b0538ad5ed0">dgematrix::dgematrix</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>dgematrix constructor with filename </p>

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

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

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00012">darray</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>;
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>;
}
</pre></div>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="af96622e75eb3f47cc2922224c58164b3"></a><!-- doxytag: member="dgematrix::to_zgematrix" ref="af96622e75eb3f47cc2922224c58164b3" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__zgematrix.html">_zgematrix</a> <a class="el" href="classdgematrix.html#af96622e75eb3f47cc2922224c58164b3">dgematrix::to_zgematrix</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>cast to <a class="el" href="class__zgematrix.html" title="(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class">_zgematrix</a> </p>

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

<p>References <a class="el" href="dgematrix-misc_8hpp_source.html#l00157">_</a>, <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="zgematrix_8hpp_source.html#l00011">zgematrix::array</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classzgematrix.html" title="Complex Double-precision General Dence Matrix Class.">zgematrix</a> newmat(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    newmat.array[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =comple(<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>],0.0);
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a394c30f419374235f72a65b8dd137f04"></a><!-- doxytag: member="dgematrix::operator()" ref="a394c30f419374235f72a65b8dd137f04" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double &amp; dgematrix::operator() </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>operator() for non-const object </p>

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

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

<p>Referenced by <a class="el" href="dgematrix-misc_8hpp_source.html#l00023">identity()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00003">operator+=()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00026">operator-=()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00099">read()</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00079">write()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;0 || j&lt;0 || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;=<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a> || <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; j &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="comment">//return array[i+m*j];</span>
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>[j][<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>];
}
</pre></div>
</div>
</div>
<a class="anchor" id="a7f9dc4cae64f3fbedb6bce299f9d0c98"></a><!-- doxytag: member="dgematrix::operator()" ref="a7f9dc4cae64f3fbedb6bce299f9d0c98" args="(const long &amp;, const long &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double dgematrix::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="dgematrix-io_8hpp_source.html#l00020">20</a> of file <a class="el" href="dgematrix-io_8hpp_source.html">dgematrix-io.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;0 || j&lt;0 || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;=<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a> || <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; j &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="comment">//return array[i+m*j];</span>
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>[j][<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>];
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8ebd71873ec3de410b720deade0944c6"></a><!-- doxytag: member="dgematrix::set" ref="a8ebd71873ec3de410b720deade0944c6" 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="classdgematrix.html">dgematrix</a> &amp; <a class="el" href="classdgematrix.html#a8ebd71873ec3de410b720deade0944c6">dgematrix::set</a> </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const 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>set value for const object </p>

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;0 || j&lt;0 || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;=<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a> || <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; j &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="comment">//array[i+m*j] =v;</span>
  <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>[j][<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =v;
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="abd60f7173189be742262c85ae3e757df"></a><!-- doxytag: member="dgematrix::write" ref="abd60f7173189be742262c85ae3e757df" args="(const char *) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgematrix.html#abd60f7173189be742262c85ae3e757df">dgematrix::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="dgematrix-io_8hpp_source.html#l00079">79</a> of file <a class="el" href="dgematrix-io_8hpp_source.html">dgematrix-io.hpp</a>.</p>

<p>References <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  std::ofstream ofs(filename, std::ios::trunc);
  ofs.setf(std::cout.flags());
  ofs.precision(std::cout.precision());
  ofs.width(std::cout.width());
  ofs.fill(std::cout.fill());
  
  ofs &lt;&lt; <span class="stringliteral">&quot;#dgematrix&quot;</span> &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; std::endl;
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++ ){
      ofs &lt;&lt; <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;
    }
    ofs &lt;&lt; std::endl;
  }
  
  ofs.close();
}
</pre></div>
</div>
</div>
<a class="anchor" id="abc804bb585672c4cda4905626ed5b347"></a><!-- doxytag: member="dgematrix::read" ref="abc804bb585672c4cda4905626ed5b347" args="(const char *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgematrix.html#abc804bb585672c4cda4905626ed5b347">dgematrix::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="dgematrix-io_8hpp_source.html#l00099">99</a> of file <a class="el" href="dgematrix-io_8hpp_source.html">dgematrix-io.hpp</a>.</p>

<p>References <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00078">resize()</a>.</p>

<p>Referenced by <a class="el" href="dgematrix-constructor_8hpp_source.html#l00070">dgematrix()</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;dgematrix&quot;</span> &amp;&amp; <span class="keywordtype">id</span> != <span class="stringliteral">&quot;#dgematrix&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 dgematrix.&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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &gt;&gt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>;
  <a class="code" href="classdgematrix.html#a1e4f028034bc8b777661785e3fea6386">resize</a>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, n);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++ ){
      s &gt;&gt; <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  <span class="keywordflow">if</span>(s.eof()){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;There is something is wrong with the file \&quot;&quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot;\&quot;.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Most likely, there is a lack of data components, or a linefeed code or space code is missing at the end of the last line.&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
  
  s &gt;&gt; id;
  <span class="keywordflow">if</span>(!s.eof()){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;There is something is wrong with the file \&quot;&quot;</span> &lt;&lt; filename &lt;&lt; <span class="stringliteral">&quot;\&quot;.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Most likely, there are extra data components.&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }

  
  s.close();
}
</pre></div>
</div>
</div>
<a class="anchor" id="aff82fa7ef089e6c565bfd4aaea4b9a27"></a><!-- doxytag: member="dgematrix::clear" ref="aff82fa7ef089e6c565bfd4aaea4b9a27" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgematrix.html#aff82fa7ef089e6c565bfd4aaea4b9a27">dgematrix::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="dgematrix-misc_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="dgematrix-lapack_8hpp_source.html#l00062">dgels()</a>, and <a class="el" href="dgematrix-lapack_8hpp_source.html#l00300">dgelss()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> =0;
  <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> =0;
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>;
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>;
  <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a> =NULL;
  <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a> =NULL;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac958d77804c7586c58e706023d1d77a6"></a><!-- doxytag: member="dgematrix::zero" ref="ac958d77804c7586c58e706023d1d77a6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; <a class="el" href="classdgematrix.html#ac958d77804c7586c58e706023d1d77a6">dgematrix::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="dgematrix-misc_8hpp_source.html#l00015">15</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="__dgbmatrix-__dgematrix_8hpp_source.html#l00049">operator*()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="__dssmatrix-cast_8hpp_source.html#l00020">_dssmatrix::to_dgematrix()</a>, <a class="el" href="__dgsmatrix-cast_8hpp_source.html#l00021">_dgsmatrix::to_dgematrix()</a>, <a class="el" href="dssmatrix-cast_8hpp_source.html#l00019">dssmatrix::to_dgematrix()</a>, and <a class="el" href="dgsmatrix-cast_8hpp_source.html#l00018">dgsmatrix::to_dgematrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =0.0; }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a4f4f05475673773a1ffb763428a7a473"></a><!-- doxytag: member="dgematrix::identity" ref="a4f4f05475673773a1ffb763428a7a473" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; <a class="el" href="classdgematrix.html#a4f4f05475673773a1ffb763428a7a473">dgematrix::identity</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>change the matrix into an identity matrix </p>

<p>Definition at line <a class="el" href="dgematrix-misc_8hpp_source.html#l00023">23</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Only square matrix can be a identity matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;The matrix size was &quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <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>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =0.0; }
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) =1.0; }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a22d70e465a1c796fc2544f076f035eb4"></a><!-- doxytag: member="dgematrix::chsign" ref="a22d70e465a1c796fc2544f076f035eb4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgematrix.html#a22d70e465a1c796fc2544f076f035eb4">dgematrix::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="dgematrix-misc_8hpp_source.html#l00041">41</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =-<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
}
</pre></div>
</div>
</div>
<a class="anchor" id="a724393dcdae73aa04cc0208998e1935d"></a><!-- doxytag: member="dgematrix::copy" ref="a724393dcdae73aa04cc0208998e1935d" args="(const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgematrix.html#a724393dcdae73aa04cc0208998e1935d">dgematrix::copy</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</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="dgematrix-misc_8hpp_source.html#l00048">48</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="dgematrix-dgematrix_8hpp_source.html#l00003">operator=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> =mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>;
  <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> =mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>;
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>;
  <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a> =<span class="keyword">new</span> <span class="keywordtype">double</span>[mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>];
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>;
  <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a> =<span class="keyword">new</span> <span class="keywordtype">double</span>*[<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>];
  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =&amp;<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>*<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>]; }
  
  dcopy_(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, 1, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, 1);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aef1b87bdfd42b08d7de68fc9b931417a"></a><!-- doxytag: member="dgematrix::shallow_copy" ref="aef1b87bdfd42b08d7de68fc9b931417a" args="(const _dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgematrix.html#aef1b87bdfd42b08d7de68fc9b931417a">dgematrix::shallow_copy</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgematrix.html">_dgematrix</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="dgematrix-misc_8hpp_source.html#l00064">64</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00011">_dgematrix::array</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00012">_dgematrix::darray</a>, <a class="el" href="dgematrix_8hpp_source.html#l00012">darray</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00009">_dgematrix::m</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00010">_dgematrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__dgematrix-misc_8hpp_source.html#l00003">_dgematrix::nullify()</a>.</p>

<p>Referenced by <a class="el" href="dgematrix-__dgematrix_8hpp_source.html#l00003">operator=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> =mat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>;
  <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> =mat.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a>;
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>;
  <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a> =mat.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a>;
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>;
  <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a> =mat.<a class="code" href="class__dgematrix.html#a786195fb817b58bccf85b759cef8b7b0" title="array of pointers of column head addresses">darray</a>;
  
  mat.<a class="code" href="class__dgematrix.html#ad8252e45cb00c450bb9dcd743f394580">nullify</a>();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1e4f028034bc8b777661785e3fea6386"></a><!-- doxytag: member="dgematrix::resize" ref="a1e4f028034bc8b777661785e3fea6386" args="(const long &amp;, const long &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; <a class="el" href="classdgematrix.html#a1e4f028034bc8b777661785e3fea6386">dgematrix::resize</a> </td>
          <td>(</td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const long &amp;&#160;</td>
          <td class="paramname"><em>_n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>resize the matrix </p>

<p>Definition at line <a class="el" href="dgematrix-misc_8hpp_source.html#l00078">78</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="dgematrix-lapack_8hpp_source.html#l00743">dgesvd()</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00099">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 ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Matrix sizes must be positive integers.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; _m &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; _n &lt;&lt; <span class="stringliteral">&quot;).&quot;</span> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> =_m;
  <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> =_n;
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>;
  <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a> =<span class="keyword">new</span> <span class="keywordtype">double</span>[<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>];
  <span class="keyword">delete</span> [] <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>;
  <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a> =<span class="keyword">new</span> <span class="keywordtype">double</span>*[<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>];
  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =&amp;<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>*<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>]; }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6e03773e046f0303129d0c99ac93ae21"></a><!-- doxytag: member="dgematrix::row" ref="a6e03773e046f0303129d0c99ac93ae21" 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="classdgematrix.html#a6e03773e046f0303129d0c99ac93ae21">dgematrix::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="dgematrix-misc_8hpp_source.html#l00106">106</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgematrix-misc_8hpp_source.html#l00157">_</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( _m&lt;0 || _m&gt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" 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> v(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){ v(j)=(*this)(_m,j); }
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(v);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a96440f50e51f20a0da6330cf76ce0bd7"></a><!-- doxytag: member="dgematrix::col" ref="a96440f50e51f20a0da6330cf76ce0bd7" 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="classdgematrix.html#a96440f50e51f20a0da6330cf76ce0bd7">dgematrix::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="dgematrix-misc_8hpp_source.html#l00124">124</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

<p>References <a class="el" href="dgematrix-misc_8hpp_source.html#l00157">_</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>( _n&lt;0 || _n&gt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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> v(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ v(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)=(*this)(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,_n); }
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(v);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae25bb3ac4f085be249786264c3a0328e"></a><!-- doxytag: member="dgematrix::dgesv" ref="ae25bb3ac4f085be249786264c3a0328e" args="(dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#ae25bb3ac4f085be249786264c3a0328e">dgematrix::dgesv</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve A*X=Y using dgesv<br/>
 The argument is dgematrix Y. Y is overwritten and become the solution X. A is also overwritten and become P*l*U. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00006">6</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="__dgematrix-calc_8hpp_source.html#l00019">i()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 matrices cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordtype">long</span> NRHS(mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), LDA(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), *IPIV(<span class="keyword">new</span> <span class="keywordtype">long</span>[<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>]), LDB(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), INFO(1);
  dgesv_(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, NRHS, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, IPIV, mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDB, INFO);
  <span class="keyword">delete</span> [] IPIV;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0ff6861efc9d6223c61184cd0026d8e9"></a><!-- doxytag: member="dgematrix::dgesv" ref="a0ff6861efc9d6223c61184cd0026d8e9" args="(dcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#ae25bb3ac4f085be249786264c3a0328e">dgematrix::dgesv</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve A*x=y using dgesv<br/>
 The argument is dcovector y. y is overwritten and become the solution x. A is also overwritten and become P*l*U. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00033">33</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="dcovector_8hpp_source.html#l00009">dcovector::l</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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 cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&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>  
  <span class="keywordtype">long</span> NRHS(1), LDA(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), *IPIV(<span class="keyword">new</span> <span class="keywordtype">long</span>[<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>]), LDB(vec.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a>), INFO(1);
  dgesv_(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, NRHS, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, IPIV, vec.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, LDB, INFO);
  <span class="keyword">delete</span> [] IPIV;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5007de00e1868c04a553b2cbf35ed075"></a><!-- doxytag: member="dgematrix::dgels" ref="a5007de00e1868c04a553b2cbf35ed075" args="(dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#a5007de00e1868c04a553b2cbf35ed075">dgematrix::dgels</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve overdetermined or underdetermined A*X=Y using dgels<br/>
 </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00062">62</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 matrices cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> tmp(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) =mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }}
    mat.<a class="code" href="classdgematrix.html#aff82fa7ef089e6c565bfd4aaea4b9a27">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(mat,tmp);
  }
  
  <span class="keywordtype">char</span> TRANS(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> NRHS(mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), LDA(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDB(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>),
    LWORK(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)+std::max(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>),NRHS)), INFO(1);
  <span class="keywordtype">double</span> *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dgels_(TRANS, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, NRHS, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDB, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&gt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//overdetermined</span>
    <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> tmp(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;tmp.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;tmp.n; j++){
      tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) =mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }}
    mat.<a class="code" href="classdgematrix.html#aff82fa7ef089e6c565bfd4aaea4b9a27">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(mat,tmp);
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae91ffc25042f1f25977c048953a6ad41"></a><!-- doxytag: member="dgematrix::dgels" ref="ae91ffc25042f1f25977c048953a6ad41" args="(dcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#a5007de00e1868c04a553b2cbf35ed075">dgematrix::dgels</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve overdetermined or underdetermined A*x=y using dgels<br/>
 </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00108">108</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="dcovector-misc_8hpp_source.html#l00003">dcovector::clear()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dcovector_8hpp_source.html#l00009">dcovector::l</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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 cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&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>  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classdcovector.html" title="Real Double-precision Column Vector Class.">dcovector</a> tmp(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;vec.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)=vec(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>); }
    vec.<a class="code" href="classdcovector.html#aa0a1e4ad0a058308b5c839609f05e973">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(vec,tmp);
  }
  
  <span class="keywordtype">char</span> TRANS(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> NRHS(1), LDA(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDB(vec.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a>),
    LWORK(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)+std::max(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>),NRHS)), INFO(1);
  <span class="keywordtype">double</span> *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dgels_(TRANS, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, NRHS, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, vec.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, LDB, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&gt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//overdetermined</span>
    <a class="code" href="classdcovector.html" title="Real Double-precision Column Vector Class.">dcovector</a> tmp(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;tmp.l; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)=vec(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>); }
    vec.<a class="code" href="classdcovector.html#aa0a1e4ad0a058308b5c839609f05e973">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(vec,tmp);
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab10e284667ca1e913d96f82a9f4fbd18"></a><!-- doxytag: member="dgematrix::dgels" ref="ab10e284667ca1e913d96f82a9f4fbd18" args="(dgematrix &amp;, drovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#a5007de00e1868c04a553b2cbf35ed075">dgematrix::dgels</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdrovector.html">drovector</a> &amp;&#160;</td>
          <td class="paramname"><em>residual</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve overdetermined or underdetermined A*X=Y using dgels with the sum of residual squares output<br/>
 The residual is set as the columnwise sum of residual squares for overdetermined problems while it is always zero for underdetermined problems. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00154">154</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="drovector_8hpp_source.html#l00009">drovector::l</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="drovector-misc_8hpp_source.html#l00072">drovector::resize()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">swap</a>, and <a class="el" href="drovector-misc_8hpp_source.html#l00013">drovector::zero()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 matrices cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  residual.<a class="code" href="classdrovector.html#a3b2c5a9ed38d2e7d42cbafc635e45db2">resize</a>(mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); residual.<a class="code" href="classdrovector.html#a845494ed14746353f61c962b3a5b5793">zero</a>();
  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> tmp(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) =mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }}
    mat.<a class="code" href="classdgematrix.html#aff82fa7ef089e6c565bfd4aaea4b9a27">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(mat,tmp);
  }
  
  <span class="keywordtype">char</span> TRANS(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> NRHS(mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), LDA(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDB(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>),
    LWORK(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)+std::max(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>),NRHS)), INFO(1);
  <span class="keywordtype">double</span> *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dgels_(TRANS, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, NRHS, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDB, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&gt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//overdetermined</span>
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;residual.<a class="code" href="classdrovector.html#a08df95e527c85a13ed99c4a0fd2b303e" title="vector size">l</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>-<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      residual(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) += std::pow(mat(n+j,<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>), 2.0);
    }}
    
    <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> tmp(n,mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;tmp.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;tmp.n; j++){
      tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) =mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }}
    mat.<a class="code" href="classdgematrix.html#aff82fa7ef089e6c565bfd4aaea4b9a27">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(mat,tmp);
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a63301c542bc49999259dcef0a64433ca"></a><!-- doxytag: member="dgematrix::dgels" ref="a63301c542bc49999259dcef0a64433ca" args="(dcovector &amp;, double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#a5007de00e1868c04a553b2cbf35ed075">dgematrix::dgels</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>residual</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve overdetermined or underdetermined A*x=y using dgels with the sum of residual squares output<br/>
 The residual is set as the sum of residual squares for overdetermined problems while it is always zero for underdetermined problems. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00210">210</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="dcovector-misc_8hpp_source.html#l00003">dcovector::clear()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dcovector_8hpp_source.html#l00009">dcovector::l</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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 cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&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>  
  residual=0.0;
  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classdcovector.html" title="Real Double-precision Column Vector Class.">dcovector</a> tmp(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;vec.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)=vec(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>); }
    vec.<a class="code" href="classdcovector.html#aa0a1e4ad0a058308b5c839609f05e973">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(vec,tmp);
  }
  
  <span class="keywordtype">char</span> TRANS(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> NRHS(1), LDA(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDB(vec.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a>),
    LWORK(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)+std::max(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>),NRHS)), INFO(1);
  <span class="keywordtype">double</span> *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dgels_(TRANS, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, NRHS, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, vec.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, LDB, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&gt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//overdetermined</span>
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>-<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ residual+=std::pow(vec(n+<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>),2.0); }
    
    <a class="code" href="classdcovector.html" title="Real Double-precision Column Vector Class.">dcovector</a> tmp(n);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;tmp.l; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)=vec(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>); }
    vec.<a class="code" href="classdcovector.html#aa0a1e4ad0a058308b5c839609f05e973">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(vec,tmp);
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab3abb914fecbe4b373b8bab0b4395230"></a><!-- doxytag: member="dgematrix::dgelss" ref="ab3abb914fecbe4b373b8bab0b4395230" args="(dcovector &amp;, dcovector &amp;, long &amp;, const double)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#ab3abb914fecbe4b373b8bab0b4395230">dgematrix::dgelss</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>B</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long &amp;&#160;</td>
          <td class="paramname"><em>RANK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>RCOND</em> = <code>-1.</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate the least-squares-least-norm solution for overdetermined or underdetermined A*x=y using dgelss<br/>
 </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00261">261</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="dcovector-misc_8hpp_source.html#l00003">dcovector::clear()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dcovector_8hpp_source.html#l00009">dcovector::l</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="dcovector-misc_8hpp_source.html#l00072">dcovector::resize()</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=B.<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 cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; B.<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>  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classdcovector.html" title="Real Double-precision Column Vector Class.">dcovector</a> tmp(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;B.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)=B(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>); }
    B.<a class="code" href="classdcovector.html#aa0a1e4ad0a058308b5c839609f05e973">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(B,tmp);
  }
  
  S.<a class="code" href="classdcovector.html#a969d5aaa75cde3f7b1ddcfcdefddd7af">resize</a>(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>));
  
  <span class="keywordtype">long</span> NRHS(1), LDA(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDB(B.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a>),
    LWORK(3*std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)+std::max(std::max(2*std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>),std::max(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)), NRHS)), INFO(1);
  <span class="keywordtype">double</span> *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dgelss_(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, NRHS, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, B.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, LDB, S.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>,
          RCOND, RANK, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;

  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a99cdffa03cc68b2c1fd8a19490c2a443"></a><!-- doxytag: member="dgematrix::dgelss" ref="a99cdffa03cc68b2c1fd8a19490c2a443" args="(dgematrix &amp;, dcovector &amp;, long &amp;, const double)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#ab3abb914fecbe4b373b8bab0b4395230">dgematrix::dgelss</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>B</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long &amp;&#160;</td>
          <td class="paramname"><em>RANK</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>RCOND</em> = <code>-1.</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate the least-squares-least-norm solution for overdetermined or underdetermined A*x=y using dgelss<br/>
 </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00300">300</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="dcovector-misc_8hpp_source.html#l00072">dcovector::resize()</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;These matrix and vector cannot be solved.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) and (&quot;</span> &lt;&lt; B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; B.<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>  
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){ <span class="comment">//underdetermined</span>
    <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> tmp(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,B.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;B.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
        tmp(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)=B(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
      }
    }
    B.<a class="code" href="classdgematrix.html#aff82fa7ef089e6c565bfd4aaea4b9a27">clear</a>();
    <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(B,tmp);
  }
  
  S.<a class="code" href="classdcovector.html#a969d5aaa75cde3f7b1ddcfcdefddd7af">resize</a>(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>));
  
  <span class="keywordtype">long</span> NRHS(B.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), LDA(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDB(B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>),
    LWORK(3*std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)+std::max(std::max(2*std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>),std::max(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)), NRHS)), INFO(1);
  <span class="keywordtype">double</span> *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dgelss_(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, NRHS, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, B.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDB, S.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>,
          RCOND, RANK, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;

  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab4c6d8212ee192595eca196890defb81"></a><!-- doxytag: member="dgematrix::dgeev" ref="ab4c6d8212ee192595eca196890defb81" args="(std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#ab4c6d8212ee192595eca196890defb81">dgematrix::dgeev</a> </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wi</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate eigenvalues<br/>
 All of the arguments need not to be initialized. wr and wi are overwitten and become real and imaginary part of eigenvalues, respectively. This matrix is also overwritten. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00350">350</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

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

<p>Referenced by <a class="el" href="dgematrix-lapack_8hpp_source.html#l00382">dgeev()</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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix is not a square matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;This matrix is (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <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>  
  wr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); wi.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordtype">char</span> JOBVL(<span class="charliteral">&#39;n&#39;</span>), JOBVR(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> LDA(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), LDVL(1), LDVR(1), LWORK(3*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), INFO(1);
  <span class="keywordtype">double</span> *VL(NULL), *VR(NULL), *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dgeev_(JOBVL, JOBVR, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, &amp;wr[0], &amp;wi[0], 
         VL, LDVL, VR, LDVR, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK; <span class="keyword">delete</span> [] VL; <span class="keyword">delete</span> [] VL;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac00b17d31d60895c2786d030b816a930"></a><!-- doxytag: member="dgematrix::dgeev" ref="ac00b17d31d60895c2786d030b816a930" args="(zcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#ab4c6d8212ee192595eca196890defb81">dgematrix::dgeev</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classzcovector.html">zcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>w</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate eigenvalues<br/>
 All of the arguments need not to be initialized. w are overwitten and become eigenvalues, respectively. This matrix is also overwritten. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00382">382</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix-lapack_8hpp_source.html#l00350">dgeev()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="zcovector-misc_8hpp_source.html#l00069">zcovector::resize()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;<span class="comment"></span>
<span class="comment">  //// call dgeev ////</span>
<span class="comment"></span>  std::vector&lt;double&gt; wr, wi;
  <span class="keywordtype">long</span> INFO =<a class="code" href="classdgematrix.html#ab4c6d8212ee192595eca196890defb81">dgeev</a>(wr,wi);
  <span class="comment"></span>
<span class="comment">  //// assign ////</span>
<span class="comment"></span>  w.<a class="code" href="classzcovector.html#ae1cbcca07337389700b0837842094792">resize</a>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    w(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) =comple(wr[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>],wi[i]);
  }
  
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a82152e07a32a87a430dccdb9f93f3ac0"></a><!-- doxytag: member="dgematrix::dgeev" ref="a82152e07a32a87a430dccdb9f93f3ac0" args="(std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; dcovector &gt; &amp;, std::vector&lt; dcovector &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#ab4c6d8212ee192595eca196890defb81">dgematrix::dgeev</a> </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classdcovector.html">dcovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vrr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classdcovector.html">dcovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vri</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate right eigenvalues and right eigenvectors<br/>
 All of the arguments need not to be initialized. wr, wi, vrr, vri are overwitten and become real and imaginary part of right eigenvalues and right eigenvectors, respectively. This matrix is also overwritten. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00406">406</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, and <a class="el" href="__dgbmatrix-calc_8hpp_source.html#l00019">i()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix is not a square matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;This matrix is (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <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>  
  wr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); wi.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); vrr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); vri.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ vrr[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>].resize(n); vri[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>].resize(n); }
  <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> VR(n,n);
  <span class="keywordtype">char</span> JOBVL(<span class="charliteral">&#39;n&#39;</span>), JOBVR(<span class="charliteral">&#39;V&#39;</span>);
  <span class="keywordtype">long</span> LDA(n), LDVL(1), LDVR(n), LWORK(4*n), INFO(1);
  <span class="keywordtype">double</span> *VL(NULL), *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dgeev_(JOBVL, JOBVR, n, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, &amp;wr[0], &amp;wi[0], 
         VL, LDVL, VR.array, LDVR, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK; <span class="keyword">delete</span> [] VL;
  <span class="comment"></span>
<span class="comment">  //// forming ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
    <span class="keywordflow">if</span>(fabs(wi[j])&lt;DBL_MIN){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
        vrr[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vri[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = 0.0;
      }
    }
    <span class="keywordflow">else</span>{
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
        vrr[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)   = VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vri[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)   = VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j+1);
        vrr[j+1](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vri[j+1](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) =-VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j+1);
      }
      j++;
    }
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="adbabdbe158f8c57c2ba95515f0590105"></a><!-- doxytag: member="dgematrix::dgeev" ref="adbabdbe158f8c57c2ba95515f0590105" args="(std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; drovector &gt; &amp;, std::vector&lt; drovector &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#ab4c6d8212ee192595eca196890defb81">dgematrix::dgeev</a> </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classdrovector.html">drovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vlr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classdrovector.html">drovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vli</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate left eigenvalues and left eigenvectors<br/>
 All of the arguments need not to be initialized. wr, wi, vrr, vri are overwitten and become real and imaginary part of left eigenvalues and left eigenvectors, respectively. This matrix is also overwritten. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00466">466</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix is not a square matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;This matrix is (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <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>  
  wr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); wi.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); vlr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); vli.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ vlr[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>].resize(n); vli[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>].resize(n); }
  <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> VL(n,n);
  <span class="keywordtype">char</span> JOBVL(<span class="charliteral">&#39;V&#39;</span>), JOBVR(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> LDA(n), LDVL(n), LDVR(1), LWORK(4*n), INFO(1);
  <span class="keywordtype">double</span> *VR(NULL), *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dgeev_(JOBVL, JOBVR, n, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, &amp;wr[0], &amp;wi[0], 
         VL.array, LDVL, VR, LDVR, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK; <span class="keyword">delete</span> [] VR;
<span class="comment"></span>
<span class="comment">  //// forming ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
    <span class="keywordflow">if</span>(fabs(wi[j])&lt;DBL_MIN){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
        vlr[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vli[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = 0.0;
      }
    }
    <span class="keywordflow">else</span>{
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
        vlr[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)   = VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vli[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)   =-VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j+1);
        vlr[j+1](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vli[j+1](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j+1);
      }
      j++;
    }
  }
  

  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a3374d63da801c823055f52dc7f2f55d9"></a><!-- doxytag: member="dgematrix::dggev" ref="a3374d63da801c823055f52dc7f2f55d9" args="(dgematrix &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#a3374d63da801c823055f52dc7f2f55d9">dgematrix::dggev</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wi</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate generalized eigenvalues<br/>
 All of the arguments don't need to be initialized. wr and wi are overwitten and become real and imaginary part of generalized eigenvalues, respectively. This matrix and matB are also overwritten. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00529">529</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix is not a square matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;This matrix is (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <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="keywordflow">if</span>(matB.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> || matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The matrix B is not a square matrix having the same size as \&quot;this\&quot; matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;The B matrix is (&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>  
  wr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); wi.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordtype">char</span> JOBVL(<span class="charliteral">&#39;n&#39;</span>), JOBVR(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> LDA(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), LDB(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), LDVL(1), LDVR(1), LWORK(8*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), INFO(1);
  <span class="keywordtype">double</span> *BETA(<span class="keyword">new</span> <span class="keywordtype">double</span>[<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>]), *VL(NULL), *VR(NULL), 
    *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dggev_(JOBVL, JOBVR, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, matB.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDB, &amp;wr[0], &amp;wi[0], 
         BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK; <span class="keyword">delete</span> [] VL; <span class="keyword">delete</span> [] VR;
  <span class="comment"></span>
<span class="comment">  //// reforming ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ wr[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]/=BETA[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>];  wi[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]/=BETA[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
  <span class="keyword">delete</span> [] BETA; 
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae6828a6230344c9ce9463b8f229f684d"></a><!-- doxytag: member="dgematrix::dggev" ref="ae6828a6230344c9ce9463b8f229f684d" args="(dgematrix &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; dcovector &gt; &amp;, std::vector&lt; dcovector &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#a3374d63da801c823055f52dc7f2f55d9">dgematrix::dggev</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classdcovector.html">dcovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vrr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classdcovector.html">dcovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vri</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate generalized eigenvalues and generalized right eigenvectors<br/>
 All of the arguments don't need to be initialized. wr, wi, vrr and vri are overwitten and become real and imaginary part of generalized eigenvalue and generalized right eigenvector, respectively. This matrix and matB are also overwritten. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00575">575</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix is not a square matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;This matrix is (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <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="keywordflow">if</span>(matB.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> || matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The matrix B is not a square matrix having the same size as \&quot;this\&quot; matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;The B matrix is (&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>  
  wr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); wi.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); vrr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); vri.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ vrr[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>].resize(n); vri[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>].resize(n); }
  <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> VR(n,n);
  <span class="keywordtype">char</span> JOBVL(<span class="charliteral">&#39;n&#39;</span>), JOBVR(<span class="charliteral">&#39;V&#39;</span>);
  <span class="keywordtype">long</span> LDA(n), LDB(n), LDVL(1), LDVR(n), LWORK(8*n), INFO(1);
  <span class="keywordtype">double</span> *BETA(<span class="keyword">new</span> <span class="keywordtype">double</span>[n]), *VL(NULL), *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dggev_(JOBVL, JOBVR, n, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, matB.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDB, &amp;wr[0], &amp;wi[0], 
         BETA, VL, LDVL, VR.array, LDVR, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK; <span class="keyword">delete</span> [] VL;
  <span class="comment"></span>
<span class="comment">  //// reforming ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ wr[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]/=BETA[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>];  wi[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]/=BETA[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
  <span class="keyword">delete</span> [] BETA; 
  <span class="comment"></span>
<span class="comment">  //// forming ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
    <span class="keywordflow">if</span>(fabs(wi[j])&lt;DBL_MIN){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
        vrr[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vri[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = 0.0;
      }
    }
    <span class="keywordflow">else</span>{
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
        vrr[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)   = VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vri[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)   = VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j+1);
        vrr[j+1](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vri[j+1](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) =-VR(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j+1);
      }
      j++;
    }
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac36887f04b66cde5595b5b0a8de4daf0"></a><!-- doxytag: member="dgematrix::dggev" ref="ac36887f04b66cde5595b5b0a8de4daf0" args="(dgematrix &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; double &gt; &amp;, std::vector&lt; drovector &gt; &amp;, std::vector&lt; drovector &gt; &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#a3374d63da801c823055f52dc7f2f55d9">dgematrix::dggev</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>wi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classdrovector.html">drovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vlr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="classdrovector.html">drovector</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>vli</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>calculate generalized eigenvalues and generalized left eigenvectors<br/>
 All of the arguments don't need to be initialized. wr, wi, vlr and vli are overwitten and become real and imaginary part of generalized eigenvalue and generalized left eigenvector, respectively. This matrix and matB are also overwritten. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00643">643</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix is not a square matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;This matrix is (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <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="keywordflow">if</span>(matB.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> || matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;The matrix B is not a square matrix having the same size as \&quot;this\&quot; matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;The B matrix is (&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>  
  wr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); wi.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); vlr.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>); vli.resize(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ vlr[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>].resize(n); vli[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>].resize(n); }
  <a class="code" href="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> VL(n,n);
  <span class="keywordtype">char</span> JOBVL(<span class="charliteral">&#39;V&#39;</span>), JOBVR(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> LDA(n), LDB(n), LDVL(n), LDVR(1), LWORK(8*n), INFO(1);
  <span class="keywordtype">double</span> *BETA(<span class="keyword">new</span> <span class="keywordtype">double</span>[n]), *VR(NULL), *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  dggev_(JOBVL, JOBVR, n, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, matB.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDB, &amp;wr[0], &amp;wi[0], 
         BETA, VL.array, LDVL, VR, LDVR, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK; <span class="keyword">delete</span> [] VR;
  <span class="comment"></span>
<span class="comment">  //// reforming ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ wr[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]/=BETA[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>];  wi[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]/=BETA[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
  <span class="keyword">delete</span> [] BETA; 
  <span class="comment"></span>
<span class="comment">  //// forming ////</span>
<span class="comment"></span>  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
    <span class="keywordflow">if</span>(fabs(wi[j])&lt;DBL_MIN){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
        vlr[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vli[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = 0.0;
      }
    }
    <span class="keywordflow">else</span>{
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
        vlr[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)   = VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vli[j](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>)   =-VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j+1);
        vlr[j+1](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
        vli[j+1](<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>) = VL(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j+1);
      }
      j++;
    }
  }
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="af2da13a6844756c2203bf5143d3eeb28"></a><!-- doxytag: member="dgematrix::dgesvd" ref="af2da13a6844756c2203bf5143d3eeb28" args="(dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#af2da13a6844756c2203bf5143d3eeb28">dgematrix::dgesvd</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgbmatrix.html">dgbmatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>S</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>compute the singular value decomposition (SVD)<br/>
 The argument is dgbmatrix S. S doesn't need to be initialized. S is overwitten and become singular values. This matrix also overwritten. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00715">715</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgbmatrix_8hpp_source.html#l00013">dgbmatrix::array</a>, and <a class="el" href="dgbmatrix-misc_8hpp_source.html#l00084">dgbmatrix::resize()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordtype">char</span> JOBU(<span class="charliteral">&#39;n&#39;</span>), JOBVT(<span class="charliteral">&#39;n&#39;</span>);
  <span class="keywordtype">long</span> LDA(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDU(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDVT(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>), LWORK(std::max(3*std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)+std::max(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>),5*std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>))), INFO(1);
  <span class="keywordtype">double</span> *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  S.<a class="code" href="classdgbmatrix.html#af1e2e686717e3797cb607c86e251535c">resize</a>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,0,0);
  
  dgesvd_(JOBU, JOBVT, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, S.<a class="code" href="classdgbmatrix.html#a3a208131351663f0aa4a95c87851d23c" title="1D array to store matrix data">array</a>, NULL, LDU, NULL, LDVT, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="af12c9079ff9bbe229a4ebfa3458e43ed"></a><!-- doxytag: member="dgematrix::dgesvd" ref="af12c9079ff9bbe229a4ebfa3458e43ed" args="(dcovector &amp;, dgematrix &amp;, dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#af2da13a6844756c2203bf5143d3eeb28">dgematrix::dgesvd</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>U</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>VT</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>compute the singular value decomposition (SVD)<br/>
 The arguments are dcocector S, dgematrix U and VT. All of them need not to be initialized. S, U and VT are overwitten and become singular values, left singular vectors, and right singular vectors respectively. This matrix also overwritten. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00743">743</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00078">resize()</a>, and <a class="el" href="dcovector-misc_8hpp_source.html#l00072">dcovector::resize()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordtype">char</span> JOBU(<span class="charliteral">&#39;A&#39;</span>), JOBVT(<span class="charliteral">&#39;A&#39;</span>);
  <span class="keywordtype">long</span> LDA(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDU(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), LDVT(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>),
    LWORK(std::max(3*std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)+std::max(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>),5*std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>))), INFO(1);
  <span class="keywordtype">double</span> *WORK(<span class="keyword">new</span> <span class="keywordtype">double</span>[LWORK]);
  S.<a class="code" href="classdcovector.html#a969d5aaa75cde3f7b1ddcfcdefddd7af">resize</a>(std::min(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>)); U.<a class="code" href="classdgematrix.html#a1e4f028034bc8b777661785e3fea6386">resize</a>(LDU,<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>); VT.<a class="code" href="classdgematrix.html#a1e4f028034bc8b777661785e3fea6386">resize</a>(LDVT,<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  
  dgesvd_(JOBU, JOBVT, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDA, S.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, U.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>,
          LDU, VT.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, LDVT, WORK, LWORK, INFO);
  <span class="keyword">delete</span> [] WORK;
  
  <span class="keywordflow">if</span>(INFO!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. INFO = &quot;</span> &lt;&lt; INFO &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> INFO;
}
</pre></div>
</div>
</div>
<a class="anchor" id="af731210d05771c998fa9ef6ddaef1bdf"></a><!-- doxytag: member="dgematrix::dgglse" ref="af731210d05771c998fa9ef6ddaef1bdf" args="(dgematrix &amp;, dcovector &amp;, dcovector &amp;, dcovector &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#af731210d05771c998fa9ef6ddaef1bdf">dgematrix::dgglse</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>B</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classdcovector.html">dcovector</a> &amp;&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>solve the linear equality-constrained least squares (LSE) problem<br/>
 Input matrix and vectors, B, c, and d, are overwitten. This matrix is also overwritten. The solution vector x is to be automatically resized. </p>

<p>Definition at line <a class="el" href="dgematrix-lapack_8hpp_source.html#l00773">773</a> of file <a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dcovector_8hpp_source.html#l00011">dcovector::array</a>, <a class="el" href="dcovector-misc_8hpp_source.html#l00003">dcovector::clear()</a>, <a class="el" href="dcovector_8hpp_source.html#l00009">dcovector::l</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dcovector-misc_8hpp_source.html#l00072">dcovector::resize()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=c.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;A.m and c.l should be the same.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was A.m=&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot; and c.l=&quot;</span> &lt;&lt; c.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a> &lt;&lt; std::endl;
    exit(1);
  }
  <span class="keywordflow">if</span>(B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=d.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;B.m and d.l should be the same.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was B.m=&quot;</span> &lt;&lt; B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot; and d.l=&quot;</span> &lt;&lt; d.<a class="code" href="classdcovector.html#a08e64e5ecb5121100787d0f5d48f0af4" title="vector size">l</a> &lt;&lt; std::endl;
    exit(1);
  }
  <span class="keywordflow">if</span>( !(B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>&lt;=<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>) || !(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>&lt;=<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>+B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>) ){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;B.m&lt;=A.n&lt;=A.m+B.m should be satisfied.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was B.m=&quot;</span> &lt;&lt; B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;, A.n=&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;, and A.m+B.m=&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>+B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; std::endl;
    exit(1);
  }
<span class="preprocessor">#endif//CPPL_DEBUG</span>
<span class="preprocessor"></span>  
  <span class="keywordtype">long</span> lwork(-1), info(1);
  <a class="code" href="classdcovector.html" title="Real Double-precision Column Vector Class.">dcovector</a> work(1);
  x.<a class="code" href="classdcovector.html#a969d5aaa75cde3f7b1ddcfcdefddd7af">resize</a>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="comment"></span>
<span class="comment">  //////// workspace query ////////</span>
<span class="comment"></span>  dgglse_(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, std::max(1l,<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), B.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, std::max(1l,B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), c.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, d.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, x.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, work.array, lwork, info);
  lwork =long(work(0));
  work.resize(lwork);
  info =1;
  <span class="comment"></span>
<span class="comment">  //////// solve ////////</span>
<span class="comment"></span>  dgglse_(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, std::max(1l,<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), B.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, std::max(1l,B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>), c.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, d.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, x.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, work.array, lwork,  info);
  work.clear();
  
  <span class="keywordflow">if</span>(info!=0){
    WARNING_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;Serious trouble happend. info = &quot;</span> &lt;&lt; info &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> info;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9a9bad1d2e618af24cd251db80c47ee2"></a><!-- doxytag: member="dgematrix::operator=" ref="a9a9bad1d2e618af24cd251db80c47ee2" args="(const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</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>dgematrix=dgematrix operator </p>

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00048">copy()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>!=mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>){ <span class="comment">// if it is NOT self substitution</span>
    <a class="code" href="classdgematrix.html#a724393dcdae73aa04cc0208998e1935d">copy</a>(mat);
  }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a8d423cd2aef503330bb0d9eeb41c49fb"></a><!-- doxytag: member="dgematrix::operator=" ref="a8d423cd2aef503330bb0d9eeb41c49fb" args="(const _dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgematrix.html">_dgematrix</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>dgematrix=<a class="el" href="class__dgematrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class">_dgematrix</a> operator </p>

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

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

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]+=mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a20a728ecd19cc07a3bcc4811b60614ce"></a><!-- doxytag: member="dgematrix::operator+=" ref="a20a728ecd19cc07a3bcc4811b60614ce" args="(const _dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgematrix.html">_dgematrix</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>dgematrix+=<a class="el" href="class__dgematrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class">_dgematrix</a> operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgematrix_8hpp_source.html#l00015">15</a> of file <a class="el" href="dgematrix-__dgematrix_8hpp_source.html">dgematrix-_dgematrix.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00011">_dgematrix::array</a>, <a class="el" href="__dgematrix-misc_8hpp_source.html#l00013">_dgematrix::destroy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00009">_dgematrix::m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__dgematrix_8hpp_source.html#l00010">_dgematrix::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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 summation.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<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; mat.<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>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]+=mat.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
  
  mat.<a class="code" href="class__dgematrix.html#ac6d270d6c2d1d73afdfb2029eca920d9">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac7eb236fa55256df7f92b4add0f95aca"></a><!-- doxytag: member="dgematrix::operator+=" ref="ac7eb236fa55256df7f92b4add0f95aca" args="(const dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdsymatrix.html">dsymatrix</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>dgematrix+=dsymatrix operator </p>

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

<p>References <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dsymatrix_8hpp_source.html#l00010">dsymatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>( <span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator() </a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) += mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a863447c714147dd22b91a4a410e2c6dc"></a><!-- doxytag: member="dgematrix::operator+=" ref="a863447c714147dd22b91a4a410e2c6dc" args="(const _dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dsymatrix.html">_dsymatrix</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>dgematrix+=<a class="el" href="class__dsymatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision Symmetric Matrix Class">_dsymatrix</a> operator </p>

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

<p>References <a class="el" href="__dsymatrix-misc_8hpp_source.html#l00012">_dsymatrix::destroy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dsymatrix_8hpp_source.html#l00010">_dsymatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) += mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  mat.<a class="code" href="class__dsymatrix.html#a09e5b4ca8579bef58e01e80c22e799b1">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a25fe4e166583b97298e34955e4e04a3a"></a><!-- doxytag: member="dgematrix::operator+=" ref="a25fe4e166583b97298e34955e4e04a3a" args="(const dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgbmatrix.html">dgbmatrix</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>dgematrix+=dgbmatrix operator </p>

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

<p>References <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00011">dgbmatrix::kl</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00012">dgbmatrix::ku</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00009">dgbmatrix::m</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00010">dgbmatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>-mat.<a class="code" href="classdgbmatrix.html#aeeb3e79431677905a4ece19c6616edd4" title="lower band width">kl</a>); j&lt;std::min(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>+mat.<a class="code" href="classdgbmatrix.html#a0b4d519e95ddf780bf1151a42018d646" title="upper band width">ku</a>+1); j++){
      <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)+=mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad6e18e4b2695b2cfb18976e151928b81"></a><!-- doxytag: member="dgematrix::operator+=" ref="ad6e18e4b2695b2cfb18976e151928b81" args="(const _dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgbmatrix.html">_dgbmatrix</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>dgematrix+=<a class="el" href="class__dgbmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Band Matrix Class">_dgbmatrix</a> operator </p>

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

<p>References <a class="el" href="__dgbmatrix-misc_8hpp_source.html#l00015">_dgbmatrix::destroy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00011">_dgbmatrix::kl</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00012">_dgbmatrix::ku</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00009">_dgbmatrix::m</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00010">_dgbmatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) += (&quot;</span> &lt;&lt; mat.<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; mat.<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>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>-mat.<a class="code" href="class__dgbmatrix.html#aeea4fdf76630ca1b51f93c5bed64662c" title="lower band width">kl</a>); j&lt;std::min(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>+mat.<a class="code" href="class__dgbmatrix.html#a116dadc8ed5246ee0b4cd0a9fffc53ea" title="upper band width">ku</a>+1); j++){
      <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)+=mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  mat.<a class="code" href="class__dgbmatrix.html#a170fdd995797f5d394863105e658df9e">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="af81df831d22ee32deaf9e78a73edffd4"></a><!-- doxytag: member="dgematrix::operator+=" ref="af81df831d22ee32deaf9e78a73edffd4" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a>&amp; dgematrix::operator+= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="a5160f5f7f7aecb2d829ca2d7d3b9aee4"></a><!-- doxytag: member="dgematrix::operator&#45;=" ref="a5160f5f7f7aecb2d829ca2d7d3b9aee4" args="(const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</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>dgematrix operator-= </p>

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]-=mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a687dd74572df2b379b20e3183162f22d"></a><!-- doxytag: member="dgematrix::operator&#45;=" ref="a687dd74572df2b379b20e3183162f22d" args="(const _dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgematrix.html">_dgematrix</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>dgematrix-=<a class="el" href="class__dgematrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class">_dgematrix</a> operator </p>

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00011">_dgematrix::array</a>, <a class="el" href="__dgematrix-misc_8hpp_source.html#l00013">_dgematrix::destroy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00009">_dgematrix::m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="__dgematrix_8hpp_source.html#l00010">_dgematrix::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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<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; mat.<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>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]-=mat.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }

  mat.<a class="code" href="class__dgematrix.html#ac6d270d6c2d1d73afdfb2029eca920d9">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad7490db7371afd9d97641d80941cf4e6"></a><!-- doxytag: member="dgematrix::operator&#45;=" ref="ad7490db7371afd9d97641d80941cf4e6" args="(const dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdsymatrix.html">dsymatrix</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>dgematrix-=dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dsymatrix_8hpp_source.html#l00025">25</a> of file <a class="el" href="dgematrix-dsymatrix_8hpp_source.html">dgematrix-dsymatrix.hpp</a>.</p>

<p>References <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dsymatrix_8hpp_source.html#l00010">dsymatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator() </a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) -= mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab7ce407b004e75156c6febef4b1e3318"></a><!-- doxytag: member="dgematrix::operator&#45;=" ref="ab7ce407b004e75156c6febef4b1e3318" args="(const _dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dsymatrix.html">_dsymatrix</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>dgematrix-=<a class="el" href="class__dsymatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision Symmetric Matrix Class">_dsymatrix</a> operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html#l00026">26</a> of file <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html">dgematrix-_dsymatrix.hpp</a>.</p>

<p>References <a class="el" href="__dsymatrix-misc_8hpp_source.html#l00012">_dsymatrix::destroy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dsymatrix_8hpp_source.html#l00010">_dsymatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 sutraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>;<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) -= mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  mat.<a class="code" href="class__dsymatrix.html#a09e5b4ca8579bef58e01e80c22e799b1">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa6526a22d5b2c5cf6eb5af438d3724c9"></a><!-- doxytag: member="dgematrix::operator&#45;=" ref="aa6526a22d5b2c5cf6eb5af438d3724c9" args="(const dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgbmatrix.html">dgbmatrix</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>dgematrix-=dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html#l00025">25</a> of file <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html">dgematrix-dgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00011">dgbmatrix::kl</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00012">dgbmatrix::ku</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00009">dgbmatrix::m</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00010">dgbmatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>-mat.<a class="code" href="classdgbmatrix.html#aeeb3e79431677905a4ece19c6616edd4" title="lower band width">kl</a>); j&lt;std::min(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>+mat.<a class="code" href="classdgbmatrix.html#a0b4d519e95ddf780bf1151a42018d646" title="upper band width">ku</a>+1); j++){
      <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)-=mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aebb1e44f72c4f85486eb70702e80d95a"></a><!-- doxytag: member="dgematrix::operator&#45;=" ref="aebb1e44f72c4f85486eb70702e80d95a" args="(const _dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgbmatrix.html">_dgbmatrix</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>dgematrix-=<a class="el" href="class__dgbmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Band Matrix Class">_dgbmatrix</a> operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00026">26</a> of file <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html">dgematrix-_dgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="__dgbmatrix-misc_8hpp_source.html#l00015">_dgbmatrix::destroy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00011">_dgbmatrix::kl</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00012">_dgbmatrix::ku</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00009">_dgbmatrix::m</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00010">_dgbmatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" title="matrix column size">n</a> || <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<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 subtraction.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) -= (&quot;</span> &lt;&lt; mat.<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; mat.<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>  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>-mat.<a class="code" href="class__dgbmatrix.html#aeea4fdf76630ca1b51f93c5bed64662c" title="lower band width">kl</a>); j&lt;std::min(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>+mat.<a class="code" href="class__dgbmatrix.html#a116dadc8ed5246ee0b4cd0a9fffc53ea" title="upper band width">ku</a>+1); j++){
      <a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)-=mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  mat.<a class="code" href="class__dgbmatrix.html#a170fdd995797f5d394863105e658df9e">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a19c0d94fac0f5ea05ef097f196fc5462"></a><!-- doxytag: member="dgematrix::operator&#45;=" ref="a19c0d94fac0f5ea05ef097f196fc5462" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a>&amp; dgematrix::operator-= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="a6d8b018d2baf7e9f74c71f08faeea25f"></a><!-- doxytag: member="dgematrix::operator*=" ref="a6d8b018d2baf7e9f74c71f08faeea25f" args="(const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</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>dgematrix operator*= </p>

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<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; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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( <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> );
  dgemm_( <span class="charliteral">&#39;n&#39;</span>, <span class="charliteral">&#39;n&#39;</span>, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, 1.0, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,
          mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, 0.0, newmat.array, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> );
  
  <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">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="a27eb6113b08799cb8f98051547894b4c"></a><!-- doxytag: member="dgematrix::operator*=" ref="a27eb6113b08799cb8f98051547894b4c" args="(const _dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgematrix.html">_dgematrix</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>dgematrix*=<a class="el" href="class__dgematrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class">_dgematrix</a> operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgematrix_8hpp_source.html#l00053">53</a> of file <a class="el" href="dgematrix-__dgematrix_8hpp_source.html">dgematrix-_dgematrix.hpp</a>.</p>

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00011">_dgematrix::array</a>, <a class="el" href="__dgematrix-misc_8hpp_source.html#l00013">_dgematrix::destroy()</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00009">_dgematrix::m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dgematrix_8hpp_source.html#l00010">_dgematrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<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; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<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; mat.<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( <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a> );
  dgemm_( <span class="charliteral">&#39;n&#39;</span>, <span class="charliteral">&#39;n&#39;</span>, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, 1.0, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,
          mat.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a>, mat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>, 0.0, newmat.array, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> );
  
  <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(*<span class="keyword">this</span>,newmat);
  mat.<a class="code" href="class__dgematrix.html#ac6d270d6c2d1d73afdfb2029eca920d9">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="afd3f01c5276b022a057b948c2480c662"></a><!-- doxytag: member="dgematrix::operator*=" ref="afd3f01c5276b022a057b948c2480c662" args="(const dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdsymatrix.html">dsymatrix</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>dgematrix*=dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dsymatrix_8hpp_source.html#l00047">47</a> of file <a class="el" href="dgematrix-dsymatrix_8hpp_source.html">dgematrix-dsymatrix.hpp</a>.</p>

<p>References <a class="el" href="dsymatrix_8hpp_source.html#l00011">dsymatrix::array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dsymatrix_8hpp_source.html#l00010">dsymatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<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; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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( <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> );
  dsymm_( <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;l&#39;</span>, mat.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, 1.0, mat.<a class="code" href="classdsymatrix.html#a7efa7c974733dc3111167a9ebb217e1f" title="1D array to store matrix data">array</a>, mat.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a>, 
          <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, 0.0, newmat.array, newmat.m );
  
  <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">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="a34eb3a3fc1ba3f113d8cff028fac1d23"></a><!-- doxytag: member="dgematrix::operator*=" ref="a34eb3a3fc1ba3f113d8cff028fac1d23" args="(const _dsymatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dsymatrix.html">_dsymatrix</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>dgematrix*=<a class="el" href="class__dsymatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision Symmetric Matrix Class">_dsymatrix</a> operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html#l00049">49</a> of file <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html">dgematrix-_dsymatrix.hpp</a>.</p>

<p>References <a class="el" href="__dsymatrix_8hpp_source.html#l00011">_dsymatrix::array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="__dsymatrix-misc_8hpp_source.html#l00012">_dsymatrix::destroy()</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dsymatrix_8hpp_source.html#l00010">_dsymatrix::n</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<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 product.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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( <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a> );
  dsymm_( <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;l&#39;</span>, mat.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a>, <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, 1.0, mat.<a class="code" href="class__dsymatrix.html#a656ab414ee51638aedc9bf4960fe428a" title="1D array to store matrix data">array</a>, mat.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a>, 
          <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, 0.0, newmat.array, newmat.m );
  
  <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(*<span class="keyword">this</span>,newmat);
  mat.<a class="code" href="class__dsymatrix.html#a09e5b4ca8579bef58e01e80c22e799b1">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a85eebeaa926dc2d00a5bd86c25fe3c07"></a><!-- doxytag: member="dgematrix::operator*=" ref="a85eebeaa926dc2d00a5bd86c25fe3c07" args="(const dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgbmatrix.html">dgbmatrix</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>dgematrix*=dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html#l00047">47</a> of file <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html">dgematrix-dgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00011">dgbmatrix::kl</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00012">dgbmatrix::ku</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00009">dgbmatrix::m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="dgbmatrix_8hpp_source.html#l00010">dgbmatrix::n</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">swap</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00015">zero()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<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; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,mat.<a class="code" href="classdgbmatrix.html#a5b6fe4d1cfa71161b09ecf0b59befd0e" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;newmat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> k=std::max(<span class="keywordtype">long</span>(0),j-mat.<a class="code" href="classdgbmatrix.html#a0b4d519e95ddf780bf1151a42018d646" title="upper band width">ku</a>); k&lt;std::min(mat.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a>,j+mat.<a class="code" href="classdgbmatrix.html#aeeb3e79431677905a4ece19c6616edd4" title="lower band width">kl</a>+1); k++){
        newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)+=<a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,k)*mat(k,j);
      }
    }
  }
  
  <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">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="aa4a612dd19ee9538d18d3b4d2970f06a"></a><!-- doxytag: member="dgematrix::operator*=" ref="aa4a612dd19ee9538d18d3b4d2970f06a" args="(const _dgbmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class__dgbmatrix.html">_dgbmatrix</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>dgematrix*=<a class="el" href="class__dgbmatrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Band Matrix Class">_dgbmatrix</a> operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00048">48</a> of file <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html">dgematrix-_dgbmatrix.hpp</a>.</p>

<p>References <a class="el" href="__dgbmatrix-misc_8hpp_source.html#l00015">_dgbmatrix::destroy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">i</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00011">_dgbmatrix::kl</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00012">_dgbmatrix::ku</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00009">_dgbmatrix::m</a>, <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>, <a class="el" href="__dgbmatrix_8hpp_source.html#l00010">_dgbmatrix::n</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">swap</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00015">zero()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=mat.<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; <a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; <a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) *= (&quot;</span> &lt;&lt; mat.<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; mat.<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(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,mat.<a class="code" href="class__dgbmatrix.html#a95aebc7e2d4ea66b1b7a08e981df6971" title="matrix column size">n</a>);
  newmat.zero();
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;newmat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> k=std::max(<span class="keywordtype">long</span>(0),j-mat.<a class="code" href="class__dgbmatrix.html#a116dadc8ed5246ee0b4cd0a9fffc53ea" title="upper band width">ku</a>); k&lt;std::min(mat.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" title="matrix row size">m</a>,j+mat.<a class="code" href="class__dgbmatrix.html#aeea4fdf76630ca1b51f93c5bed64662c" title="lower band width">kl</a>+1); k++){
        newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)+=<a class="code" href="classdgematrix.html#a394c30f419374235f72a65b8dd137f04">operator()</a>(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,k)*mat(k,j);
      }
    }
  }
  
  <a class="code" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a>(*<span class="keyword">this</span>, newmat);
  mat.<a class="code" href="class__dgbmatrix.html#a170fdd995797f5d394863105e658df9e">destroy</a>();
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a029d8be2c0b10a4766b832bf8629c5c8"></a><!-- doxytag: member="dgematrix::operator*=" ref="a029d8be2c0b10a4766b832bf8629c5c8" args="(const dgsmatrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a>&amp; dgematrix::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgsmatrix.html">dgsmatrix</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

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

</div>
</div>
<a class="anchor" id="a47baf9702cd2fd75ce810167a2976397"></a><!-- doxytag: member="dgematrix::operator*=" ref="a47baf9702cd2fd75ce810167a2976397" args="(const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::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>dgematrix*=double operator </p>

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  dscal_(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, d, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, 1);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="abfdf389426bcbcabd791891b3fa428dd"></a><!-- doxytag: member="dgematrix::operator/=" ref="abfdf389426bcbcabd791891b3fa428dd" args="(const double &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classdgematrix.html">dgematrix</a> &amp; dgematrix::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>dgematrix/=double operator </p>

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

<p>References <a class="el" href="dgematrix_8hpp_source.html#l00011">array</a>, <a class="el" href="dgematrix_8hpp_source.html#l00009">m</a>, and <a class="el" href="dgematrix_8hpp_source.html#l00010">n</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  dscal_(<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, 1./d, <a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, 1);
  <span class="keywordflow">return</span> *<span class="keyword">this</span>;
}
</pre></div>
</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a4af03a0937a014f2fab03320dfc4c8e0"></a><!-- doxytag: member="dgematrix::operator&lt;&lt;" ref="a4af03a0937a014f2fab03320dfc4c8e0" args="(std::ostream &amp;, const dgematrix &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="classdgematrix.html">dgematrix</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="dgematrix-io_8hpp_source.html#l00063">63</a> of file <a class="el" href="dgematrix-io_8hpp_source.html">dgematrix-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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      s &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; mat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
    s &lt;&lt; std::endl;
  }
  <span class="keywordflow">return</span> s;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a363aa32a0be4faacc1427b16aa59408c"></a><!-- doxytag: member="dgematrix::swap" ref="a363aa32a0be4faacc1427b16aa59408c" args="(dgematrix &amp;, dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgematrix.html#a363aa32a0be4faacc1427b16aa59408c">swap</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</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="classdgematrix.html">dgematrix</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="dgematrix-misc_8hpp_source.html#l00146">146</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

<p>Referenced by <a class="el" href="dgematrix-lapack_8hpp_source.html#l00062">dgels()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00261">dgelss()</a>, and <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00048">operator*=()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordtype">long</span> A_m =A.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, A_n =A.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>;
  <span class="keywordtype">double</span>* A_array =A.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>;
  <span class="keywordtype">double</span>** A_darray=A.<a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>;
  A.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>=B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; A.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>=B.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; A.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>=B.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>; A.<a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>=B.<a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>;
  B.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>=A_m; B.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>=A_n; B.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>=A_array; B.<a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>=A_darray;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad6ad4242437ba67e1eb4ba01a92ab8a4"></a><!-- doxytag: member="dgematrix::_" ref="ad6ad4242437ba67e1eb4ba01a92ab8a4" args="(dgematrix &amp;)" -->
<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="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classdgematrix.html">dgematrix</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="dgematrix-misc_8hpp_source.html#l00157">157</a> of file <a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-misc.hpp</a>.</p>

<p>Referenced by <a class="el" href="dgematrix-misc_8hpp_source.html#l00124">col()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00106">row()</a>, and <a class="el" href="dgematrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <a class="code" href="class__dgematrix.html" title="(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class">_dgematrix</a> newmat;
  <span class="comment"></span>
<span class="comment">  //////// shallow copy ////////</span>
<span class="comment"></span>  newmat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a> =mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>;
  newmat.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a> =mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>;
  newmat.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a> =mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>;
  newmat.<a class="code" href="class__dgematrix.html#a786195fb817b58bccf85b759cef8b7b0" title="array of pointers of column head addresses">darray</a> =mat.<a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a>;
  <span class="comment"></span>
<span class="comment">  //////// nullify ////////</span>
<span class="comment"></span>  mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> =0;
  mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> =0;
  mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a> =NULL;
  mat.<a class="code" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827" title="array of pointers of column head addresses">darray</a> =NULL;
  
  <span class="keywordflow">return</span> newmat;
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa082426dfb93e41a134eafae585fb7e5"></a><!-- doxytag: member="dgematrix::t" ref="aa082426dfb93e41a134eafae585fb7e5" args="(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> <a class="el" href="classdgematrix.html#aa082426dfb93e41a134eafae585fb7e5">t</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</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 dgematrix </p>

<p>Definition at line <a class="el" href="dgematrix-calc_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgematrix-calc_8hpp_source.html">dgematrix-calc.hpp</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(mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>,mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;newmat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) =mat(j,<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a67f90160391aa6dbecc09b8eb6e23246"></a><!-- doxytag: member="dgematrix::i" ref="a67f90160391aa6dbecc09b8eb6e23246" args="(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> <a class="el" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</a> &amp;&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>return its inverse matrix </p>

<p>Definition at line <a class="el" href="dgematrix-calc_8hpp_source.html#l00018">18</a> of file <a class="el" href="dgematrix-calc_8hpp_source.html">dgematrix-calc.hpp</a>.</p>

<p>Referenced by <a class="el" href="dgematrix-misc_8hpp_source.html#l00041">chsign()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00124">col()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00048">copy()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00382">dgeev()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00062">dgels()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00261">dgelss()</a>, <a class="el" href="dgematrix-constructor_8hpp_source.html#l00018">dgematrix()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00529">dggev()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00023">identity()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00003">operator+=()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00026">operator-=()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00099">read()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00078">resize()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00041">set()</a>, <a class="el" href="dgematrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00079">write()</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00015">zero()</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
<span class="preprocessor">#ifdef  CPPL_DEBUG</span>
<span class="preprocessor"></span>  <span class="keywordflow">if</span>(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>){
    ERROR_REPORT;
    std::cerr &lt;&lt; <span class="stringliteral">&quot;This matrix is not square and has no inverse matrix.&quot;</span> &lt;&lt; std::endl
              &lt;&lt; <span class="stringliteral">&quot;Your input was (&quot;</span> &lt;&lt; mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<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> mat_cp(mat), mat_inv(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  mat_inv.identity();
  mat_cp.dgesv(mat_inv);
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(mat_inv);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a7364af3e9c7e63caf566bfaf255a0525"></a><!-- doxytag: member="dgematrix::idamax" ref="a7364af3e9c7e63caf566bfaf255a0525" args="(long &amp;, long &amp;, const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classdgematrix.html#a7364af3e9c7e63caf566bfaf255a0525">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="classdgematrix.html">dgematrix</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="dgematrix-calc_8hpp_source.html#l00043">43</a> of file <a class="el" href="dgematrix-calc_8hpp_source.html">dgematrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordtype">long</span> index( idamax_(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, 1) -1 );
  <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a> =index%mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>;
  j =index/mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a43627f90cccbd94ad63178d01d2035e2"></a><!-- doxytag: member="dgematrix::damax" ref="a43627f90cccbd94ad63178d01d2035e2" args="(const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classdgematrix.html#a43627f90cccbd94ad63178d01d2035e2">damax</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</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="dgematrix-calc_8hpp_source.html#l00052">52</a> of file <a class="el" href="dgematrix-calc_8hpp_source.html">dgematrix-calc.hpp</a>.</p>
<div class="fragment"><pre class="fragment">{VERBOSE_REPORT;
  <span class="keywordflow">return</span> mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[idamax_(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, 1) -1];
}
</pre></div>
</div>
</div>
<a class="anchor" id="a2ecf80379eaf97f4489414e8c073d830"></a><!-- doxytag: member="dgematrix::operator+" ref="a2ecf80379eaf97f4489414e8c073d830" args="(const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classdgematrix.html">dgematrix</a>&amp; operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</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>+dgematrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-unary_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgematrix-unary_8hpp_source.html">dgematrix-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="a7383bc2bdfa0b645aa6e247eb3cf9b68"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="a7383bc2bdfa0b645aa6e247eb3cf9b68" args="(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="classdgematrix.html">dgematrix</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>-dgematrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-unary_8hpp_source.html#l00010">10</a> of file <a class="el" href="dgematrix-unary_8hpp_source.html">dgematrix-unary.hpp</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(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;newmat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>*newmat.n; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ newmat.array[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]=-mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a807de7bf584453026db42b420aa675b5"></a><!-- doxytag: member="dgematrix::operator+" ref="a807de7bf584453026db42b420aa675b5" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix+dgematrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgematrix_8hpp_source.html#l00076">76</a> of file <a class="el" href="dgematrix-dgematrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> || matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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(matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;newmat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>*newmat.n; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    newmat.array[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =matA.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]+matB.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>];
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a23c418fd5bac1e4f85433fe2ee6c9921"></a><!-- doxytag: member="dgematrix::operator+" ref="a23c418fd5bac1e4f85433fe2ee6c9921" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix+_dgematrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgematrix_8hpp_source.html#l00079">79</a> of file <a class="el" href="dgematrix-__dgematrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a> || matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ matB.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] +=matA.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
  
  <span class="keywordflow">return</span> matB;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad3d3647164f45c25488b56aabc988854"></a><!-- doxytag: member="dgematrix::operator+" ref="ad3d3647164f45c25488b56aabc988854" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix+dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dsymatrix_8hpp_source.html#l00072">72</a> of file <a class="el" href="dgematrix-dsymatrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> || matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) += matB(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a17cc046a53ffe02f7eab25900db82447"></a><!-- doxytag: member="dgematrix::operator+" ref="a17cc046a53ffe02f7eab25900db82447" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix+_dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html#l00075">75</a> of file <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a> || matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) + (&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;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);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) += matB(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  matB.<a class="code" href="class__dsymatrix.html#a09e5b4ca8579bef58e01e80c22e799b1">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa8f83de50a49ee7f3c0113e8fadc5d8f"></a><!-- doxytag: member="dgematrix::operator+" ref="aa8f83de50a49ee7f3c0113e8fadc5d8f" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix+dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html#l00078">78</a> of file <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matB.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>+matB.<a class="code" href="classdgbmatrix.html#a0b4d519e95ddf780bf1151a42018d646" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)+=matB(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a4e25ccf71cec51b81725795816700ca0"></a><!-- doxytag: member="dgematrix::operator+" ref="a4e25ccf71cec51b81725795816700ca0" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix+_dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00081">81</a> of file <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matB.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>+matB.<a class="code" href="class__dgbmatrix.html#a116dadc8ed5246ee0b4cd0a9fffc53ea" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)+=matB(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  matB.<a class="code" href="class__dgbmatrix.html#a170fdd995797f5d394863105e658df9e">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aad754bd77b0b4a7b0efe3ce7f0666b65"></a><!-- doxytag: member="dgematrix::operator+" ref="aad754bd77b0b4a7b0efe3ce7f0666b65" args="(const dgematrix &amp;, const dgsmatrix &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="classdgematrix.html">dgematrix</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>dgematrix+dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgsmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgematrix-dgsmatrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=matB.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> || matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</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="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab989e72be09441e1971f7c69e46217ac"></a><!-- doxytag: member="dgematrix::operator+" ref="ab989e72be09441e1971f7c69e46217ac" args="(const dgematrix &amp;, const _dgsmatrix &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="classdgematrix.html">dgematrix</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>dgematrix+_dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgsmatrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgematrix-__dgsmatrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=matB.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a> || matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matB.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.begin(); it!=matB.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) += it-&gt;v;
  }
  
  matB.<a class="code" href="class__dgsmatrix.html#aa2851712fa4f99d8d608815ef274a362">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a69c9603702052173e8a74e740d11be09"></a><!-- doxytag: member="dgematrix::operator+" ref="a69c9603702052173e8a74e740d11be09" args="(const dgematrix &amp;, const dssmatrix &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="classdgematrix.html">dgematrix</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="ab0b96148951fe7d357db0c9c87509398"></a><!-- doxytag: member="dgematrix::operator+" ref="ab0b96148951fe7d357db0c9c87509398" args="(const dgematrix &amp;, const _dssmatrix &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="classdgematrix.html">dgematrix</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="aad60c753e79b5e48d0b876ae3b832f54"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="aad60c753e79b5e48d0b876ae3b832f54" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix-dgematrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgematrix_8hpp_source.html#l00097">97</a> of file <a class="el" href="dgematrix-dgematrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> || matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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(matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;newmat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>*newmat.n; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    newmat.array[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =matA.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]-matB.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>];
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="adf3880fbeb1f71b6d7a5d0cfccf268ec"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="adf3880fbeb1f71b6d7a5d0cfccf268ec" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix-_dgematrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgematrix_8hpp_source.html#l00097">97</a> of file <a class="el" href="dgematrix-__dgematrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a> || matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    matB.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =matA.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]-matB.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>];
  }
  
  <span class="keywordflow">return</span> matB;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a75b4d1ba8c43c959a4af3601fe8f9b3d"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="a75b4d1ba8c43c959a4af3601fe8f9b3d" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix-dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dsymatrix_8hpp_source.html#l00095">95</a> of file <a class="el" href="dgematrix-dsymatrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> || matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) -= matB(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab6316988a415eb48c4fa162d9234491e"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="ab6316988a415eb48c4fa162d9234491e" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix-_dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html#l00099">99</a> of file <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a> || matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) - (&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;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);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j) -= matB(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  matB.<a class="code" href="class__dsymatrix.html#a09e5b4ca8579bef58e01e80c22e799b1">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a3ae22355a3a04066f674565e77a687ba"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="a3ae22355a3a04066f674565e77a687ba" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix-dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html#l00102">102</a> of file <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matB.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>+matB.<a class="code" href="classdgbmatrix.html#a0b4d519e95ddf780bf1151a42018d646" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)-=matB(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a03dc0b0a4d017889b7febd3967d7dbf4"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="a03dc0b0a4d017889b7febd3967d7dbf4" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix-_dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00106">106</a> of file <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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);
  
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matB.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">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="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>+matB.<a class="code" href="class__dgbmatrix.html#a116dadc8ed5246ee0b4cd0a9fffc53ea" title="upper band width">ku</a>+1); j++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)-=matB(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  matB.<a class="code" href="class__dgbmatrix.html#a170fdd995797f5d394863105e658df9e">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac26282fd9d954b2d02c1959a18963ebe"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="ac26282fd9d954b2d02c1959a18963ebe" args="(const dgematrix &amp;, const dgsmatrix &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="classdgematrix.html">dgematrix</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>dgematrix-dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgsmatrix_8hpp_source.html#l00023">23</a> of file <a class="el" href="dgematrix-dgsmatrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=matB.<a class="code" href="classdgsmatrix.html#ae2d6c9f9657d44171a4bfd56276277cb" title="matrix row size">m</a> || matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="classdgsmatrix.html#acefae40b42444c17eebbc23ccee73ae0" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</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="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac2e91dcd305ff9f4010bb85261460092"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="ac2e91dcd305ff9f4010bb85261460092" args="(const dgematrix &amp;, const _dgsmatrix &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="classdgematrix.html">dgematrix</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>dgematrix-_dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgsmatrix_8hpp_source.html#l00025">25</a> of file <a class="el" href="dgematrix-__dgsmatrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>!=matB.<a class="code" href="class__dgsmatrix.html#ac45fcfd8d9cddb1fae5b66cd9b7ac98a" title="matrix row size">m</a> || matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>!=matB.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(matA);
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matB.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.begin(); it!=matB.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.end(); it++){
    newmat(it-&gt;i,it-&gt;j) -= it-&gt;v;
  }
  
  matB.<a class="code" href="class__dgsmatrix.html#aa2851712fa4f99d8d608815ef274a362">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aaf53a486619b69d5547b66dd3510348b"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="aaf53a486619b69d5547b66dd3510348b" args="(const dgematrix &amp;, const dssmatrix &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="classdgematrix.html">dgematrix</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="a97d9ebd143534fcf44568061405fb592"></a><!-- doxytag: member="dgematrix::operator&#45;" ref="a97d9ebd143534fcf44568061405fb592" args="(const dgematrix &amp;, const _dssmatrix &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="classdgematrix.html">dgematrix</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="aa75006c0df84a468de2daa7edd4046dc"></a><!-- doxytag: member="dgematrix::operator*" ref="aa75006c0df84a468de2daa7edd4046dc" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix*dcovector operator </p>

<p>Definition at line <a class="el" href="dgematrix-dcovector_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgematrix-dcovector_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>);
  dgemv_( <span class="charliteral">&#39;n&#39;</span>, mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, 1.0, mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,
          vec.<a class="code" href="classdcovector.html#a9b188bf160d8f7e24ea1d41deaceaf6d" title="1D array to store vector data">array</a>, 1, 0.0, newvec.array, 1 );
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newvec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a842c592d9412f5d0667ccc7120bcf381"></a><!-- doxytag: member="dgematrix::operator*" ref="a842c592d9412f5d0667ccc7120bcf381" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix*_dcovector operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dcovector_8hpp_source.html#l00003">3</a> of file <a class="el" href="dgematrix-__dcovector_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>);
  dgemv_( <span class="charliteral">&#39;n&#39;</span>, mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, 1.0, mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,
          vec.<a class="code" href="class__dcovector.html#a27693f26cc6e9e25c349c7fbf7cc2b67" title="1D array to store vector data">array</a>, 1, 0.0, newvec.array, 1 );
  
  vec.<a class="code" href="class__dcovector.html#a3e16f52298eac6c97958a9cbc6388bc4">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newvec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a337f7271ad907dbe74030d5360403862"></a><!-- doxytag: member="dgematrix::operator*" ref="a337f7271ad907dbe74030d5360403862" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix*dgematrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgematrix_8hpp_source.html#l00118">118</a> of file <a class="el" href="dgematrix-dgematrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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( matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> );
  dgemm_( <span class="charliteral">&#39;n&#39;</span>, <span class="charliteral">&#39;n&#39;</span>, matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, matB.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, 1.0, matA.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,
          matB.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, matB.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, 0.0, newmat.array, matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> );
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9b6f80bb9762c4f9c211f2067a3a43b7"></a><!-- doxytag: member="dgematrix::operator*" ref="a9b6f80bb9762c4f9c211f2067a3a43b7" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix*_dgematrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgematrix_8hpp_source.html#l00117">117</a> of file <a class="el" href="dgematrix-__dgematrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a> );
  dgemm_( <span class="charliteral">&#39;n&#39;</span>, <span class="charliteral">&#39;n&#39;</span>, matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, matB.<a class="code" href="class__dgematrix.html#ad46b02985eb9537b1bd65937d5b052de" title="matrix column size">n</a>, matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>, 1.0, matA.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>,
          matB.<a class="code" href="class__dgematrix.html#ad01c168fc4997d06e7c996ba36b12ff6" title="1D array to store matrix data">array</a>, matB.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>, 0.0, newmat.array, matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> );
  
  matB.<a class="code" href="class__dgematrix.html#ac6d270d6c2d1d73afdfb2029eca920d9">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aff1f1027f835aa003aa595d6a7433288"></a><!-- doxytag: member="dgematrix::operator*" ref="aff1f1027f835aa003aa595d6a7433288" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix*dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dsymatrix_8hpp_source.html#l00118">118</a> of file <a class="el" href="dgematrix-dsymatrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a> );
  dsymm_( <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;l&#39;</span>, newmat.m, newmat.n, 1.0, matB.<a class="code" href="classdsymatrix.html#a7efa7c974733dc3111167a9ebb217e1f" title="1D array to store matrix data">array</a>, matB.<a class="code" href="classdsymatrix.html#a4a2ca7ec3f2b7bd62139777fbb6ad1a9" title="matrix column size">n</a>, 
          matA.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, 0.0, newmat.array, newmat.m );
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9dea69a96168f95591774e4bbcecbeab"></a><!-- doxytag: member="dgematrix::operator*" ref="a9dea69a96168f95591774e4bbcecbeab" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix*_dsymatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html#l00123">123</a> of file <a class="el" href="dgematrix-__dsymatrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> &lt;&lt; <span class="stringliteral">&quot;) * (&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;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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a> );
  dsymm_( <span class="charliteral">&#39;R&#39;</span>, <span class="charliteral">&#39;l&#39;</span>, newmat.m, newmat.n, 1.0, matB.<a class="code" href="class__dsymatrix.html#a656ab414ee51638aedc9bf4960fe428a" title="1D array to store matrix data">array</a>, matB.<a class="code" href="class__dsymatrix.html#a8b56cdf252a15da3e211b558abd46c1b" title="matrix column size">n</a>, 
          matA.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>, matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, 0.0, newmat.array, newmat.m );
  
  matB.<a class="code" href="class__dsymatrix.html#a09e5b4ca8579bef58e01e80c22e799b1">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="afc27e131bd6f697e469e5cfd92b08605"></a><!-- doxytag: member="dgematrix::operator*" ref="afc27e131bd6f697e469e5cfd92b08605" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix*dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html#l00126">126</a> of file <a class="el" href="dgematrix-dgbmatrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" 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>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;newmat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> k=std::max(<span class="keywordtype">long</span>(0),j-matB.<a class="code" href="classdgbmatrix.html#a0b4d519e95ddf780bf1151a42018d646" title="upper band width">ku</a>); k&lt;std::min(matB.<a class="code" href="classdgbmatrix.html#af8a3e6bc4557b151f0049b8224f54580" title="matrix row size">m</a>,j+matB.<a class="code" href="classdgbmatrix.html#aeeb3e79431677905a4ece19c6616edd4" title="lower band width">kl</a>+1); k++){
        newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)+=matA(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,k)*matB(k,j);
      }
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a01d320b56cddc71f5b88000c71b20683"></a><!-- doxytag: member="dgematrix::operator*" ref="a01d320b56cddc71f5b88000c71b20683" args="(const dgematrix &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="classdgematrix.html">dgematrix</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>dgematrix*_dgbmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00131">131</a> of file <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" 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>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;newmat.<a class="code" href="class__dgematrix.html#a4c07ace0e1899332aa2d620af184dadf" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;newmat.n; j++){
      <span class="keywordflow">for</span>(<span class="keywordtype">long</span> k=std::max(<span class="keywordtype">long</span>(0),j-matB.<a class="code" href="class__dgbmatrix.html#a116dadc8ed5246ee0b4cd0a9fffc53ea" title="upper band width">ku</a>); k&lt;std::min(matB.<a class="code" href="class__dgbmatrix.html#a587a07ecbbfc6bbdb0e05574ea6b088a" title="matrix row size">m</a>,j+matB.<a class="code" href="class__dgbmatrix.html#aeea4fdf76630ca1b51f93c5bed64662c" title="lower band width">kl</a>+1); k++){
        newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)+=matA(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,k)*matB(k,j);
      }
    }
  }
  
  matB.<a class="code" href="class__dgbmatrix.html#a170fdd995797f5d394863105e658df9e">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a072f5fb853acdd9026cfe01c6405edff"></a><!-- doxytag: member="dgematrix::operator*" ref="a072f5fb853acdd9026cfe01c6405edff" args="(const dgematrix &amp;, const dgsmatrix &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="classdgematrix.html">dgematrix</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>dgematrix*dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgsmatrix_8hpp_source.html#l00043">43</a> of file <a class="el" href="dgematrix-dgsmatrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, matB.<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=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++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,it-&gt;j) += matA(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,it-&gt;<a class="code" href="class__dgematrix.html#ab4e0cbe78518b4af9da89406bb2b9d19">i</a>)*it-&gt;v;
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5b97afc135e164fdf4a4eb7510eac186"></a><!-- doxytag: member="dgematrix::operator*" ref="a5b97afc135e164fdf4a4eb7510eac186" args="(const dgematrix &amp;, const _dgsmatrix &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="classdgematrix.html">dgematrix</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>dgematrix*_dgsmatrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-__dgsmatrix_8hpp_source.html#l00047">47</a> of file <a class="el" href="dgematrix-__dgsmatrix_8hpp_source.html">dgematrix-_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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdgematrix.html" title="Real Double-precision General Dence Matrix Class.">dgematrix</a> newmat(matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, matB.<a class="code" href="class__dgsmatrix.html#a8457e7af3a1e2ff7d8c3238260d59936" title="matrix column size">n</a>);
  newmat.zero();
  <span class="keywordflow">for</span>(std::vector&lt;dcomponent&gt;::const_iterator it=matB.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.begin(); it!=matB.<a class="code" href="class__dgsmatrix.html#a65ae5bc0001de27f9fe1fb13870b4a30" title="matrix data">data</a>.end(); it++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
      newmat(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,it-&gt;j) += matA(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,it-&gt;<a class="code" href="class__dgematrix.html#ab4e0cbe78518b4af9da89406bb2b9d19">i</a>)*it-&gt;v;
    }
  }
  
  matB.<a class="code" href="class__dgsmatrix.html#aa2851712fa4f99d8d608815ef274a362">destroy</a>();
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a823a6e0ac96a91c4125dfe9176bf50bf"></a><!-- doxytag: member="dgematrix::operator*" ref="a823a6e0ac96a91c4125dfe9176bf50bf" args="(const dgematrix &amp;, const dssmatrix &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="classdgematrix.html">dgematrix</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="a31f49416412e7cf5dac77b125528c7e7"></a><!-- doxytag: member="dgematrix::operator*" ref="a31f49416412e7cf5dac77b125528c7e7" args="(const dgematrix &amp;, const _dssmatrix &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="classdgematrix.html">dgematrix</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="a96cef2e30ffdac1f0a8b216ed72c3ff1"></a><!-- doxytag: member="dgematrix::operator*" ref="a96cef2e30ffdac1f0a8b216ed72c3ff1" args="(const dgematrix &amp;, const double &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="classdgematrix.html">dgematrix</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>dgematrix*double operator </p>

<p>Definition at line <a class="el" href="dgematrix-double_8hpp_source.html#l00023">23</a> of file <a class="el" href="dgematrix-double_8hpp_source.html">dgematrix-double.hpp</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(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ newmat.array[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]*d; }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ad67d18dcc37878f9c2e7689ea4a812e0"></a><!-- doxytag: member="dgematrix::operator/" ref="ad67d18dcc37878f9c2e7689ea4a812e0" args="(const dgematrix &amp;, const double &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="classdgematrix.html">dgematrix</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>dgematrix/double operator </p>

<p>Definition at line <a class="el" href="dgematrix-double_8hpp_source.html#l00033">33</a> of file <a class="el" href="dgematrix-double_8hpp_source.html">dgematrix-double.hpp</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(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ newmat.array[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]/d; }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<a class="anchor" id="adb2c3c722a6f3ebf83118885b41e6e57"></a><!-- doxytag: member="dgematrix::operator%" ref="adb2c3c722a6f3ebf83118885b41e6e57" args="(const dgematrix &amp;, const dgematrix &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class__drovector.html">_drovector</a> operator% </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classdgematrix.html">dgematrix</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>dgematrixdgematrix operator </p>

<p>Definition at line <a class="el" href="dgematrix-dgematrix_8hpp_source.html#l00138">138</a> of file <a class="el" href="dgematrix-dgematrix_8hpp_source.html">dgematrix-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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" 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="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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 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="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a> &lt;&lt; <span class="stringliteral">&quot;x&quot;</span> &lt;&lt; matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" 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="classdrovector.html" title="Real Double-precision Row Vector Class.">drovector</a> newvec( matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a> );
  newvec.zero();
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> j=0; j&lt;matA.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; j++){
    <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;matA.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){
      newvec(j) +=matA(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j)*matB(<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>,j);
    }
  }
  
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newvec);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a5ccd265b22f9c4060eebbb920001015f"></a><!-- doxytag: member="dgematrix::operator*" ref="a5ccd265b22f9c4060eebbb920001015f" args="(const double &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 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="classdgematrix.html">dgematrix</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*dgematrix operator </p>

<p>Definition at line <a class="el" href="double-dgematrix_8hpp_source.html#l00003">3</a> of file <a class="el" href="double-dgematrix_8hpp_source.html">double-dgematrix.hpp</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(mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>, mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>);
  <span class="keywordflow">for</span>(<span class="keywordtype">long</span> <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>=0; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>&lt;mat.<a class="code" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2" title="matrix row size">m</a>*mat.<a class="code" href="classdgematrix.html#a60d26e3a499a235310e59a0aebbe0d0a" title="matrix column size">n</a>; <a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>++){ newmat.array[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>] =d*mat.<a class="code" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01" title="1D array to store matrix data">array</a>[<a class="code" href="classdgematrix.html#a67f90160391aa6dbecc09b8eb6e23246">i</a>]; }
  <span class="keywordflow">return</span> <a class="code" href="classdgematrix.html#ad6ad4242437ba67e1eb4ba01a92ab8a4">_</a>(newmat);
}
</pre></div>
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a3852aa1d0b876a74c1070e982cf388a2"></a><!-- doxytag: member="dgematrix::m" ref="a3852aa1d0b876a74c1070e982cf388a2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classdgematrix.html#a3852aa1d0b876a74c1070e982cf388a2">dgematrix::m</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>matrix row size </p>

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

<p>Referenced by <a class="el" href="dgematrix-misc_8hpp_source.html#l00157">_()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00041">chsign()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00124">col()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00048">copy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00052">damax()</a>, <a class="el" href="dgbmatrix-lapack_8hpp_source.html#l00005">dgbmatrix::dgbsv()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00350">dgeev()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00062">dgels()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00261">dgelss()</a>, <a class="el" href="dgematrix-constructor_8hpp_source.html#l00003">dgematrix()</a>, <a class="el" href="dgematrix__small-constructors_8hpp_source.html#l00012">dgematrix_small&lt; m, n &gt;::dgematrix_small()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00006">dgesv()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00743">dgesvd()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00529">dggev()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00773">dgglse()</a>, <a class="el" href="dsymatrix-lapack_8hpp_source.html#l00006">dsymatrix::dsysv()</a>, <a class="el" href="__dgematrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00043">idamax()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00023">identity()</a>, <a class="el" href="dgematrix-dgematrix_8hpp_source.html#l00138">operator%()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__dcovector-__drovector_8hpp_source.html#l00003">operator*()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="__dgbmatrix-dgematrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00003">operator+=()</a>, <a class="el" href="__dgbmatrix-__dsymatrix_8hpp_source.html#l00031">operator-()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00026">operator-=()</a>, <a class="el" href="dgematrix-double_8hpp_source.html#l00033">operator/()</a>, <a class="el" href="dgematrix-double_8hpp_source.html#l00011">operator/=()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00063">operator&lt;&lt;()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00099">read()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00078">resize()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00106">row()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00041">set()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00064">shallow_copy()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">swap()</a>, <a class="el" href="__dgematrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="dgematrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00079">write()</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00015">zero()</a>.</p>

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

<p>matrix column size </p>

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

<p>Referenced by <a class="el" href="dgematrix-misc_8hpp_source.html#l00157">_()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00041">chsign()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00124">col()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00048">copy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00052">damax()</a>, <a class="el" href="dgbmatrix-lapack_8hpp_source.html#l00005">dgbmatrix::dgbsv()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00350">dgeev()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00062">dgels()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00261">dgelss()</a>, <a class="el" href="dgematrix-constructor_8hpp_source.html#l00003">dgematrix()</a>, <a class="el" href="dgematrix__small-constructors_8hpp_source.html#l00012">dgematrix_small&lt; m, n &gt;::dgematrix_small()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00006">dgesv()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00743">dgesvd()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00529">dggev()</a>, <a class="el" href="dsymatrix-lapack_8hpp_source.html#l00006">dsymatrix::dsysv()</a>, <a class="el" href="__dgematrix-calc_8hpp_source.html#l00019">i()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00043">idamax()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00023">identity()</a>, <a class="el" href="dgematrix-dgematrix_8hpp_source.html#l00138">operator%()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="__dcovector-__drovector_8hpp_source.html#l00003">operator*()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00048">operator*=()</a>, <a class="el" href="__dgbmatrix-dgematrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00003">operator+=()</a>, <a class="el" href="__dgbmatrix-__dsymatrix_8hpp_source.html#l00031">operator-()</a>, <a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html#l00026">operator-=()</a>, <a class="el" href="dgematrix-double_8hpp_source.html#l00033">operator/()</a>, <a class="el" href="dgematrix-double_8hpp_source.html#l00011">operator/=()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00063">operator&lt;&lt;()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00099">read()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00078">resize()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00106">row()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00041">set()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00064">shallow_copy()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">swap()</a>, <a class="el" href="__dgematrix-calc_8hpp_source.html#l00003">t()</a>, <a class="el" href="dgematrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00079">write()</a>, and <a class="el" href="dgematrix-misc_8hpp_source.html#l00015">zero()</a>.</p>

</div>
</div>
<a class="anchor" id="a006ce8c2f9add380bcb2816fdb13aa01"></a><!-- doxytag: member="dgematrix::array" ref="a006ce8c2f9add380bcb2816fdb13aa01" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* <a class="el" href="classdgematrix.html#a006ce8c2f9add380bcb2816fdb13aa01">dgematrix::array</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Referenced by <a class="el" href="dgematrix-misc_8hpp_source.html#l00157">_()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00041">chsign()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00048">copy()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00052">damax()</a>, <a class="el" href="dgbmatrix-lapack_8hpp_source.html#l00005">dgbmatrix::dgbsv()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00350">dgeev()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00062">dgels()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00261">dgelss()</a>, <a class="el" href="dgematrix-constructor_8hpp_source.html#l00003">dgematrix()</a>, <a class="el" href="dgematrix__small-constructors_8hpp_source.html#l00012">dgematrix_small&lt; m, n &gt;::dgematrix_small()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00006">dgesv()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00743">dgesvd()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00529">dggev()</a>, <a class="el" href="dgematrix-lapack_8hpp_source.html#l00773">dgglse()</a>, <a class="el" href="dsymatrix-lapack_8hpp_source.html#l00006">dsymatrix::dsysv()</a>, <a class="el" href="dgematrix-calc_8hpp_source.html#l00043">idamax()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00023">identity()</a>, <a class="el" href="__dgematrix-__dgematrix_8hpp_source.html#l00041">operator*()</a>, <a class="el" href="dgematrix-__dgematrix_8hpp_source.html#l00053">operator*=()</a>, <a class="el" href="__dgematrix-dgematrix_8hpp_source.html#l00003">operator+()</a>, <a class="el" href="dgematrix-__dgematrix_8hpp_source.html#l00015">operator+=()</a>, <a class="el" href="__dgematrix-dgematrix_8hpp_source.html#l00021">operator-()</a>, <a class="el" href="dgematrix-__dgematrix_8hpp_source.html#l00034">operator-=()</a>, <a class="el" href="dgematrix-double_8hpp_source.html#l00033">operator/()</a>, <a class="el" href="dgematrix-double_8hpp_source.html#l00011">operator/=()</a>, <a class="el" href="dgematrix-dgematrix_8hpp_source.html#l00003">operator=()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00078">resize()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00064">shallow_copy()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">swap()</a>, <a class="el" href="dgematrix-cast_8hpp_source.html#l00003">to_zgematrix()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00015">zero()</a>, and <a class="el" href="dgematrix-constructor_8hpp_source.html#l00085">~dgematrix()</a>.</p>

</div>
</div>
<a class="anchor" id="a66ff2629b52ff5d1a36ff70d4828d827"></a><!-- doxytag: member="dgematrix::darray" ref="a66ff2629b52ff5d1a36ff70d4828d827" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double** <a class="el" href="classdgematrix.html#a66ff2629b52ff5d1a36ff70d4828d827">dgematrix::darray</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

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

<p>Referenced by <a class="el" href="dgematrix-misc_8hpp_source.html#l00157">_()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00003">clear()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00048">copy()</a>, <a class="el" href="dgematrix-constructor_8hpp_source.html#l00003">dgematrix()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00003">operator()()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00078">resize()</a>, <a class="el" href="dgematrix-io_8hpp_source.html#l00041">set()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00064">shallow_copy()</a>, <a class="el" href="dgematrix-misc_8hpp_source.html#l00146">swap()</a>, and <a class="el" href="dgematrix-constructor_8hpp_source.html#l00085">~dgematrix()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="dgematrix_8hpp_source.html">dgematrix.hpp</a></li>
<li><a class="el" href="dgematrix-__dgbmatrix_8hpp_source.html">dgematrix-_dgbmatrix.hpp</a></li>
<li><a class="el" href="dgematrix-__dgematrix_8hpp_source.html">dgematrix-_dgematrix.hpp</a></li>
<li><a class="el" href="dgematrix-__dsymatrix_8hpp_source.html">dgematrix-_dsymatrix.hpp</a></li>
<li><a class="el" href="dgematrix-cast_8hpp_source.html">dgematrix-cast.hpp</a></li>
<li><a class="el" href="dgematrix-constructor_8hpp_source.html">dgematrix-constructor.hpp</a></li>
<li><a class="el" href="dgematrix-dgbmatrix_8hpp_source.html">dgematrix-dgbmatrix.hpp</a></li>
<li><a class="el" href="dgematrix-dgematrix_8hpp_source.html">dgematrix-dgematrix.hpp</a></li>
<li><a class="el" href="dgematrix-double_8hpp_source.html">dgematrix-double.hpp</a></li>
<li><a class="el" href="dgematrix-dsymatrix_8hpp_source.html">dgematrix-dsymatrix.hpp</a></li>
<li><a class="el" href="dgematrix-io_8hpp_source.html">dgematrix-io.hpp</a></li>
<li><a class="el" href="dgematrix-lapack_8hpp_source.html">dgematrix-lapack.hpp</a></li>
<li><a class="el" href="dgematrix-misc_8hpp_source.html">dgematrix-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>
