Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 247b28499c443e092731ffba814075f2 > files > 703

mpqc-html-2.3.1-9mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>MPQC: sc::SCMatrix Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;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>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><b>sc</b>::<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a>
  </div>
</div>
<div class="contents">
<h1>sc::SCMatrix Class Reference</h1><!-- doxytag: class="sc::SCMatrix" --><!-- doxytag: inherits="sc::DescribedClass" -->The <a class="el" href="classsc_1_1SCMatrix.html" title="The SCMatrix class is the abstract base class for general double valued n by m matrices...">SCMatrix</a> class is the abstract base class for general double valued n by m matrices.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="abstract_8h_source.html">abstract.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for sc::SCMatrix:</div>
<div class="dynsection">

<p><center><img src="classsc_1_1SCMatrix.png" usemap="#sc::SCMatrix_map" border="0" alt=""></center>
<map name="sc::SCMatrix_map">
<area href="classsc_1_1DescribedClass.html" alt="sc::DescribedClass" shape="rect" coords="0,112,120,136">
<area href="classsc_1_1RefCount.html" alt="sc::RefCount" shape="rect" coords="0,56,120,80">
<area href="classsc_1_1Identity.html" alt="sc::Identity" shape="rect" coords="0,0,120,24">
</map>
</div>

<p>
<a href="classsc_1_1SCMatrix-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><b>Transform</b> { <b>NormalTransform</b> =  0, 
<b>TransposeTransform</b> =  1
 }</td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="243d33b49259876bac795f2903bda38c"></a><!-- doxytag: member="sc::SCMatrix::SCMatrix" ref="243d33b49259876bac795f2903bda38c" args="(const RefSCDimension &amp;, const RefSCDimension &amp;, SCMatrixKit *)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>SCMatrix</b> (const <a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a> &amp;, const <a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a> &amp;, <a class="el" href="classsc_1_1SCMatrixKit.html">SCMatrixKit</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f9e1bfe69b72bce5e68aa7ec4cc112fd"></a><!-- doxytag: member="sc::SCMatrix::save" ref="f9e1bfe69b72bce5e68aa7ec4cc112fd" args="(StateOut &amp;)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#f9e1bfe69b72bce5e68aa7ec4cc112fd">save</a> (<a class="el" href="classsc_1_1StateOut.html">StateOut</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Save and restore this in an implementation independent way. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3c090cad7b55d7a3ca5e67ede030d806"></a><!-- doxytag: member="sc::SCMatrix::restore" ref="3c090cad7b55d7a3ca5e67ede030d806" args="(StateIn &amp;)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>restore</b> (<a class="el" href="classsc_1_1StateIn.html">StateIn</a> &amp;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b2d919fa2886ce85fa73a815206e5aa6"></a><!-- doxytag: member="sc::SCMatrix::kit" ref="b2d919fa2886ce85fa73a815206e5aa6" args="() const " -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCMatrixKit.html">SCMatrixKit</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#b2d919fa2886ce85fa73a815206e5aa6">kit</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <a class="el" href="classsc_1_1SCMatrixKit.html" title="The SCMatrixKit abstract class acts as a factory for producing matrices.">SCMatrixKit</a> used to create this object. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b53e599abd6848cbff0f8754e1355756"></a><!-- doxytag: member="sc::SCMatrix::nrow" ref="b53e599abd6848cbff0f8754e1355756" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#b53e599abd6848cbff0f8754e1355756">nrow</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the number of rows. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="db3622d518bf4cf40257b2a1f5d925bb"></a><!-- doxytag: member="sc::SCMatrix::ncol" ref="db3622d518bf4cf40257b2a1f5d925bb" args="() const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#db3622d518bf4cf40257b2a1f5d925bb">ncol</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the number of columns. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2f22a56fac21238ffbd6825e52edeb3e"></a><!-- doxytag: member="sc::SCMatrix::maxabs" ref="2f22a56fac21238ffbd6825e52edeb3e" args="() const " -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#2f22a56fac21238ffbd6825e52edeb3e">maxabs</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the maximum absolute value element. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="15939748bbfb22e103a5b9500bf34dec"></a><!-- doxytag: member="sc::SCMatrix::randomize" ref="15939748bbfb22e103a5b9500bf34dec" args="()" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#15939748bbfb22e103a5b9500bf34dec">randomize</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign each element to a random number between -1 and 1. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8f6384b994e748f8ac80960a93e71892"></a><!-- doxytag: member="sc::SCMatrix::assign" ref="8f6384b994e748f8ac80960a93e71892" args="(double val)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#8f6384b994e748f8ac80960a93e71892">assign</a> (double val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set all elements to val. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="85f8235f02096bc045faea7fc15d2dec"></a><!-- doxytag: member="sc::SCMatrix::assign" ref="85f8235f02096bc045faea7fc15d2dec" args="(const double *m)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#85f8235f02096bc045faea7fc15d2dec">assign</a> (const double *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign element i, j to m[ir*nrow()+j]. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9fb69c73cfec9a0773bc150d0f63e399"></a><!-- doxytag: member="sc::SCMatrix::assign" ref="9fb69c73cfec9a0773bc150d0f63e399" args="(const double **m)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#9fb69c73cfec9a0773bc150d0f63e399">assign</a> (const double **m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign element i, j to m[i][j]. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b8cff92ec65795af95a6d5f274326a8c"></a><!-- doxytag: member="sc::SCMatrix::assign" ref="b8cff92ec65795af95a6d5f274326a8c" args="(SCMatrix *m)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#b8cff92ec65795af95a6d5f274326a8c">assign</a> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make this have the same elements as m. The dimensions must match. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="72826c3f83a5ccb809681f71f071bce7"></a><!-- doxytag: member="sc::SCMatrix::assign_val" ref="72826c3f83a5ccb809681f71f071bce7" args="(double val)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#72826c3f83a5ccb809681f71f071bce7">assign_val</a> (double val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Overridden to implement to assign members. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4d444939950feb4945b1e57088eb5cd7"></a><!-- doxytag: member="sc::SCMatrix::assign_p" ref="4d444939950feb4945b1e57088eb5cd7" args="(const double *m)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>assign_p</b> (const double *m)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="739efe92ae7738e10b684ba771e688d1"></a><!-- doxytag: member="sc::SCMatrix::assign_pp" ref="739efe92ae7738e10b684ba771e688d1" args="(const double **m)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>assign_pp</b> (const double **m)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="47f8ddf27cbc46927976189749648407"></a><!-- doxytag: member="sc::SCMatrix::assign_r" ref="47f8ddf27cbc46927976189749648407" args="(SCMatrix *m)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>assign_r</b> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#410e1c2ef1456e08d0532ed5a0a6074c">convert</a> (double *) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Like the assign members, but these write values to the arguments.  <a href="#410e1c2ef1456e08d0532ed5a0a6074c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="09d5360edb7a595a852f00841940f470"></a><!-- doxytag: member="sc::SCMatrix::convert" ref="09d5360edb7a595a852f00841940f470" args="(double **) const " -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>convert</b> (double **) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#adffa23ee7908f4acaef184277e3fb79">convert</a> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert an <a class="el" href="classsc_1_1SCMatrix.html" title="The SCMatrix class is the abstract base class for general double valued n by m matrices...">SCMatrix</a> of a different specialization to this specialization and possibly accumulate the data.  <a href="#adffa23ee7908f4acaef184277e3fb79"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6a08dbe9d031e31b25e050eeb80cef63"></a><!-- doxytag: member="sc::SCMatrix::convert_accumulate" ref="6a08dbe9d031e31b25e050eeb80cef63" args="(SCMatrix *)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>convert_accumulate</b> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f7ce36782868f67e95f6cabf221e6286"></a><!-- doxytag: member="sc::SCMatrix::scale" ref="f7ce36782868f67e95f6cabf221e6286" args="(double val)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#f7ce36782868f67e95f6cabf221e6286">scale</a> (double val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multiply all elements by val. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="66d26bbf7c13a4982f6a0bd000f04024"></a><!-- doxytag: member="sc::SCMatrix::scale_diagonal" ref="66d26bbf7c13a4982f6a0bd000f04024" args="(double val)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#66d26bbf7c13a4982f6a0bd000f04024">scale_diagonal</a> (double val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scale the diagonal elements by val. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c4c3728b40ebdf25f6584f95a2260ec1"></a><!-- doxytag: member="sc::SCMatrix::shift_diagonal" ref="c4c3728b40ebdf25f6584f95a2260ec1" args="(double val)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#c4c3728b40ebdf25f6584f95a2260ec1">shift_diagonal</a> (double val)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shift the diagonal elements by val. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="96b3b22d21da2c29c630081447823e38"></a><!-- doxytag: member="sc::SCMatrix::unit" ref="96b3b22d21da2c29c630081447823e38" args="()" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#96b3b22d21da2c29c630081447823e38">unit</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make this equal to the unit matrix. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="16c6d6cd6f75863884ab37926d8afe12"></a><!-- doxytag: member="sc::SCMatrix::copy" ref="16c6d6cd6f75863884ab37926d8afe12" args="()" -->
virtual <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#16c6d6cd6f75863884ab37926d8afe12">copy</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a matrix with the same dimension and same elements. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cd2bc2ff54eeae2f926312138cba5c38"></a><!-- doxytag: member="sc::SCMatrix::clone" ref="cd2bc2ff54eeae2f926312138cba5c38" args="()" -->
virtual <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#cd2bc2ff54eeae2f926312138cba5c38">clone</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a matrix with the same dimension but uninitialized memory. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="08da864f11cdb65fd629e3d2af8f8fc3"></a><!-- doxytag: member="sc::SCMatrix::rowdim" ref="08da864f11cdb65fd629e3d2af8f8fc3" args="() const " -->
<a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#08da864f11cdb65fd629e3d2af8f8fc3">rowdim</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the row or column dimension. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f269113ce98c8888958c890a02f0cca8"></a><!-- doxytag: member="sc::SCMatrix::coldim" ref="f269113ce98c8888958c890a02f0cca8" args="() const " -->
<a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>coldim</b> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="96ff6f7071e04cf098c76ac6481ac499"></a><!-- doxytag: member="sc::SCMatrix::get_element" ref="96ff6f7071e04cf098c76ac6481ac499" args="(int, int) const =0" -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#96ff6f7071e04cf098c76ac6481ac499">get_element</a> (int, int) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return or modify an element. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="291b26164145c1b3bbcebe160e28b9e7"></a><!-- doxytag: member="sc::SCMatrix::set_element" ref="291b26164145c1b3bbcebe160e28b9e7" args="(int, int, double)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_element</b> (int, int, double)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="74d2a66259c6d6e6856517751cb33085"></a><!-- doxytag: member="sc::SCMatrix::accumulate_element" ref="74d2a66259c6d6e6856517751cb33085" args="(int, int, double)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_element</b> (int, int, double)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#4c7506e004b4a3e6fd89afc8e4c694d3">get_subblock</a> (int br, int er, int bc, int ec)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a subblock of this.  <a href="#4c7506e004b4a3e6fd89afc8e4c694d3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="63186166dee413c152b3633e06067dae"></a><!-- doxytag: member="sc::SCMatrix::assign_subblock" ref="63186166dee413c152b3633e06067dae" args="(SCMatrix *m, int, int, int, int, int=0, int=0)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#63186166dee413c152b3633e06067dae">assign_subblock</a> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m, int, int, int, int, int=0, int=0)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign m to a subblock of this. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1d54e4fe65f0be1678421f95383c9513"></a><!-- doxytag: member="sc::SCMatrix::accumulate_subblock" ref="1d54e4fe65f0be1678421f95383c9513" args="(SCMatrix *m, int, int, int, int, int=0, int=0)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#1d54e4fe65f0be1678421f95383c9513">accumulate_subblock</a> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m, int, int, int, int, int=0, int=0)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sum m into a subblock of this. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d1f66a18375cd713a4713180cecf9eaf"></a><!-- doxytag: member="sc::SCMatrix::get_row" ref="d1f66a18375cd713a4713180cecf9eaf" args="(int i)=0" -->
virtual <a class="el" href="classsc_1_1SCVector.html">SCVector</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#d1f66a18375cd713a4713180cecf9eaf">get_row</a> (int i)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a row or column of this. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="47855f346293758761ce69e6eb27818a"></a><!-- doxytag: member="sc::SCMatrix::get_column" ref="47855f346293758761ce69e6eb27818a" args="(int i)=0" -->
virtual <a class="el" href="classsc_1_1SCVector.html">SCVector</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_column</b> (int i)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fbaa7ff9fa30518029c8049397fdfc97"></a><!-- doxytag: member="sc::SCMatrix::assign_row" ref="fbaa7ff9fa30518029c8049397fdfc97" args="(SCVector *v, int i)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#fbaa7ff9fa30518029c8049397fdfc97">assign_row</a> (<a class="el" href="classsc_1_1SCVector.html">SCVector</a> *v, int i)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign v to a row or column of this. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7789c7fa6223b3bbeb4fc6637654dbac"></a><!-- doxytag: member="sc::SCMatrix::assign_column" ref="7789c7fa6223b3bbeb4fc6637654dbac" args="(SCVector *v, int i)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>assign_column</b> (<a class="el" href="classsc_1_1SCVector.html">SCVector</a> *v, int i)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="958b851b6b363eaff71cbb5101cbbdd5"></a><!-- doxytag: member="sc::SCMatrix::accumulate_row" ref="958b851b6b363eaff71cbb5101cbbdd5" args="(SCVector *v, int i)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#958b851b6b363eaff71cbb5101cbbdd5">accumulate_row</a> (<a class="el" href="classsc_1_1SCVector.html">SCVector</a> *v, int i)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sum v to a row or column of this. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="330a2e18906c884ccdffe6688b041025"></a><!-- doxytag: member="sc::SCMatrix::accumulate_column" ref="330a2e18906c884ccdffe6688b041025" args="(SCVector *v, int i)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_column</b> (<a class="el" href="classsc_1_1SCVector.html">SCVector</a> *v, int i)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e1ece8cb85f61b2579293478f1f71f6a"></a><!-- doxytag: member="sc::SCMatrix::accumulate" ref="e1ece8cb85f61b2579293478f1f71f6a" args="(const SCMatrix *m)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#e1ece8cb85f61b2579293478f1f71f6a">accumulate</a> (const <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sum m into this. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6edfcccc7b3e296b978b6132e18c107b"></a><!-- doxytag: member="sc::SCMatrix::accumulate" ref="6edfcccc7b3e296b978b6132e18c107b" args="(const SymmSCMatrix *m)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate</b> (const <a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *m)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="04d6727b19cc665e93b18c65fa011d92"></a><!-- doxytag: member="sc::SCMatrix::accumulate" ref="04d6727b19cc665e93b18c65fa011d92" args="(const DiagSCMatrix *m)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate</b> (const <a class="el" href="classsc_1_1DiagSCMatrix.html">DiagSCMatrix</a> *m)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b5c2e1f38ca4a481fc885c0bd9dc716d"></a><!-- doxytag: member="sc::SCMatrix::accumulate" ref="b5c2e1f38ca4a481fc885c0bd9dc716d" args="(const SCVector *)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate</b> (const <a class="el" href="classsc_1_1SCVector.html">SCVector</a> *)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3f2510e060e0ddf97d3dce8c428bdcd6"></a><!-- doxytag: member="sc::SCMatrix::accumulate_outer_product" ref="3f2510e060e0ddf97d3dce8c428bdcd6" args="(SCVector *, SCVector *)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#3f2510e060e0ddf97d3dce8c428bdcd6">accumulate_outer_product</a> (<a class="el" href="classsc_1_1SCVector.html">SCVector</a> *, <a class="el" href="classsc_1_1SCVector.html">SCVector</a> *)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sum into this the products of various vectors or matrices. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1f7fcc77430f9c928039af9339abe957"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product" ref="1f7fcc77430f9c928039af9339abe957" args="(SCMatrix *m1, SCMatrix *m2)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product</b> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m1, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f478331769d0daaff570e51ecf8d2b2c"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product" ref="f478331769d0daaff570e51ecf8d2b2c" args="(SCMatrix *m1, SymmSCMatrix *m2)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product</b> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m1, <a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *m2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c85833c46a7599bb580b6c43451ffb7a"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product" ref="c85833c46a7599bb580b6c43451ffb7a" args="(SCMatrix *m1, DiagSCMatrix *m2)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product</b> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m1, <a class="el" href="classsc_1_1DiagSCMatrix.html">DiagSCMatrix</a> *m2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a592441c2a12acd0306288ba348406f4"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product" ref="a592441c2a12acd0306288ba348406f4" args="(SymmSCMatrix *m1, SCMatrix *m2)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product</b> (<a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *m1, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5c54eb9b480810afff9e49d6c631ca27"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product" ref="5c54eb9b480810afff9e49d6c631ca27" args="(DiagSCMatrix *m1, SCMatrix *m2)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product</b> (<a class="el" href="classsc_1_1DiagSCMatrix.html">DiagSCMatrix</a> *m1, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *m2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="71cb4fb005ed7955dbce1bc0baa471a3"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product" ref="71cb4fb005ed7955dbce1bc0baa471a3" args="(SymmSCMatrix *m1, SymmSCMatrix *m2)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product</b> (<a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *m1, <a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *m2)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="398766b2eddfaf77ef2fddb5f9be7a80"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product_rr" ref="398766b2eddfaf77ef2fddb5f9be7a80" args="(SCMatrix *, SCMatrix *)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product_rr</b> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dd59a563a6b1bd91b273fce3feb9a173"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product_rs" ref="dd59a563a6b1bd91b273fce3feb9a173" args="(SCMatrix *, SymmSCMatrix *)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product_rs</b> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *, <a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e6d14176bd1e999d317d289b268f2a26"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product_rd" ref="e6d14176bd1e999d317d289b268f2a26" args="(SCMatrix *, DiagSCMatrix *)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product_rd</b> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *, <a class="el" href="classsc_1_1DiagSCMatrix.html">DiagSCMatrix</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8bbfade499cafa560e41144806b10b36"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product_sr" ref="8bbfade499cafa560e41144806b10b36" args="(SymmSCMatrix *, SCMatrix *)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product_sr</b> (<a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e860a95ca57766dfaa268e8f5f561b19"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product_dr" ref="e860a95ca57766dfaa268e8f5f561b19" args="(DiagSCMatrix *, SCMatrix *)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product_dr</b> (<a class="el" href="classsc_1_1DiagSCMatrix.html">DiagSCMatrix</a> *, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1aab99d864923d61cdee1b75f4798fd9"></a><!-- doxytag: member="sc::SCMatrix::accumulate_product_ss" ref="1aab99d864923d61cdee1b75f4798fd9" args="(SymmSCMatrix *, SymmSCMatrix *)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>accumulate_product_ss</b> (<a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *, <a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d159a57fc9cede233e2db16cf75906b9"></a><!-- doxytag: member="sc::SCMatrix::transpose_this" ref="d159a57fc9cede233e2db16cf75906b9" args="()=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#d159a57fc9cede233e2db16cf75906b9">transpose_this</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Transpose this. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b6ba292937c46eb212ae9cd1c165ab1a"></a><!-- doxytag: member="sc::SCMatrix::trace" ref="b6ba292937c46eb212ae9cd1c165ab1a" args="()=0" -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#b6ba292937c46eb212ae9cd1c165ab1a">trace</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the trace. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0758d366e2833b666c515a8bb5c7eb7c"></a><!-- doxytag: member="sc::SCMatrix::invert_this" ref="0758d366e2833b666c515a8bb5c7eb7c" args="()=0" -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#0758d366e2833b666c515a8bb5c7eb7c">invert_this</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invert this. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6139e73b78dbe96c38861d7f669e19d1"></a><!-- doxytag: member="sc::SCMatrix::determ_this" ref="6139e73b78dbe96c38861d7f669e19d1" args="()=0" -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#6139e73b78dbe96c38861d7f669e19d1">determ_this</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the determinant of this. this is overwritten. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#887d10a99aa0d129eb4cdec2fc520c2a">svd_this</a> (<a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *U, <a class="el" href="classsc_1_1DiagSCMatrix.html">DiagSCMatrix</a> *sigma, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *V)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classsc_1_1Compute.html" title="The Compute class provides a means of keeping results up to date.">Compute</a> the singular value decomposition for this, possibly destroying this.  <a href="#887d10a99aa0d129eb4cdec2fc520c2a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2ff76a86f7a98800d15e53678d078f80"></a><!-- doxytag: member="sc::SCMatrix::solve_this" ref="2ff76a86f7a98800d15e53678d078f80" args="(SCVector *)=0" -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><b>solve_this</b> (<a class="el" href="classsc_1_1SCVector.html">SCVector</a> *)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6bcf6851ebf411d4f920e7b12c721592"></a><!-- doxytag: member="sc::SCMatrix::gen_invert_this" ref="6bcf6851ebf411d4f920e7b12c721592" args="()" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>gen_invert_this</b> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#5d8a1b6010f1ab8788bff65e98a55247">schmidt_orthog</a> (<a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *, int n)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Schmidt orthogonalize this.  <a href="#5d8a1b6010f1ab8788bff65e98a55247"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#4aaf43839f2e34692417af6417752528">schmidt_orthog_tol</a> (<a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *, double tol, double *res=0)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Schmidt orthogonalize this.  <a href="#4aaf43839f2e34692417af6417752528"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7176000028a66b120a7b953c973a13a1"></a><!-- doxytag: member="sc::SCMatrix::element_op" ref="7176000028a66b120a7b953c973a13a1" args="(const Ref&lt; SCElementOp &gt; &amp;)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#7176000028a66b120a7b953c973a13a1">element_op</a> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCElementOp.html">SCElementOp</a> &gt; &amp;)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform the element operation op on each element of this. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="217551309658fe5d56d90a4e04f4090c"></a><!-- doxytag: member="sc::SCMatrix::element_op" ref="217551309658fe5d56d90a4e04f4090c" args="(const Ref&lt; SCElementOp2 &gt; &amp;, SCMatrix *)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>element_op</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCElementOp2.html">SCElementOp2</a> &gt; &amp;, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="edcc5a7f51fd2e7a9348d8ecc413b9b9"></a><!-- doxytag: member="sc::SCMatrix::element_op" ref="edcc5a7f51fd2e7a9348d8ecc413b9b9" args="(const Ref&lt; SCElementOp3 &gt; &amp;, SCMatrix *, SCMatrix *)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>element_op</b> (const <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCElementOp3.html">SCElementOp3</a> &gt; &amp;, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *, <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="10ca860910a41bf0eb8c77bd5d0df750"></a><!-- doxytag: member="sc::SCMatrix::print" ref="10ca860910a41bf0eb8c77bd5d0df750" args="(std::ostream &amp;o=ExEnv::out0()) const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#10ca860910a41bf0eb8c77bd5d0df750">print</a> (std::ostream &amp;o=ExEnv::out0()) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print out the matrix. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6bb59eb019717d99826a5fec21ad438e"></a><!-- doxytag: member="sc::SCMatrix::print" ref="6bb59eb019717d99826a5fec21ad438e" args="(const char *title=0, std::ostream &amp;out=ExEnv::out0(), int=10) const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>print</b> (const char *title=0, std::ostream &amp;out=ExEnv::out0(), int=10) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="31d71a57efe1f595b0132604188e6666"></a><!-- doxytag: member="sc::SCMatrix::vprint" ref="31d71a57efe1f595b0132604188e6666" args="(const char *title=0, std::ostream &amp;out=ExEnv::out0(), int=10) const =0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>vprint</b> (const char *title=0, std::ostream &amp;out=ExEnv::out0(), int=10) const =0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="64f0c6616f47a4316b45512f749bb3ab"></a><!-- doxytag: member="sc::SCMatrix::messagegrp" ref="64f0c6616f47a4316b45512f749bb3ab" args="() const " -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1MessageGrp.html">MessageGrp</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#64f0c6616f47a4316b45512f749bb3ab">messagegrp</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the message group used by the matrix kit. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCMatrixSubblockIter.html">SCMatrixSubblockIter</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#d6e944b1d75de95b8fae0e51a225c65e">local_blocks</a> (SCMatrixSubblockIter::Access)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns iterators for the local (rapidly accessible) blocks used in this matrix.  <a href="#d6e944b1d75de95b8fae0e51a225c65e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="578dbfc448ebd5b314164f84477a779e"></a><!-- doxytag: member="sc::SCMatrix::all_blocks" ref="578dbfc448ebd5b314164f84477a779e" args="(SCMatrixSubblockIter::Access)=0" -->
virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCMatrixSubblockIter.html">SCMatrixSubblockIter</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsc_1_1SCMatrix.html#578dbfc448ebd5b314164f84477a779e">all_blocks</a> (SCMatrixSubblockIter::Access)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns iterators for the all blocks used in this matrix. <br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e907d4b91f791176cd9831a9b49b9853"></a><!-- doxytag: member="sc::SCMatrix::d1" ref="e907d4b91f791176cd9831a9b49b9853" args="" -->
<a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>d1</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a087ae465ee022a0ed7ce0d4c0436fc3"></a><!-- doxytag: member="sc::SCMatrix::d2" ref="a087ae465ee022a0ed7ce0d4c0436fc3" args="" -->
<a class="el" href="classsc_1_1RefSCDimension.html">RefSCDimension</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>d2</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6d0c294c32804072bbe29d4585dc0fab"></a><!-- doxytag: member="sc::SCMatrix::kit_" ref="6d0c294c32804072bbe29d4585dc0fab" args="" -->
<a class="el" href="classsc_1_1Ref.html">Ref</a>&lt; <a class="el" href="classsc_1_1SCMatrixKit.html">SCMatrixKit</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>kit_</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="classsc_1_1SCMatrix.html" title="The SCMatrix class is the abstract base class for general double valued n by m matrices...">SCMatrix</a> class is the abstract base class for general double valued n by m matrices. 
<p>
For symmetric matrices use <a class="el" href="classsc_1_1SymmSCMatrix.html" title="The SymmSCMatrix class is the abstract base class for symmetric double valued matrices...">SymmSCMatrix</a> and for diagonal matrices use <a class="el" href="classsc_1_1DiagSCMatrix.html" title="The SymmSCMatrix class is the abstract base class for diagonal double valued matrices...">DiagSCMatrix</a>. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="adffa23ee7908f4acaef184277e3fb79"></a><!-- doxytag: member="sc::SCMatrix::convert" ref="adffa23ee7908f4acaef184277e3fb79" args="(SCMatrix *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void sc::SCMatrix::convert           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convert an <a class="el" href="classsc_1_1SCMatrix.html" title="The SCMatrix class is the abstract base class for general double valued n by m matrices...">SCMatrix</a> of a different specialization to this specialization and possibly accumulate the data. 
<p>

</div>
</div><p>
<a class="anchor" name="410e1c2ef1456e08d0532ed5a0a6074c"></a><!-- doxytag: member="sc::SCMatrix::convert" ref="410e1c2ef1456e08d0532ed5a0a6074c" args="(double *) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void sc::SCMatrix::convert           </td>
          <td>(</td>
          <td class="paramtype">double *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Like the assign members, but these write values to the arguments. 
<p>

</div>
</div><p>
<a class="anchor" name="4c7506e004b4a3e6fd89afc8e4c694d3"></a><!-- doxytag: member="sc::SCMatrix::get_subblock" ref="4c7506e004b4a3e6fd89afc8e4c694d3" args="(int br, int er, int bc, int ec)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a>* sc::SCMatrix::get_subblock           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>br</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>er</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>ec</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a subblock of this. 
<p>
The subblock is defined as the rows starting at br and ending at er, and the columns beginning at bc and ending at ec. 
</div>
</div><p>
<a class="anchor" name="d6e944b1d75de95b8fae0e51a225c65e"></a><!-- doxytag: member="sc::SCMatrix::local_blocks" ref="d6e944b1d75de95b8fae0e51a225c65e" args="(SCMatrixSubblockIter::Access)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsc_1_1Ref.html">Ref</a>&lt;<a class="el" href="classsc_1_1SCMatrixSubblockIter.html">SCMatrixSubblockIter</a>&gt; sc::SCMatrix::local_blocks           </td>
          <td>(</td>
          <td class="paramtype">SCMatrixSubblockIter::Access&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns iterators for the local (rapidly accessible) blocks used in this matrix. 
<p>

</div>
</div><p>
<a class="anchor" name="5d8a1b6010f1ab8788bff65e98a55247"></a><!-- doxytag: member="sc::SCMatrix::schmidt_orthog" ref="5d8a1b6010f1ab8788bff65e98a55247" args="(SymmSCMatrix *, int n)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void sc::SCMatrix::schmidt_orthog           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Schmidt orthogonalize this. 
<p>
S is the overlap matrix. n is the number of columns to orthogonalize. 
</div>
</div><p>
<a class="anchor" name="4aaf43839f2e34692417af6417752528"></a><!-- doxytag: member="sc::SCMatrix::schmidt_orthog_tol" ref="4aaf43839f2e34692417af6417752528" args="(SymmSCMatrix *, double tol, double *res=0)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int sc::SCMatrix::schmidt_orthog_tol           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1SymmSCMatrix.html">SymmSCMatrix</a> *&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>tol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&nbsp;</td>
          <td class="paramname"> <em>res</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Schmidt orthogonalize this. 
<p>
S is the overlap matrix. tol is the tolerance. The number of linearly independent vectors is returned. 
</div>
</div><p>
<a class="anchor" name="887d10a99aa0d129eb4cdec2fc520c2a"></a><!-- doxytag: member="sc::SCMatrix::svd_this" ref="887d10a99aa0d129eb4cdec2fc520c2a" args="(SCMatrix *U, DiagSCMatrix *sigma, SCMatrix *V)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void sc::SCMatrix::svd_this           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *&nbsp;</td>
          <td class="paramname"> <em>U</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classsc_1_1DiagSCMatrix.html">DiagSCMatrix</a> *&nbsp;</td>
          <td class="paramname"> <em>sigma</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classsc_1_1SCMatrix.html">SCMatrix</a> *&nbsp;</td>
          <td class="paramname"> <em>V</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="classsc_1_1Compute.html" title="The Compute class provides a means of keeping results up to date.">Compute</a> the singular value decomposition for this, possibly destroying this. 
<p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="abstract_8h_source.html">abstract.h</a></ul>
</div>
<hr>
<address>
<small>

Generated at Wed Oct 14 14:12:16 2009 for <a
href="http://www.mpqc.org">MPQC</a>
2.3.1 using the documentation package <a
href="http://www.doxygen.org">Doxygen</a>
1.5.9.

</small>
</address>
</body>
</html>