Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > contrib > by-pkgid > 263386785cefb9ae5d63b926d214d809 > files > 9

mpqc-2.1.2-4mdk.ppc.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>abstract.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.5 on Mon Oct 14 14:16:35 2002 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>abstract.h</h1><div class="fragment"><pre>00001 <font class="comment">//</font>
00002 <font class="comment">// abstract.h</font>
00003 <font class="comment">//</font>
00004 <font class="comment">// Copyright (C) 1996 Limit Point Systems, Inc.</font>
00005 <font class="comment">//</font>
00006 <font class="comment">// Author: Curtis Janssen &lt;cljanss@limitpt.com&gt;</font>
00007 <font class="comment">// Maintainer: LPS</font>
00008 <font class="comment">//</font>
00009 <font class="comment">// This file is part of the SC Toolkit.</font>
00010 <font class="comment">//</font>
00011 <font class="comment">// The SC Toolkit is free software; you can redistribute it and/or modify</font>
00012 <font class="comment">// it under the terms of the GNU Library General Public License as published by</font>
00013 <font class="comment">// the Free Software Foundation; either version 2, or (at your option)</font>
00014 <font class="comment">// any later version.</font>
00015 <font class="comment">//</font>
00016 <font class="comment">// The SC Toolkit is distributed in the hope that it will be useful,</font>
00017 <font class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</font>
00018 <font class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</font>
00019 <font class="comment">// GNU Library General Public License for more details.</font>
00020 <font class="comment">//</font>
00021 <font class="comment">// You should have received a copy of the GNU Library General Public License</font>
00022 <font class="comment">// along with the SC Toolkit; see the file COPYING.LIB.  If not, write to</font>
00023 <font class="comment">// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.</font>
00024 <font class="comment">//</font>
00025 <font class="comment">// The U.S. Government is granted a limited license as per AL 91-7.</font>
00026 <font class="comment">//</font>
00027 
00028 <font class="preprocessor">#ifndef _math_scmat_abstract_h</font>
00029 <font class="preprocessor"></font><font class="preprocessor">#define _math_scmat_abstract_h</font>
00030 <font class="preprocessor"></font>
00031 <font class="preprocessor">#ifdef __GNUC__</font>
00032 <font class="preprocessor"></font><font class="preprocessor">#pragma interface</font>
00033 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00034 <font class="preprocessor"></font>
00035 <font class="preprocessor">#include &lt;util/group/message.h&gt;</font>
00036 
00037 <font class="preprocessor">#include &lt;util/state/state.h&gt;</font>
00038 <font class="preprocessor">#include &lt;math/scmat/dim.h&gt;</font>
00039 <font class="preprocessor">#include &lt;math/scmat/block.h&gt;</font>
00040 <font class="preprocessor">#include &lt;iostream&gt;</font>
00041 
00042 <font class="keyword">namespace </font>sc {
00043 
00044 <font class="keyword">class </font>SCMatrix;
00045 <font class="keyword">class </font>SymmSCMatrix;
00046 <font class="keyword">class </font>DiagSCMatrix;
00047 <font class="keyword">class </font>SCVector;
00048 
00049 <font class="keyword">class </font>SCElementOp;
00050 <font class="keyword">class </font>SCElementOp2;
00051 <font class="keyword">class </font>SCElementOp3;
00052 
00053 <font class="keyword">class </font>RefSCDimension;
00054 
<a name="l00058"></a><a class="code" href="class_sc__SCMatrixKit.html">00058</a> <font class="keyword">class </font>SCMatrixKit: <font class="keyword">public</font> DescribedClass {
00059   <font class="keyword">protected</font>:
00060     Ref&lt;MessageGrp&gt; grp_;
00061     
00062   <font class="keyword">public</font>:
00063     SCMatrixKit();
00064     SCMatrixKit(<font class="keyword">const</font> Ref&lt;KeyVal&gt;&amp;);
00065     ~SCMatrixKit();
00066 
00067     <font class="comment">// these members are default in local.cc</font>
00070 <font class="comment"></font>    <font class="keyword">static</font> SCMatrixKit* <a class="code" href="class_sc__SCMatrixKit.html#d0">default_matrixkit</a>();
00071     <font class="keyword">static</font> <font class="keywordtype">void</font> set_default_matrixkit(<font class="keyword">const</font> Ref&lt;SCMatrixKit&gt; &amp;);
00072 
00073     Ref&lt;MessageGrp&gt; messagegrp() <font class="keyword">const</font>;
00074 
00076     <font class="keyword">virtual</font> SCMatrix* <a class="code" href="class_sc__SCMatrixKit.html#a4">matrix</a>(<font class="keyword">const</font> RefSCDimension&amp;,<font class="keyword">const</font> RefSCDimension&amp;) = 0;
00077     <font class="keyword">virtual</font> SymmSCMatrix* symmmatrix(<font class="keyword">const</font> RefSCDimension&amp;) = 0;
00078     <font class="keyword">virtual</font> DiagSCMatrix* diagmatrix(<font class="keyword">const</font> RefSCDimension&amp;) = 0;
00079     <font class="keyword">virtual</font> SCVector* vector(<font class="keyword">const</font> RefSCDimension&amp;) = 0;
00080 
00083     SCMatrix* <a class="code" href="class_sc__SCMatrixKit.html#a8">restore_matrix</a>(StateIn&amp;,
00084                              <font class="keyword">const</font> RefSCDimension&amp;,
00085                              <font class="keyword">const</font> RefSCDimension&amp;);
00086     SymmSCMatrix* restore_symmmatrix(StateIn&amp;,
00087                                      <font class="keyword">const</font> RefSCDimension&amp;);
00088     DiagSCMatrix* restore_diagmatrix(StateIn&amp;,             
00089                                      <font class="keyword">const</font> RefSCDimension&amp;);
00090     SCVector* restore_vector(StateIn&amp;,
00091                              <font class="keyword">const</font> RefSCDimension&amp;);
00092 };
00093 
00094 
<a name="l00097"></a><a class="code" href="class_sc__SCVector.html">00097</a> <font class="keyword">class </font>SCVector: <font class="keyword">public</font> DescribedClass {
00098   <font class="keyword">protected</font>:
00099     RefSCDimension d;
00100     Ref&lt;SCMatrixKit&gt; kit_;
00101   <font class="keyword">public</font>:
00102     SCVector(<font class="keyword">const</font> RefSCDimension&amp;, SCMatrixKit *);
00103 
00105     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a1">save</a>(StateOut&amp;);
00106     <font class="keyword">virtual</font> <font class="keywordtype">void</font> restore(StateIn&amp;);
00107 
<a name="l00109"></a><a class="code" href="class_sc__SCVector.html#a3">00109</a>     Ref&lt;SCMatrixKit&gt; <a class="code" href="class_sc__SCVector.html#a3">kit</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> kit_; }
00110 
00111     <font class="comment">// concrete functions (some can be overridden)</font>
00113 <font class="comment">    virtual SCVector* copy();</font>
00115 <font class="comment">    virtual SCVector* clone();</font>
00116 
00117     <font class="keyword">virtual</font> ~SCVector();
<a name="l00119"></a><a class="code" href="class_sc__SCVector.html#a7">00119</a>     <font class="keywordtype">int</font> <a class="code" href="class_sc__SCVector.html#a7">n</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d-&gt;n(); }
00121     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SCVector.html#a8">maxabs</a>() <font class="keyword">const</font>;
00123     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a9">normalize</a>();
00125     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a10">randomize</a>();
<a name="l00127"></a><a class="code" href="class_sc__SCVector.html#a11">00127</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a11">assign</a>(<font class="keywordtype">double</font> val)<font class="keyword"> </font>{ <a class="code" href="class_sc__SCVector.html#a14">assign_val</a>(val); }
<a name="l00129"></a><a class="code" href="class_sc__SCVector.html#a12">00129</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a11">assign</a>(<font class="keyword">const</font> <font class="keywordtype">double</font>* v)<font class="keyword"> </font>{ assign_p(v); }
<a name="l00132"></a><a class="code" href="class_sc__SCVector.html#a13">00132</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a11">assign</a>(SCVector* v)<font class="keyword"> </font>{ assign_v(v); }
00134     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a14">assign_val</a>(<font class="keywordtype">double</font> val);
00135     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_p(<font class="keyword">const</font> <font class="keywordtype">double</font>* v);
00136     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_v(SCVector *v);
00138     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a17">convert</a>(<font class="keywordtype">double</font>* v) <font class="keyword">const</font>;
00141     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a17">convert</a>(SCVector*);
00142     <font class="keyword">virtual</font> <font class="keywordtype">void</font> convert_accumulate(SCVector*);
00144     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a20">scale</a>(<font class="keywordtype">double</font> val);
00145 
<a name="l00147"></a><a class="code" href="class_sc__SCVector.html#a21">00147</a>     RefSCDimension <a class="code" href="class_sc__SCVector.html#a21">dim</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d; }
00149     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a22">set_element</a>(<font class="keywordtype">int</font> i,<font class="keywordtype">double</font> val) = 0;
00151     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a23">accumulate_element</a>(<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) = 0;
00153     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SCVector.html#a24">get_element</a>(<font class="keywordtype">int</font> i) <font class="keyword">const</font> = 0;
<a name="l00155"></a><a class="code" href="class_sc__SCVector.html#a25">00155</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a25">accumulate_product</a>(SymmSCMatrix* m, SCVector* v)<font class="keyword"></font>
00156 <font class="keyword">        </font>{ accumulate_product_sv(m,v); }
00157     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a25">accumulate_product</a>(SCMatrix* m, SCVector* v)<font class="keyword"></font>
00158 <font class="keyword">        </font>{  accumulate_product_rv(m,v); }
00159     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_product_sv(SymmSCMatrix* m, SCVector* v);
00160     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_product_rv(SCMatrix* m, SCVector* v) = 0;
00162     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a29">accumulate</a>(<font class="keyword">const</font> SCVector*v) = 0;
00164     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a29">accumulate</a>(<font class="keyword">const</font> SCMatrix*m) = 0;
00166     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SCVector.html#a31">scalar_product</a>(SCVector*) = 0;
00168     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a32">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;) = 0;
00169     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a32">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00170                             SCVector*) = 0;
00171     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a32">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00172                             SCVector*,SCVector*) = 0;
00174     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a35">print</a>(std::ostream&amp;o=ExEnv::out0()) <font class="keyword">const</font>;
00175     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCVector.html#a35">print</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,std::ostream&amp;out=ExEnv::out0(),<font class="keywordtype">int</font>=10) <font class="keyword">const</font>;
00176     <font class="keyword">virtual</font> <font class="keywordtype">void</font> vprint(<font class="keyword">const</font> <font class="keywordtype">char</font>*title=0,std::ostream&amp;out=ExEnv::out0(),
00177                         <font class="keywordtype">int</font>=10) <font class="keyword">const</font> = 0;
00178 
00180     Ref&lt;MessageGrp&gt; <a class="code" href="class_sc__SCVector.html#a38">messagegrp</a>() <font class="keyword">const</font>;
00181     
00186     <font class="keyword">virtual</font> Ref&lt;SCMatrixSubblockIter&gt; <a class="code" href="class_sc__SCVector.html#a39">local_blocks</a>(
00187         SCMatrixSubblockIter::Access) = 0;
00189     <font class="keyword">virtual</font> Ref&lt;SCMatrixSubblockIter&gt; <a class="code" href="class_sc__SCVector.html#a40">all_blocks</a>(SCMatrixSubblockIter::Access) = 0;
00190 };
00191 
<a name="l00195"></a><a class="code" href="class_sc__SCMatrix.html">00195</a> <font class="keyword">class </font>SCMatrix: <font class="keyword">public</font> DescribedClass {
00196   <font class="keyword">protected</font>:
00197     RefSCDimension d1,d2;
00198     Ref&lt;SCMatrixKit&gt; kit_;
00199   <font class="keyword">public</font>:
00200     <font class="comment">// used to control transformations</font>
00201     <font class="keyword">enum</font> Transform { NormalTransform = 0, TransposeTransform = 1 };
00202     
00203     <font class="comment">// concrete functions (some can be overridden)</font>
00204     SCMatrix(<font class="keyword">const</font> RefSCDimension&amp;, <font class="keyword">const</font> RefSCDimension&amp;, SCMatrixKit *);
00205     <font class="keyword">virtual</font> ~SCMatrix();
00206 
00208     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a2">save</a>(StateOut&amp;);
00209     <font class="keyword">virtual</font> <font class="keywordtype">void</font> restore(StateIn&amp;);
00210 
<a name="l00212"></a><a class="code" href="class_sc__SCMatrix.html#a4">00212</a>     Ref&lt;SCMatrixKit&gt; <a class="code" href="class_sc__SCMatrix.html#a4">kit</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> kit_; }
00213 
<a name="l00215"></a><a class="code" href="class_sc__SCMatrix.html#a5">00215</a>     <font class="keywordtype">int</font> <a class="code" href="class_sc__SCMatrix.html#a5">nrow</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d1-&gt;n(); }
<a name="l00217"></a><a class="code" href="class_sc__SCMatrix.html#a6">00217</a>     <font class="keywordtype">int</font> <a class="code" href="class_sc__SCMatrix.html#a6">ncol</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d2-&gt;n(); }
00219     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SCMatrix.html#a7">maxabs</a>() <font class="keyword">const</font>;
00221     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a8">randomize</a>();
<a name="l00223"></a><a class="code" href="class_sc__SCMatrix.html#a9">00223</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a9">assign</a>(<font class="keywordtype">double</font> val)<font class="keyword"> </font>{ <a class="code" href="class_sc__SCMatrix.html#a13">assign_val</a>(val); }
<a name="l00225"></a><a class="code" href="class_sc__SCMatrix.html#a10">00225</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a9">assign</a>(<font class="keyword">const</font> <font class="keywordtype">double</font>* m)<font class="keyword"> </font>{ assign_p(m); }
<a name="l00227"></a><a class="code" href="class_sc__SCMatrix.html#a11">00227</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a9">assign</a>(<font class="keyword">const</font> <font class="keywordtype">double</font>** m)<font class="keyword"> </font>{ assign_pp(m); }
<a name="l00229"></a><a class="code" href="class_sc__SCMatrix.html#a12">00229</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a9">assign</a>(SCMatrix* m)<font class="keyword"> </font>{ assign_r(m); }
00231     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a13">assign_val</a>(<font class="keywordtype">double</font> val);
00232     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_p(<font class="keyword">const</font> <font class="keywordtype">double</font>* m);
00233     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_pp(<font class="keyword">const</font> <font class="keywordtype">double</font>** m);
00234     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_r(SCMatrix* m);
00237     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a17">convert</a>(<font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00238     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a17">convert</a>(<font class="keywordtype">double</font>**) <font class="keyword">const</font>;
00241     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a17">convert</a>(SCMatrix*);
00242     <font class="keyword">virtual</font> <font class="keywordtype">void</font> convert_accumulate(SCMatrix*);
00244     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a21">scale</a>(<font class="keywordtype">double</font> val);
00246     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a22">scale_diagonal</a>(<font class="keywordtype">double</font> val);
00248     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a23">shift_diagonal</a>(<font class="keywordtype">double</font> val);
00250     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a24">unit</a>();
00252     <font class="keyword">virtual</font> SCMatrix* <a class="code" href="class_sc__SCMatrix.html#a25">copy</a>();
00254     <font class="keyword">virtual</font> SCMatrix* <a class="code" href="class_sc__SCMatrix.html#a26">clone</a>();
00255 
00256     <font class="comment">// pure virtual functions</font>
<a name="l00258"></a><a class="code" href="class_sc__SCMatrix.html#a27">00258</a> <font class="comment">    RefSCDimension rowdim() const { return d1; }</font>
00259     RefSCDimension coldim()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d2; }
00261     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SCMatrix.html#a29">get_element</a>(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>) <font class="keyword">const</font> = 0;
00262     <font class="keyword">virtual</font> <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) = 0;
00263     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) = 0;
00264     
00268     <font class="keyword">virtual</font> SCMatrix * <a class="code" href="class_sc__SCMatrix.html#a32">get_subblock</a>(<font class="keywordtype">int</font> br, <font class="keywordtype">int</font> er, <font class="keywordtype">int</font> bc, <font class="keywordtype">int</font> ec) =0;
00269 
00271     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a33">assign_subblock</a>(SCMatrix *m, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>=0, <font class="keywordtype">int</font>=0) =0;
00272 
00274     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a34">accumulate_subblock</a>(SCMatrix *m, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>=0,<font class="keywordtype">int</font>=0) =0;
00275     
00277     <font class="keyword">virtual</font> SCVector * <a class="code" href="class_sc__SCMatrix.html#a35">get_row</a>(<font class="keywordtype">int</font> i) =0;
00278     <font class="keyword">virtual</font> SCVector * get_column(<font class="keywordtype">int</font> i) =0;
00279 
00281     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a37">assign_row</a>(SCVector *v, <font class="keywordtype">int</font> i) =0;
00282     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_column(SCVector *v, <font class="keywordtype">int</font> i) =0;
00283     
00285     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a39">accumulate_row</a>(SCVector *v, <font class="keywordtype">int</font> i) =0;
00286     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_column(SCVector *v, <font class="keywordtype">int</font> i) =0;
00287     
00289     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a41">accumulate</a>(<font class="keyword">const</font> SCMatrix* m) = 0;
00290     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a41">accumulate</a>(<font class="keyword">const</font> SymmSCMatrix* m) = 0;
00291     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a41">accumulate</a>(<font class="keyword">const</font> DiagSCMatrix* m) = 0;
00292     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a41">accumulate</a>(<font class="keyword">const</font> SCVector*) = 0;
00294     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a45">accumulate_outer_product</a>(SCVector*,SCVector*) = 0;
00295     <font class="keywordtype">void</font> accumulate_product(SCMatrix*m1,SCMatrix*m2)<font class="keyword"></font>
00296 <font class="keyword">        </font>{ accumulate_product_rr(m1,m2); }
00297     <font class="keywordtype">void</font> accumulate_product(SCMatrix*m1,SymmSCMatrix*m2)<font class="keyword"></font>
00298 <font class="keyword">        </font>{ accumulate_product_rs(m1,m2); }
00299     <font class="keywordtype">void</font> accumulate_product(SCMatrix*m1,DiagSCMatrix*m2)<font class="keyword"></font>
00300 <font class="keyword">        </font>{ accumulate_product_rd(m1,m2); }
00301     <font class="keywordtype">void</font> accumulate_product(SymmSCMatrix*m1,SCMatrix*m2)<font class="keyword"></font>
00302 <font class="keyword">        </font>{ accumulate_product_sr(m1,m2); }
00303     <font class="keywordtype">void</font> accumulate_product(DiagSCMatrix*m1,SCMatrix*m2)<font class="keyword"></font>
00304 <font class="keyword">        </font>{ accumulate_product_dr(m1,m2); }
00305     <font class="keywordtype">void</font> accumulate_product(SymmSCMatrix*m1,SymmSCMatrix*m2)<font class="keyword"></font>
00306 <font class="keyword">        </font>{ accumulate_product_ss(m1,m2); }
00307     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_product_rr(SCMatrix*,SCMatrix*) = 0;
00308     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_product_rs(SCMatrix*,SymmSCMatrix*);
00309     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_product_rd(SCMatrix*,DiagSCMatrix*);
00310     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_product_sr(SymmSCMatrix*,SCMatrix*);
00311     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_product_dr(DiagSCMatrix*,SCMatrix*);
00312     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_product_ss(SymmSCMatrix*,SymmSCMatrix*);
00314     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a58">transpose_this</a>() = 0;
00316     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SCMatrix.html#a59">trace</a>() =0;
00318     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SCMatrix.html#a60">invert_this</a>() = 0;
00320     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SCMatrix.html#a61">determ_this</a>() = 0;
00321 
00324     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a62">svd_this</a>(SCMatrix *U, DiagSCMatrix *sigma, SCMatrix *V);
00325     <font class="keyword">virtual</font> <font class="keywordtype">double</font> solve_this(SCVector*) = 0;
00326     <font class="keyword">virtual</font> <font class="keywordtype">void</font> gen_invert_this();
00327 
00330     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a65">schmidt_orthog</a>(SymmSCMatrix*, <font class="keywordtype">int</font> n) =0;
00331 
00335     <font class="keyword">virtual</font> <font class="keywordtype">int</font> <a class="code" href="class_sc__SCMatrix.html#a66">schmidt_orthog_tol</a>(SymmSCMatrix*, <font class="keywordtype">double</font> tol, <font class="keywordtype">double</font>*res=0)=0;
00336     
00338     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a67">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;) = 0;
00339     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a67">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00340                             SCMatrix*) = 0;
00341     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a67">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00342                             SCMatrix*,SCMatrix*) = 0;
00344     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a70">print</a>(std::ostream&amp;o=ExEnv::out0()) <font class="keyword">const</font>;
00345     <font class="keywordtype">void</font> <a class="code" href="class_sc__SCMatrix.html#a70">print</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,std::ostream&amp; out=ExEnv::out0(),
00346                <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00347     <font class="keyword">virtual</font> <font class="keywordtype">void</font> vprint(<font class="keyword">const</font> <font class="keywordtype">char</font>*title=0,
00348                         std::ostream&amp;out=ExEnv::out0(),<font class="keywordtype">int</font> =10) <font class="keyword">const</font> = 0;
00349 
00351     Ref&lt;MessageGrp&gt; <a class="code" href="class_sc__SCMatrix.html#a73">messagegrp</a>() <font class="keyword">const</font>;
00352     
00355     <font class="keyword">virtual</font> Ref&lt;SCMatrixSubblockIter&gt; <a class="code" href="class_sc__SCMatrix.html#a74">local_blocks</a>(
00356         SCMatrixSubblockIter::Access) = 0;
00358     <font class="keyword">virtual</font> Ref&lt;SCMatrixSubblockIter&gt; <a class="code" href="class_sc__SCMatrix.html#a75">all_blocks</a>(
00359         SCMatrixSubblockIter::Access) = 0;
00360 };
00361 
<a name="l00364"></a><a class="code" href="class_sc__SymmSCMatrix.html">00364</a> <font class="keyword">class </font>SymmSCMatrix: <font class="keyword">public</font> DescribedClass {
00365   <font class="keyword">protected</font>:
00366     RefSCDimension d;
00367     Ref&lt;SCMatrixKit&gt; kit_;
00368   <font class="keyword">public</font>:
00369     SymmSCMatrix(<font class="keyword">const</font> RefSCDimension&amp;, SCMatrixKit *);
00370 
<a name="l00372"></a><a class="code" href="class_sc__SymmSCMatrix.html#a1">00372</a>     Ref&lt;SCMatrixKit&gt; <a class="code" href="class_sc__SymmSCMatrix.html#a1">kit</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> kit_; }
00373 
00375     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a2">save</a>(StateOut&amp;);
00376     <font class="keyword">virtual</font> <font class="keywordtype">void</font> restore(StateIn&amp;);
00378     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SymmSCMatrix.html#a4">maxabs</a>() <font class="keyword">const</font>;
00380     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a5">randomize</a>();
<a name="l00382"></a><a class="code" href="class_sc__SymmSCMatrix.html#a6">00382</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a6">assign</a>(<font class="keywordtype">double</font> val)<font class="keyword"> </font>{ <a class="code" href="class_sc__SymmSCMatrix.html#a10">assign_val</a>(val); }
<a name="l00384"></a><a class="code" href="class_sc__SymmSCMatrix.html#a7">00384</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a6">assign</a>(<font class="keyword">const</font> <font class="keywordtype">double</font>* m)<font class="keyword"> </font>{ assign_p(m); }
<a name="l00386"></a><a class="code" href="class_sc__SymmSCMatrix.html#a8">00386</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a6">assign</a>(<font class="keyword">const</font> <font class="keywordtype">double</font>** m)<font class="keyword"> </font>{ assign_pp(m); }
<a name="l00389"></a><a class="code" href="class_sc__SymmSCMatrix.html#a9">00389</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a6">assign</a>(SymmSCMatrix* m)<font class="keyword"> </font>{ assign_s(m); }
00391     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a10">assign_val</a>(<font class="keywordtype">double</font> val);
00392     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_p(<font class="keyword">const</font> <font class="keywordtype">double</font>* m);
00393     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_pp(<font class="keyword">const</font> <font class="keywordtype">double</font>** m);
00394     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_s(SymmSCMatrix* m);
00396     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a14">convert</a>(<font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00397     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a14">convert</a>(<font class="keywordtype">double</font>**) <font class="keyword">const</font>;
00400     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a14">convert</a>(SymmSCMatrix*);
00401     <font class="keyword">virtual</font> <font class="keywordtype">void</font> convert_accumulate(SymmSCMatrix*);
00403     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a18">scale</a>(<font class="keywordtype">double</font>);
00405     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a19">scale_diagonal</a>(<font class="keywordtype">double</font>);
00407     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a20">shift_diagonal</a>(<font class="keywordtype">double</font>);
00409     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a21">unit</a>();
<a name="l00411"></a><a class="code" href="class_sc__SymmSCMatrix.html#a22">00411</a>     <font class="keywordtype">int</font> <a class="code" href="class_sc__SymmSCMatrix.html#a22">n</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d-&gt;n(); }
00413     <font class="keyword">virtual</font> SymmSCMatrix* <a class="code" href="class_sc__SymmSCMatrix.html#a23">copy</a>();
00415     <font class="keyword">virtual</font> SymmSCMatrix* <a class="code" href="class_sc__SymmSCMatrix.html#a24">clone</a>();
00416 
00417     <font class="comment">// pure virtual functions</font>
<a name="l00419"></a><a class="code" href="class_sc__SymmSCMatrix.html#a25">00419</a> <font class="comment">    RefSCDimension dim() const { return d; }</font>
00421 <font class="comment">    virtual double get_element(int,int) const = 0;</font>
00422     <font class="keyword">virtual</font> <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) = 0;
00423     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) = 0;
00424 
00428     <font class="keyword">virtual</font> SCMatrix * <a class="code" href="class_sc__SymmSCMatrix.html#a29">get_subblock</a>(<font class="keywordtype">int</font> br, <font class="keywordtype">int</font> er, <font class="keywordtype">int</font> bc, <font class="keywordtype">int</font> ec) =0;
00429     <font class="keyword">virtual</font> SymmSCMatrix * <a class="code" href="class_sc__SymmSCMatrix.html#a29">get_subblock</a>(<font class="keywordtype">int</font> br, <font class="keywordtype">int</font> er) =0;
00430 
00432     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a31">assign_subblock</a>(SCMatrix *m, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>) =0;
00433     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a31">assign_subblock</a>(SymmSCMatrix *m, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>) =0;
00434 
00436     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a33">accumulate_subblock</a>(SCMatrix *m, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>) =0;
00437     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a33">accumulate_subblock</a>(SymmSCMatrix *m, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>) =0;
00438 
00440     <font class="keyword">virtual</font> SCVector * <a class="code" href="class_sc__SymmSCMatrix.html#a35">get_row</a>(<font class="keywordtype">int</font> i) =0;
00441 
00443     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a36">assign_row</a>(SCVector *v, <font class="keywordtype">int</font> i) =0;
00444     
00446     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a37">accumulate_row</a>(SCVector *v, <font class="keywordtype">int</font> i) =0;
00447 
00450     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a38">diagonalize</a>(DiagSCMatrix*d,SCMatrix*m) = 0;
00452     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a39">accumulate</a>(<font class="keyword">const</font> SymmSCMatrix* m) = 0;
00454     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a40">accumulate_symmetric_sum</a>(SCMatrix*) = 0;
00455     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_symmetric_product(SCMatrix*);
00456     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_transform(SCMatrix*,SymmSCMatrix*,
00457                             SCMatrix::Transform = SCMatrix::NormalTransform);
00458     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_transform(SCMatrix*,DiagSCMatrix*, 
00459                             SCMatrix::Transform = SCMatrix::NormalTransform);
00460     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_transform(SymmSCMatrix*,SymmSCMatrix*);
00461     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_symmetric_outer_product(SCVector*);
00464     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SymmSCMatrix.html#a46">scalar_product</a>(SCVector* v);
00466     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SymmSCMatrix.html#a47">trace</a>() = 0;
00468     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SymmSCMatrix.html#a48">invert_this</a>() = 0;
00470     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__SymmSCMatrix.html#a49">determ_this</a>() = 0;
00471 
00472     <font class="keyword">virtual</font> <font class="keywordtype">double</font> solve_this(SCVector*) = 0;
00473     <font class="keyword">virtual</font> <font class="keywordtype">void</font> gen_invert_this() = 0;
00474 
00476     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a52">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;) = 0;
00477     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a52">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00478                             SymmSCMatrix*) = 0;
00479     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a52">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00480                             SymmSCMatrix*,SymmSCMatrix*) = 0;
00482     <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a55">print</a>(std::ostream&amp;o=ExEnv::out0()) <font class="keyword">const</font>;
00483     <font class="keywordtype">void</font> <a class="code" href="class_sc__SymmSCMatrix.html#a55">print</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,std::ostream&amp; out=ExEnv::out0(),
00484                <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00485     <font class="keyword">virtual</font> <font class="keywordtype">void</font> vprint(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,
00486                         std::ostream&amp; out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00487 
00489     Ref&lt;MessageGrp&gt; <a class="code" href="class_sc__SymmSCMatrix.html#a58">messagegrp</a>() <font class="keyword">const</font>;
00490     
00493     <font class="keyword">virtual</font> Ref&lt;SCMatrixSubblockIter&gt; <a class="code" href="class_sc__SymmSCMatrix.html#a59">local_blocks</a>(
00494         SCMatrixSubblockIter::Access) = 0;
00496     <font class="keyword">virtual</font> Ref&lt;SCMatrixSubblockIter&gt; <a class="code" href="class_sc__SymmSCMatrix.html#a60">all_blocks</a>(
00497         SCMatrixSubblockIter::Access) = 0;
00498 };
00499 
<a name="l00502"></a><a class="code" href="class_sc__DiagSCMatrix.html">00502</a> <font class="keyword">class </font>DiagSCMatrix: <font class="keyword">public</font> DescribedClass {
00503   <font class="keyword">protected</font>:
00504     RefSCDimension d;
00505     Ref&lt;SCMatrixKit&gt; kit_;
00506   <font class="keyword">public</font>:
00507     DiagSCMatrix(<font class="keyword">const</font> RefSCDimension&amp;, SCMatrixKit *);
00508 
<a name="l00510"></a><a class="code" href="class_sc__DiagSCMatrix.html#a1">00510</a>     Ref&lt;SCMatrixKit&gt; <a class="code" href="class_sc__DiagSCMatrix.html#a1">kit</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> kit_; }
00511 
00513     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a2">save</a>(StateOut&amp;);
00514     <font class="keyword">virtual</font> <font class="keywordtype">void</font> restore(StateIn&amp;);
00515 
00517     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__DiagSCMatrix.html#a4">maxabs</a>() <font class="keyword">const</font>;
00519     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a5">randomize</a>();
<a name="l00521"></a><a class="code" href="class_sc__DiagSCMatrix.html#a6">00521</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a6">assign</a>(<font class="keywordtype">double</font> val)<font class="keyword"> </font>{ <a class="code" href="class_sc__DiagSCMatrix.html#a9">assign_val</a>(val); }
<a name="l00523"></a><a class="code" href="class_sc__DiagSCMatrix.html#a7">00523</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a6">assign</a>(<font class="keyword">const</font> <font class="keywordtype">double</font>*p)<font class="keyword"> </font>{ assign_p(p); }
<a name="l00526"></a><a class="code" href="class_sc__DiagSCMatrix.html#a8">00526</a>     <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a6">assign</a>(DiagSCMatrix*d_a)<font class="keyword"> </font>{ assign_d(d_a); }
00528     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a9">assign_val</a>(<font class="keywordtype">double</font> val);
00529     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_p(<font class="keyword">const</font> <font class="keywordtype">double</font>*);
00530     <font class="keyword">virtual</font> <font class="keywordtype">void</font> assign_d(DiagSCMatrix*);
00532     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a12">convert</a>(<font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00535     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a12">convert</a>(DiagSCMatrix*);
00536     <font class="keyword">virtual</font> <font class="keywordtype">void</font> convert_accumulate(DiagSCMatrix*);
00538     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a15">scale</a>(<font class="keywordtype">double</font>);
<a name="l00540"></a><a class="code" href="class_sc__DiagSCMatrix.html#a16">00540</a>     <font class="keywordtype">int</font> <a class="code" href="class_sc__DiagSCMatrix.html#a16">n</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d-&gt;n(); }
00542     <font class="keyword">virtual</font> DiagSCMatrix* <a class="code" href="class_sc__DiagSCMatrix.html#a17">copy</a>();
00544     <font class="keyword">virtual</font> DiagSCMatrix* <a class="code" href="class_sc__DiagSCMatrix.html#a18">clone</a>();
00545 
00546     <font class="comment">// pure virtual functions</font>
<a name="l00548"></a><a class="code" href="class_sc__DiagSCMatrix.html#a19">00548</a> <font class="comment">    RefSCDimension dim() const { return d; }</font>
00550 <font class="comment">    virtual double get_element(int) const = 0;</font>
00551     <font class="keyword">virtual</font> <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) = 0;
00552     <font class="keyword">virtual</font> <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) = 0;
00554     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a23">accumulate</a>(<font class="keyword">const</font> DiagSCMatrix* m) = 0;
00556     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__DiagSCMatrix.html#a24">trace</a>() = 0;
00558     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__DiagSCMatrix.html#a25">determ_this</a>() = 0;
00560     <font class="keyword">virtual</font> <font class="keywordtype">double</font> <a class="code" href="class_sc__DiagSCMatrix.html#a26">invert_this</a>() = 0;
00562     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a27">gen_invert_this</a>() = 0;
00564     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a28">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;) = 0;
00565     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a28">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00566                             DiagSCMatrix*) = 0;
00567     <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a28">element_op</a>(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00568                             DiagSCMatrix*,DiagSCMatrix*) = 0;
00570     <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a31">print</a>(std::ostream&amp;o=ExEnv::out0()) <font class="keyword">const</font>;
00571     <font class="keywordtype">void</font> <a class="code" href="class_sc__DiagSCMatrix.html#a31">print</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,
00572                std::ostream&amp; out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00573     <font class="keyword">virtual</font> <font class="keywordtype">void</font> vprint(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,
00574                         std::ostream&amp; out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00575 
00577     Ref&lt;MessageGrp&gt; <a class="code" href="class_sc__DiagSCMatrix.html#a34">messagegrp</a>() <font class="keyword">const</font>;
00578     
00581     <font class="keyword">virtual</font> Ref&lt;SCMatrixSubblockIter&gt; <a class="code" href="class_sc__DiagSCMatrix.html#a35">local_blocks</a>(
00582         SCMatrixSubblockIter::Access) = 0;
00584     <font class="keyword">virtual</font> Ref&lt;SCMatrixSubblockIter&gt; <a class="code" href="class_sc__DiagSCMatrix.html#a36">all_blocks</a>(
00585         SCMatrixSubblockIter::Access) = 0;
00586 };
00587 
00588 }
00589 
00590 <font class="preprocessor">#endif</font>
00591 <font class="preprocessor"></font>
00592 <font class="comment">// Local Variables:</font>
00593 <font class="comment">// mode: c++</font>
00594 <font class="comment">// c-file-style: "CLJ"</font>
00595 <font class="comment">// End:</font>
</div></pre><hr>
<address>
<small>

Generated at Mon Oct 14 14:16:35 2002 for <a
href="http://aros.ca.sandia.gov/~cljanss/mpqc">MPQC</a>
2.1.2 using the documentation package <a
href="http://www.stack.nl/~dimitri/doxygen/index.html">Doxygen</a>
1.2.5.

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