Sophie

Sophie

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

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>matrix.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:37 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>matrix.h</h1><div class="fragment"><pre>00001 <font class="comment">//</font>
00002 <font class="comment">// matrix.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_matrix_h</font>
00029 <font class="preprocessor"></font><font class="preprocessor">#define _math_scmat_matrix_h</font>
00030 <font class="preprocessor"></font><font class="preprocessor">#ifdef __GNUC__</font>
00031 <font class="preprocessor"></font><font class="preprocessor">#pragma interface</font>
00032 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00033 <font class="preprocessor"></font>
00034 <font class="preprocessor">#include &lt;iostream&gt;</font>
00035 <font class="preprocessor">#include &lt;util/container/array.h&gt;</font>
00036 
00037 <font class="preprocessor">#include &lt;math/scmat/abstract.h&gt;</font>
00038 
00039 <font class="keyword">namespace </font>sc {
00040 
00041 <font class="keyword">class </font>SCVectordouble;
00042 <font class="keyword">class </font>SCMatrixdouble;
00043 <font class="keyword">class </font>SymmSCMatrixdouble;
00044 <font class="keyword">class </font>DiagSCMatrixdouble;
00045 
00046 <font class="keyword">class </font>SCMatrixBlockIter;
00047 <font class="keyword">class </font>SCMatrixRectBlock;
00048 <font class="keyword">class </font>SCMatrixLTriBlock;
00049 <font class="keyword">class </font>SCMatrixDiagBlock;
00050 <font class="keyword">class </font>SCVectorSimpleBlock;
00051 
00052 <font class="keyword">class </font>RefSCMatrix;
00053 <font class="keyword">class </font>RefSymmSCMatrix;
<a name="l00056"></a><a class="code" href="class_sc__RefSCVector.html">00056</a> <font class="keyword">class </font>RefSCVector: <font class="keyword">public</font> Ref&lt;SCVector&gt; {
00057     <font class="comment">// standard overrides</font>
00058   <font class="keyword">public</font>:
00061     <a class="code" href="class_sc__RefSCVector.html#a0">RefSCVector</a>();
00063     <a class="code" href="class_sc__RefSCVector.html#a0">RefSCVector</a>(<font class="keyword">const</font> RefSCVector&amp; v);
00065     <a class="code" href="class_sc__RefSCVector.html#a0">RefSCVector</a>(SCVector *v);
00066     <font class="comment">// don't allow automatic conversion from any reference to a</font>
00067     <font class="comment">// described class</font>
00068     ~RefSCVector();
00070     RefSCVector&amp; <a class="code" href="class_sc__RefSCVector.html#a4">operator=</a>(SCVector* v);
00072     RefSCVector&amp; <a class="code" href="class_sc__RefSCVector.html#a4">operator=</a>(<font class="keyword">const</font> RefSCVector&amp; v);
00073 
00074     <font class="comment">// vector specific members</font>
00075   <font class="keyword">public</font>:
00078     <a class="code" href="class_sc__RefSCVector.html#a0">RefSCVector</a>(<font class="keyword">const</font> RefSCDimension&amp; dim,<font class="keyword">const</font> Ref&lt;SCMatrixKit&gt;&amp;);
00079 
00081     SCVectordouble <a class="code" href="class_sc__RefSCVector.html#a7">operator()</a>(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00083     SCVectordouble <a class="code" href="class_sc__RefSCVector.html#a8">operator[]</a>(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00085     RefSCVector <a class="code" href="class_sc__RefSCVector.html#a9">operator+</a>(<font class="keyword">const</font> RefSCVector&amp;a) <font class="keyword">const</font>;
00087     RefSCVector <a class="code" href="class_sc__RefSCVector.html#a10">operator-</a>(<font class="keyword">const</font> RefSCVector&amp;a) <font class="keyword">const</font>;
00089     RefSCVector <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00091     RefSCMatrix <a class="code" href="class_sc__RefSCVector.html#a12">outer_product</a>(<font class="keyword">const</font> RefSCVector&amp; v) <font class="keyword">const</font>;
00093     RefSymmSCMatrix <a class="code" href="class_sc__RefSCVector.html#a13">symmetric_outer_product</a>() <font class="keyword">const</font>;
00094 
00095     <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font> i,<font class="keywordtype">double</font> val) <font class="keyword">const</font>;
00096     <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font> i,<font class="keywordtype">double</font> val) <font class="keyword">const</font>;
00097     <font class="keywordtype">double</font> get_element(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00098     <font class="keywordtype">int</font> n() <font class="keyword">const</font>;
00099     RefSCDimension dim() <font class="keyword">const</font>;
00100     Ref&lt;SCMatrixKit&gt; kit() <font class="keyword">const</font>;
00101     RefSCVector clone() <font class="keyword">const</font>;
00102     RefSCVector copy() <font class="keyword">const</font>;
00103     <font class="keywordtype">double</font> maxabs() <font class="keyword">const</font>;
00104     <font class="keywordtype">double</font> scalar_product(<font class="keyword">const</font> RefSCVector&amp;) <font class="keyword">const</font>;
00105     <font class="keywordtype">double</font> dot(<font class="keyword">const</font> RefSCVector&amp;) <font class="keyword">const</font>;
00106     <font class="keywordtype">void</font> normalize() <font class="keyword">const</font>;
00107     <font class="keywordtype">void</font> randomize() <font class="keyword">const</font>;
00108     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> RefSCVector&amp; v) <font class="keyword">const</font>;
00109     <font class="keywordtype">void</font> assign(<font class="keywordtype">double</font> val) <font class="keyword">const</font>;
00110     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> <font class="keywordtype">double</font>* v) <font class="keyword">const</font>;
00111     <font class="keywordtype">void</font> convert(<font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00112     <font class="keywordtype">void</font> scale(<font class="keywordtype">double</font> val) <font class="keyword">const</font>;
00113     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> RefSCVector&amp; v) <font class="keyword">const</font>;
00114     <font class="keywordtype">void</font> accumulate_product(<font class="keyword">const</font> RefSymmSCMatrix&amp;, <font class="keyword">const</font> RefSCVector&amp;);
00115     <font class="keywordtype">void</font> accumulate_product(<font class="keyword">const</font> RefSCMatrix&amp;, <font class="keyword">const</font> RefSCVector&amp;);
00116     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp; op) <font class="keyword">const</font>;
00117     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00118                     <font class="keyword">const</font> RefSCVector&amp;) <font class="keyword">const</font>;
00119     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00120                     <font class="keyword">const</font> RefSCVector&amp;,
00121                     <font class="keyword">const</font> RefSCVector&amp;) <font class="keyword">const</font>;
00122     <font class="keywordtype">void</font> print(std::ostream&amp;out) <font class="keyword">const</font>;
00123     <font class="keywordtype">void</font> print(<font class="keyword">const</font> <font class="keywordtype">char</font>*title=0,
00124                std::ostream&amp;out=ExEnv::out0(), <font class="keywordtype">int</font> precision=10) <font class="keyword">const</font>;
00125     <font class="keywordtype">void</font> save(StateOut&amp;);
00126     <font class="keywordtype">void</font> restore(StateIn&amp;);
00127 };
00128 RefSCVector operator*(<font class="keywordtype">double</font>,<font class="keyword">const</font> RefSCVector&amp;);
00129 
00130 <font class="keyword">class </font>RefSymmSCMatrix;
00131 <font class="keyword">class </font>RefDiagSCMatrix;
<a name="l00135"></a><a class="code" href="class_sc__RefSCMatrix.html">00135</a> <font class="keyword">class </font>RefSCMatrix: <font class="keyword">public</font> Ref&lt;SCMatrix&gt; {
00136     <font class="comment">// standard overrides</font>
00137   <font class="keyword">public</font>:
00140     <a class="code" href="class_sc__RefSCMatrix.html#a0">RefSCMatrix</a>();
00142     <a class="code" href="class_sc__RefSCMatrix.html#a0">RefSCMatrix</a>(<font class="keyword">const</font> RefSCMatrix&amp; m);
00144      <a class="code" href="class_sc__RefSCMatrix.html#a0">RefSCMatrix</a>(SCMatrix* m);
00145     ~RefSCMatrix();
00147     RefSCMatrix&amp; <a class="code" href="class_sc__RefSCMatrix.html#a4">operator=</a>(SCMatrix* m);
00149     RefSCMatrix&amp; <a class="code" href="class_sc__RefSCMatrix.html#a4">operator=</a>(<font class="keyword">const</font> RefSCMatrix&amp; m);
00150 
00151     <font class="comment">// matrix specific members</font>
00152   <font class="keyword">public</font>:
00155     <a class="code" href="class_sc__RefSCMatrix.html#a0">RefSCMatrix</a>(<font class="keyword">const</font> RefSCDimension&amp; d1,<font class="keyword">const</font> RefSCDimension&amp; d2,
00156                 <font class="keyword">const</font> Ref&lt;SCMatrixKit&gt;&amp;);
00157 
00159     RefSCVector <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keyword">const</font> RefSCVector&amp;) <font class="keyword">const</font>;
00160 
00162     RefSCMatrix <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00163     RefSCMatrix <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keyword">const</font> RefSymmSCMatrix&amp;) <font class="keyword">const</font>;
00164     RefSCMatrix <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keyword">const</font> RefDiagSCMatrix&amp;) <font class="keyword">const</font>;
00165 
00167     RefSCMatrix <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00168 
00170     RefSCMatrix <a class="code" href="class_sc__RefSCMatrix.html#a12">operator+</a>(<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00172     RefSCMatrix <a class="code" href="class_sc__RefSCMatrix.html#a13">operator-</a>(<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00173 
00175     RefSCMatrix <a class="code" href="class_sc__RefSCMatrix.html#a14">t</a>() <font class="keyword">const</font>;
00177     RefSCMatrix <a class="code" href="class_sc__RefSCMatrix.html#a15">i</a>() <font class="keyword">const</font>;
00179     RefSCMatrix <a class="code" href="class_sc__RefSCMatrix.html#a16">gi</a>() <font class="keyword">const</font>;
00180 
00183     RefSCMatrix <a class="code" href="class_sc__RefSCMatrix.html#a17">clone</a>() <font class="keyword">const</font>;
00184     RefSCMatrix copy() <font class="keyword">const</font>;
00185 
00186     RefSCMatrix get_subblock(<font class="keywordtype">int</font> br, <font class="keywordtype">int</font> er, <font class="keywordtype">int</font> bc, <font class="keywordtype">int</font> ec);
00187     <font class="keywordtype">void</font> assign_subblock(<font class="keyword">const</font> RefSCMatrix&amp;, <font class="keywordtype">int</font> br, <font class="keywordtype">int</font> er, <font class="keywordtype">int</font> bc, <font class="keywordtype">int</font> ec,
00188                          <font class="keywordtype">int</font> source_br = 0, <font class="keywordtype">int</font> source_bc = 0);
00189     <font class="keywordtype">void</font> accumulate_subblock(<font class="keyword">const</font> RefSCMatrix&amp;, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>,
00190                              <font class="keywordtype">int</font> source_br = 0, <font class="keywordtype">int</font> source_bc = 0);
00191     RefSCVector get_row(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00192     RefSCVector get_column(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00193     <font class="keywordtype">void</font> assign_row(<font class="keyword">const</font> RefSCVector&amp;, <font class="keywordtype">int</font>) <font class="keyword">const</font>;
00194     <font class="keywordtype">void</font> assign_column(<font class="keyword">const</font> RefSCVector&amp;, <font class="keywordtype">int</font>) <font class="keyword">const</font>;
00195     <font class="keywordtype">void</font> accumulate_row(<font class="keyword">const</font> RefSCVector&amp;, <font class="keywordtype">int</font>) <font class="keyword">const</font>;
00196     <font class="keywordtype">void</font> accumulate_column(<font class="keyword">const</font> RefSCVector&amp;, <font class="keywordtype">int</font>) <font class="keyword">const</font>;
00197 
00198     <font class="keywordtype">void</font> accumulate_outer_product(<font class="keyword">const</font> RefSCVector&amp;,<font class="keyword">const</font> RefSCVector&amp;) <font class="keyword">const</font>;
00199     <font class="keywordtype">void</font> accumulate_product(<font class="keyword">const</font> RefSCMatrix&amp;,<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00200     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00201     <font class="keywordtype">void</font> scale(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00202     <font class="keywordtype">void</font> randomize() <font class="keyword">const</font>;
00203     <font class="keywordtype">void</font> assign(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00204     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> <font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00205     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> <font class="keywordtype">double</font>**) <font class="keyword">const</font>;
00206     <font class="keywordtype">void</font> convert(<font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00207     <font class="keywordtype">void</font> convert(<font class="keywordtype">double</font>**) <font class="keyword">const</font>;
00208     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00209     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> RefSymmSCMatrix&amp;) <font class="keyword">const</font>;
00210     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> RefDiagSCMatrix&amp;) <font class="keyword">const</font>;
00211     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;) <font class="keyword">const</font>;
00212     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00213                     <font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00214     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00215                     <font class="keyword">const</font> RefSCMatrix&amp;,
00216                     <font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00217     <font class="keywordtype">int</font> nrow() <font class="keyword">const</font>;
00218     <font class="keywordtype">int</font> ncol() <font class="keyword">const</font>;
00219     RefSCDimension rowdim() <font class="keyword">const</font>;
00220     RefSCDimension coldim() <font class="keyword">const</font>;
00221     Ref&lt;SCMatrixKit&gt; kit() <font class="keyword">const</font>;
00222     <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00223     <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00224     <font class="keywordtype">double</font> get_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00225     <font class="keywordtype">void</font> print(std::ostream&amp;) <font class="keyword">const</font>;
00226     <font class="keywordtype">void</font> print(<font class="keyword">const</font> <font class="keywordtype">char</font>*title=0,
00227                std::ostream&amp;out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00228     <font class="keywordtype">double</font> trace() <font class="keyword">const</font>;
00229     <font class="keywordtype">void</font> save(StateOut&amp;);
00230     <font class="keywordtype">void</font> restore(StateIn&amp;);
00231 
00236     <font class="keywordtype">void</font> <a class="code" href="class_sc__RefSCMatrix.html#a57">svd</a>(<font class="keyword">const</font> RefSCMatrix &amp;U,
00237              <font class="keyword">const</font> RefDiagSCMatrix &amp;sigma,
00238              <font class="keyword">const</font> RefSCMatrix &amp;V);
00240     <font class="keywordtype">double</font> <a class="code" href="class_sc__RefSCMatrix.html#a58">solve_lin</a>(<font class="keyword">const</font> RefSCVector&amp; v) <font class="keyword">const</font>;
00242     <font class="keywordtype">double</font> <a class="code" href="class_sc__RefSCMatrix.html#a59">determ</a>() <font class="keyword">const</font>;
00244     SCMatrixdouble <a class="code" href="class_sc__RefSCMatrix.html#a60">operator()</a>(<font class="keywordtype">int</font> i,<font class="keywordtype">int</font> j) <font class="keyword">const</font>;
00245 };
00247 RefSCMatrix operator*(<font class="keywordtype">double</font>,<font class="keyword">const</font> RefSCMatrix&amp;);
00248 
<a name="l00251"></a><a class="code" href="class_sc__RefSymmSCMatrix.html">00251</a> <font class="keyword">class </font>RefSymmSCMatrix: <font class="keyword">public</font> Ref&lt;SymmSCMatrix&gt; {
00252     <font class="comment">// standard overrides</font>
00253   <font class="keyword">public</font>:
00256     <a class="code" href="class_sc__RefSymmSCMatrix.html#a0">RefSymmSCMatrix</a>();
00258     <a class="code" href="class_sc__RefSymmSCMatrix.html#a0">RefSymmSCMatrix</a>(<font class="keyword">const</font> RefSymmSCMatrix&amp; m);
00260     <a class="code" href="class_sc__RefSymmSCMatrix.html#a0">RefSymmSCMatrix</a>(SymmSCMatrix *m);
00261     ~RefSymmSCMatrix();
00263     RefSymmSCMatrix&amp; <a class="code" href="class_sc__RefSymmSCMatrix.html#a4">operator=</a>(SymmSCMatrix* m);
00265     RefSymmSCMatrix&amp; <a class="code" href="class_sc__RefSymmSCMatrix.html#a4">operator=</a>(<font class="keyword">const</font> RefSymmSCMatrix&amp; m);
00266 
00267     <font class="comment">// matrix specific members</font>
00268   <font class="keyword">public</font>:
00271     <a class="code" href="class_sc__RefSymmSCMatrix.html#a0">RefSymmSCMatrix</a>(<font class="keyword">const</font> RefSCDimension&amp; d,<font class="keyword">const</font> Ref&lt;SCMatrixKit&gt;&amp;);
00273     RefSCMatrix <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00274     RefSCMatrix <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keyword">const</font> RefSymmSCMatrix&amp;) <font class="keyword">const</font>;
00276     RefSCVector <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keyword">const</font> RefSCVector&amp;a) <font class="keyword">const</font>;
00277     RefSymmSCMatrix <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00279     RefSymmSCMatrix <a class="code" href="class_sc__RefSymmSCMatrix.html#a11">operator+</a>(<font class="keyword">const</font> RefSymmSCMatrix&amp;) <font class="keyword">const</font>;
00280     RefSymmSCMatrix operator-(<font class="keyword">const</font> RefSymmSCMatrix&amp;) <font class="keyword">const</font>;
00282     RefSymmSCMatrix <a class="code" href="class_sc__RefSymmSCMatrix.html#a13">i</a>() <font class="keyword">const</font>;
00284     RefSymmSCMatrix <a class="code" href="class_sc__RefSymmSCMatrix.html#a14">gi</a>() <font class="keyword">const</font>;
00287     RefSymmSCMatrix <a class="code" href="class_sc__RefSymmSCMatrix.html#a15">clone</a>() <font class="keyword">const</font>;
00288     RefSymmSCMatrix copy() <font class="keyword">const</font>;
00289     <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00290     <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00291     <font class="keywordtype">double</font> get_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00292 
00293     RefSCMatrix get_subblock(<font class="keywordtype">int</font> br, <font class="keywordtype">int</font> er, <font class="keywordtype">int</font> bc, <font class="keywordtype">int</font> ec);
00294     RefSymmSCMatrix get_subblock(<font class="keywordtype">int</font> br, <font class="keywordtype">int</font> er);
00295     <font class="keywordtype">void</font> assign_subblock(<font class="keyword">const</font> RefSCMatrix&amp;, <font class="keywordtype">int</font> br, <font class="keywordtype">int</font> er, <font class="keywordtype">int</font> bc, <font class="keywordtype">int</font> ec);
00296     <font class="keywordtype">void</font> assign_subblock(<font class="keyword">const</font> RefSymmSCMatrix&amp;, <font class="keywordtype">int</font> br, <font class="keywordtype">int</font> er);
00297     <font class="keywordtype">void</font> accumulate_subblock(<font class="keyword">const</font> RefSCMatrix&amp;, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>);
00298     <font class="keywordtype">void</font> accumulate_subblock(<font class="keyword">const</font> RefSymmSCMatrix&amp;, <font class="keywordtype">int</font>, <font class="keywordtype">int</font>);
00299     RefSCVector get_row(<font class="keywordtype">int</font>);
00300     <font class="keywordtype">void</font> assign_row(<font class="keyword">const</font> RefSCVector&amp;, <font class="keywordtype">int</font>);
00301     <font class="keywordtype">void</font> accumulate_row(<font class="keyword">const</font> RefSCVector&amp;, <font class="keywordtype">int</font>);
00302 
00303     <font class="keywordtype">void</font> accumulate_symmetric_outer_product(<font class="keyword">const</font> RefSCVector&amp;) <font class="keyword">const</font>;
00304     <font class="keywordtype">double</font> scalar_product(<font class="keyword">const</font> RefSCVector&amp;) <font class="keyword">const</font>;
00305     <font class="keywordtype">void</font> accumulate_symmetric_product(<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00306     <font class="keywordtype">void</font> accumulate_symmetric_sum(<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00308     <font class="keywordtype">void</font> <a class="code" href="class_sc__RefSymmSCMatrix.html#a33">accumulate_transform</a>(<font class="keyword">const</font> RefSCMatrix&amp;a,<font class="keyword">const</font> RefSymmSCMatrix&amp;b,
00309                         SCMatrix::Transform = SCMatrix::NormalTransform) <font class="keyword">const</font>;
00310     <font class="keywordtype">void</font> <a class="code" href="class_sc__RefSymmSCMatrix.html#a33">accumulate_transform</a>(<font class="keyword">const</font> RefSCMatrix&amp;a,<font class="keyword">const</font> RefDiagSCMatrix&amp;b,
00311                         SCMatrix::Transform = SCMatrix::NormalTransform) <font class="keyword">const</font>;
00312     <font class="keywordtype">void</font> <a class="code" href="class_sc__RefSymmSCMatrix.html#a33">accumulate_transform</a>(<font class="keyword">const</font> RefSymmSCMatrix&amp;a,
00313                               <font class="keyword">const</font> RefSymmSCMatrix&amp;b) <font class="keyword">const</font>;
00314 
00315     <font class="keywordtype">void</font> randomize() <font class="keyword">const</font>;
00316     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> RefSymmSCMatrix&amp;) <font class="keyword">const</font>;
00317     <font class="keywordtype">void</font> scale(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00318     <font class="keywordtype">void</font> assign(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00319     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> <font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00320     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> <font class="keywordtype">double</font>**) <font class="keyword">const</font>;
00321     <font class="keywordtype">void</font> convert(<font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00322     <font class="keywordtype">void</font> convert(<font class="keywordtype">double</font>**) <font class="keyword">const</font>;
00323     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> RefSymmSCMatrix&amp;) <font class="keyword">const</font>;
00324     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;) <font class="keyword">const</font>;
00325     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00326                     <font class="keyword">const</font> RefSymmSCMatrix&amp;) <font class="keyword">const</font>;
00327     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00328                     <font class="keyword">const</font> RefSymmSCMatrix&amp;,
00329                     <font class="keyword">const</font> RefSymmSCMatrix&amp;) <font class="keyword">const</font>;
00330     <font class="keywordtype">double</font> trace() <font class="keyword">const</font>;
00331     <font class="keywordtype">int</font> n() <font class="keyword">const</font>;
00332     RefSCDimension dim() <font class="keyword">const</font>;
00333     Ref&lt;SCMatrixKit&gt; kit() <font class="keyword">const</font>;
00334     <font class="keywordtype">void</font> print(std::ostream&amp;) <font class="keyword">const</font>;
00335     <font class="keywordtype">void</font> print(<font class="keyword">const</font> <font class="keywordtype">char</font>*title=0,
00336                std::ostream&amp;out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00337     <font class="keywordtype">void</font> save(StateOut&amp;);
00338     <font class="keywordtype">void</font> restore(StateIn&amp;);
00339 
00341     <font class="keywordtype">double</font> <a class="code" href="class_sc__RefSymmSCMatrix.html#a56">solve_lin</a>(<font class="keyword">const</font> RefSCVector&amp;) <font class="keyword">const</font>;
00343     <font class="keywordtype">double</font> <a class="code" href="class_sc__RefSymmSCMatrix.html#a57">determ</a>() <font class="keyword">const</font>;
00345     RefDiagSCMatrix <a class="code" href="class_sc__RefSymmSCMatrix.html#a58">eigvals</a>() <font class="keyword">const</font>;
00347     RefSCMatrix <a class="code" href="class_sc__RefSymmSCMatrix.html#a59">eigvecs</a>() <font class="keyword">const</font>;
00350     <font class="keywordtype">void</font> <a class="code" href="class_sc__RefSymmSCMatrix.html#a60">diagonalize</a>(<font class="keyword">const</font> RefDiagSCMatrix&amp; eigvals,
00351                      <font class="keyword">const</font> RefSCMatrix&amp; eigvecs) <font class="keyword">const</font>;
00353     SymmSCMatrixdouble <a class="code" href="class_sc__RefSymmSCMatrix.html#a61">operator()</a>(<font class="keywordtype">int</font> i,<font class="keywordtype">int</font> j) <font class="keyword">const</font>;
00354 };
00356 RefSymmSCMatrix operator*(<font class="keywordtype">double</font>,<font class="keyword">const</font> RefSymmSCMatrix&amp;);
00357 
<a name="l00360"></a><a class="code" href="class_sc__RefDiagSCMatrix.html">00360</a> <font class="keyword">class </font>RefDiagSCMatrix: <font class="keyword">public</font> Ref&lt;DiagSCMatrix&gt; {
00361     <font class="comment">// standard overrides</font>
00362   <font class="keyword">public</font>:
00365     <a class="code" href="class_sc__RefDiagSCMatrix.html#a0">RefDiagSCMatrix</a>();
00367     <a class="code" href="class_sc__RefDiagSCMatrix.html#a0">RefDiagSCMatrix</a>(<font class="keyword">const</font> RefDiagSCMatrix&amp; m);
00369     <a class="code" href="class_sc__RefDiagSCMatrix.html#a0">RefDiagSCMatrix</a>(DiagSCMatrix *m);
00370     ~RefDiagSCMatrix();
00372     RefDiagSCMatrix&amp; <a class="code" href="class_sc__RefDiagSCMatrix.html#a4">operator=</a>(DiagSCMatrix* m);
00374     RefDiagSCMatrix&amp; <a class="code" href="class_sc__RefDiagSCMatrix.html#a4">operator=</a>(<font class="keyword">const</font> RefDiagSCMatrix &amp; m);
00375 
00376     <font class="comment">// matrix specific members</font>
00377   <font class="keyword">public</font>:
00380     <a class="code" href="class_sc__RefDiagSCMatrix.html#a0">RefDiagSCMatrix</a>(<font class="keyword">const</font> RefSCDimension&amp;,<font class="keyword">const</font> Ref&lt;SCMatrixKit&gt;&amp;);
00382     RefSCMatrix <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keyword">const</font> RefSCMatrix&amp;) <font class="keyword">const</font>;
00383     RefDiagSCMatrix <a class="code" href="class_sc__Ref.html#a9">operator*</a>(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00385     RefDiagSCMatrix <a class="code" href="class_sc__RefDiagSCMatrix.html#a9">operator+</a>(<font class="keyword">const</font> RefDiagSCMatrix&amp;) <font class="keyword">const</font>;
00386     RefDiagSCMatrix operator-(<font class="keyword">const</font> RefDiagSCMatrix&amp;) <font class="keyword">const</font>;
00388     RefDiagSCMatrix <a class="code" href="class_sc__RefDiagSCMatrix.html#a11">i</a>() <font class="keyword">const</font>;
00390     RefDiagSCMatrix <a class="code" href="class_sc__RefDiagSCMatrix.html#a12">gi</a>() <font class="keyword">const</font>;
00393     RefDiagSCMatrix <a class="code" href="class_sc__RefDiagSCMatrix.html#a13">clone</a>() <font class="keyword">const</font>;
00394     RefDiagSCMatrix copy() <font class="keyword">const</font>;
00395     <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00396     <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00397     <font class="keywordtype">double</font> get_element(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00398     <font class="keywordtype">void</font> randomize() <font class="keyword">const</font>;
00399     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> RefDiagSCMatrix&amp;) <font class="keyword">const</font>;
00400     <font class="keywordtype">void</font> scale(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00401     <font class="keywordtype">void</font> assign(<font class="keywordtype">double</font>) <font class="keyword">const</font>;
00402     <font class="keywordtype">void</font> assign(<font class="keyword">const</font> <font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00403     <font class="keywordtype">void</font> convert(<font class="keywordtype">double</font>*) <font class="keyword">const</font>;
00404     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> RefDiagSCMatrix&amp;) <font class="keyword">const</font>;
00405     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;) <font class="keyword">const</font>;
00406     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00407                     <font class="keyword">const</font> RefDiagSCMatrix&amp;) <font class="keyword">const</font>;
00408     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00409                     <font class="keyword">const</font> RefDiagSCMatrix&amp;,
00410                     <font class="keyword">const</font> RefDiagSCMatrix&amp;) <font class="keyword">const</font>;
00411     <font class="keywordtype">int</font> n() <font class="keyword">const</font>;
00412     RefSCDimension dim() <font class="keyword">const</font>;
00413     Ref&lt;SCMatrixKit&gt; kit() <font class="keyword">const</font>;
00414     <font class="keywordtype">double</font> trace() <font class="keyword">const</font>;
00415     <font class="keywordtype">void</font> print(std::ostream&amp;) <font class="keyword">const</font>;
00416     <font class="keywordtype">void</font> print(<font class="keyword">const</font> <font class="keywordtype">char</font>*title=0,
00417                std::ostream&amp;out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00418     <font class="keywordtype">void</font> save(StateOut&amp;);
00419     <font class="keywordtype">void</font> restore(StateIn&amp;);
00421     <font class="keywordtype">double</font> <a class="code" href="class_sc__RefDiagSCMatrix.html#a36">determ</a>() <font class="keyword">const</font>;
00423     DiagSCMatrixdouble <a class="code" href="class_sc__RefDiagSCMatrix.html#a37">operator()</a>(<font class="keywordtype">int</font> i) <font class="keyword">const</font>;
00424 };
00426 RefDiagSCMatrix operator*(<font class="keywordtype">double</font>,<font class="keyword">const</font> RefDiagSCMatrix&amp;);
00427 
00428 <font class="keyword">class </font>SCVectordouble {
00429    <font class="keyword">friend</font> <font class="keyword">class </font>RefSCVector;
00430   <font class="keyword">private</font>:
00431     RefSCVector vector;
00432     <font class="keywordtype">int</font> i;
00433     
00434     SCVectordouble(SCVector*,<font class="keywordtype">int</font>);
00435   <font class="keyword">public</font>:
00436     SCVectordouble(<font class="keyword">const</font> SCVectordouble&amp;);
00437     ~SCVectordouble();
00438     <font class="keywordtype">double</font> operator=(<font class="keywordtype">double</font> a);
00439     <font class="keywordtype">double</font> operator=(<font class="keyword">const</font> SCVectordouble&amp;);
00440     operator double();
00441     <font class="keywordtype">double</font> val() <font class="keyword">const</font>;
00442 };
00443 
00444 <font class="keyword">class </font>SCMatrixdouble {
00445    <font class="keyword">friend</font> <font class="keyword">class </font>RefSCMatrix;
00446   <font class="keyword">private</font>:
00447     RefSCMatrix matrix;
00448     <font class="keywordtype">int</font> i;
00449     <font class="keywordtype">int</font> j;
00450     
00451     SCMatrixdouble(SCMatrix*,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00452   <font class="keyword">public</font>:
00453     SCMatrixdouble(<font class="keyword">const</font> SCMatrixdouble&amp;);
00454     ~SCMatrixdouble();
00455     <font class="keywordtype">double</font> operator=(<font class="keywordtype">double</font> a);
00456     <font class="keywordtype">double</font> operator=(<font class="keyword">const</font> SCMatrixdouble&amp;);
00457     operator double();
00458     <font class="keywordtype">double</font> val() <font class="keyword">const</font>;
00459 };
00460 
00461 <font class="keyword">class </font>SymmSCMatrixdouble {
00462    <font class="keyword">friend</font> <font class="keyword">class </font>RefSymmSCMatrix;
00463   <font class="keyword">private</font>:
00464     RefSymmSCMatrix matrix;
00465     <font class="keywordtype">int</font> i;
00466     <font class="keywordtype">int</font> j;
00467     
00468     SymmSCMatrixdouble(SymmSCMatrix*,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00469   <font class="keyword">public</font>:
00470     SymmSCMatrixdouble(<font class="keyword">const</font> SCMatrixdouble&amp;);
00471     ~SymmSCMatrixdouble();
00472     <font class="keywordtype">double</font> operator=(<font class="keywordtype">double</font> a);
00473     <font class="keywordtype">double</font> operator=(<font class="keyword">const</font> SymmSCMatrixdouble&amp;);
00474     operator double();
00475     <font class="keywordtype">double</font> val() <font class="keyword">const</font>;
00476 };
00477 
00478 <font class="keyword">class </font>DiagSCMatrixdouble {
00479    <font class="keyword">friend</font> <font class="keyword">class </font>RefDiagSCMatrix;
00480   <font class="keyword">private</font>:
00481     RefDiagSCMatrix matrix;
00482     <font class="keywordtype">int</font> i;
00483     <font class="keywordtype">int</font> j;
00484     
00485     DiagSCMatrixdouble(DiagSCMatrix*,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00486   <font class="keyword">public</font>:
00487     DiagSCMatrixdouble(<font class="keyword">const</font> SCMatrixdouble&amp;);
00488     ~DiagSCMatrixdouble();
00489     <font class="keywordtype">double</font> operator=(<font class="keywordtype">double</font> a);
00490     <font class="keywordtype">double</font> operator=(<font class="keyword">const</font> DiagSCMatrixdouble&amp;);
00491     operator double();
00492     <font class="keywordtype">double</font> val() <font class="keyword">const</font>;
00493 };
00494 
00495 }
00496 
00497 <font class="preprocessor">#ifdef INLINE_FUNCTIONS</font>
00498 <font class="preprocessor"></font><font class="preprocessor">#include &lt;math/scmat/matrix_i.h&gt;</font>
00499 <font class="preprocessor">#endif</font>
00500 <font class="preprocessor"></font>
00501 <font class="preprocessor">#endif</font>
00502 <font class="preprocessor"></font>
00503 <font class="comment">// Local Variables:</font>
00504 <font class="comment">// mode: c++</font>
00505 <font class="comment">// c-file-style: "CLJ"</font>
00506 <font class="comment">// End:</font>
</div></pre><hr>
<address>
<small>

Generated at Mon Oct 14 14:16:37 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>