Sophie

Sophie

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

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>blocked.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:36 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>blocked.h</h1><div class="fragment"><pre>00001 <font class="comment">//</font>
00002 <font class="comment">// blocked.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">#ifdef __GNUC__</font>
00029 <font class="preprocessor"></font><font class="preprocessor">#pragma interface</font>
00030 <font class="preprocessor"></font><font class="preprocessor">#endif</font>
00031 <font class="preprocessor"></font>
00032 <font class="preprocessor">#ifndef _math_scmat_blocked_h</font>
00033 <font class="preprocessor"></font><font class="preprocessor">#define _math_scmat_blocked_h</font>
00034 <font class="preprocessor"></font>
00035 <font class="preprocessor">#include &lt;math/scmat/block.h&gt;</font>
00036 <font class="preprocessor">#include &lt;math/scmat/elemop.h&gt;</font>
00037 <font class="preprocessor">#include &lt;math/scmat/matrix.h&gt;</font>
00038 <font class="preprocessor">#include &lt;math/scmat/abstract.h&gt;</font>
00039 
00040 <font class="keyword">namespace </font>sc {
00041 
00042 <font class="keyword">class </font>BlockedSCMatrixKit;
00043 <font class="keyword">class </font>BlockedSCVector;
00044 <font class="keyword">class </font>BlockedSCMatrix;
00045 <font class="keyword">class </font>BlockedSymmSCMatrix;
00046 <font class="keyword">class </font>BlockedDiagSCMatrix;
00047 
00048 <font class="keyword">class </font>BlockedSCMatrixKit: <font class="keyword">public</font> SCMatrixKit {
00049   <font class="keyword">private</font>:
00050     Ref&lt;SCMatrixKit&gt; subkit_;
00051   <font class="keyword">public</font>:
00052     BlockedSCMatrixKit(<font class="keyword">const</font> Ref&lt;SCMatrixKit&gt;&amp; subkit);
00053     BlockedSCMatrixKit(<font class="keyword">const</font> Ref&lt;KeyVal&gt;&amp;);
00054     ~BlockedSCMatrixKit();
00055     SCMatrix* matrix(<font class="keyword">const</font> RefSCDimension&amp;,<font class="keyword">const</font> RefSCDimension&amp;);
00056     SymmSCMatrix* symmmatrix(<font class="keyword">const</font> RefSCDimension&amp;);
00057     DiagSCMatrix* diagmatrix(<font class="keyword">const</font> RefSCDimension&amp;);
00058     SCVector* vector(<font class="keyword">const</font> RefSCDimension&amp;);
00059 
00060     Ref&lt;SCMatrixKit&gt; subkit()<font class="keyword"> </font>{ <font class="keywordflow">return</font> subkit_; }
00061 };
00062 
00063 
00064 <font class="keyword">class </font>BlockedSCVector: <font class="keyword">public</font> SCVector {
00065     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedSCMatrix;
00066     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedSymmSCMatrix;
00067     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedDiagSCMatrix;
00068   <font class="keyword">private</font>:
00069     Ref&lt;SCMatrixKit&gt; subkit;
00070     RefSCVector *vecs_;
00071 
00072     <font class="keywordtype">void</font> resize(SCDimension*);
00073 
00074   <font class="keyword">public</font>:
00075     BlockedSCVector(<font class="keyword">const</font> RefSCDimension&amp;, BlockedSCMatrixKit*);
00076     ~BlockedSCVector();
00077 
00078     <font class="comment">// Save and restore this in an implementation independent way.</font>
00079     <font class="keywordtype">void</font> save(StateOut&amp;);
00080     <font class="keywordtype">void</font> restore(StateIn&amp;);
00081 
00082     <font class="keywordtype">void</font> assign_val(<font class="keywordtype">double</font>);
00083     <font class="keywordtype">void</font> assign_v(SCVector*);
00084     <font class="keywordtype">void</font> assign_p(<font class="keyword">const</font> <font class="keywordtype">double</font>*);
00085 
00086     <font class="keywordtype">double</font> get_element(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00087     <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">double</font>);
00088     <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">double</font>);
00089 
00090     <font class="keywordtype">void</font> accumulate_product_rv(SCMatrix*,SCVector*);
00091     <font class="keywordtype">void</font> accumulate_product_sv(SymmSCMatrix*,SCVector*);
00092 
00093     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> SCVector*);
00094     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> SCMatrix*);
00095     <font class="keywordtype">double</font> scalar_product(SCVector*);
00096 
00097     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;);
00098     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00099                     SCVector*);
00100     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00101                     SCVector*,SCVector*);
00102     <font class="keywordtype">void</font> vprint(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,
00103                 std::ostream&amp; out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00104 
00105     <font class="comment">// BlockedSCVector specific functions</font>
00106     RefSCDimension dim()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d; }
00107     RefSCDimension dim(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00108     <font class="keywordtype">int</font> nblocks() <font class="keyword">const</font>;
00109     RefSCVector block(<font class="keywordtype">int</font>);
00110 
00111     Ref&lt;SCMatrixSubblockIter&gt; local_blocks(SCMatrixSubblockIter::Access);
00112     Ref&lt;SCMatrixSubblockIter&gt; all_blocks(SCMatrixSubblockIter::Access);
00113 };
00114 
00115 <font class="keyword">class </font>BlockedSCMatrix: <font class="keyword">public</font> SCMatrix {
00116     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedSymmSCMatrix;
00117     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedDiagSCMatrix;
00118     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedSCVector;
00119   <font class="keyword">private</font>:
00120     Ref&lt;SCMatrixKit&gt; subkit;
00121     RefSCMatrix *mats_;
00122     <font class="keywordtype">int</font> nblocks_;
00123     
00124     <font class="keywordtype">void</font> resize(SCDimension*, SCDimension*);
00125 
00126   <font class="keyword">public</font>:
00127     BlockedSCMatrix(<font class="keyword">const</font> RefSCDimension&amp;, <font class="keyword">const</font> RefSCDimension&amp;,
00128                     BlockedSCMatrixKit*);
00129     ~BlockedSCMatrix();
00130 
00131     <font class="comment">// Save and restore this in an implementation independent way.</font>
00132     <font class="keywordtype">void</font> save(StateOut&amp;);
00133     <font class="keywordtype">void</font> restore(StateIn&amp;);
00134 
00135     <font class="keywordtype">void</font> assign_val(<font class="keywordtype">double</font>);
00136     <font class="keywordtype">double</font> get_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00137     <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>);
00138     <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>);
00139 
00140     SCMatrix * get_subblock(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00141     <font class="keywordtype">void</font> assign_subblock(SCMatrix*, <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);
00142     <font class="keywordtype">void</font> accumulate_subblock(SCMatrix*, <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);
00143 
00144     SCVector * get_row(<font class="keywordtype">int</font> i);
00145     SCVector * get_column(<font class="keywordtype">int</font> i);
00146     <font class="keywordtype">void</font> assign_row(SCVector *v, <font class="keywordtype">int</font> i);
00147     <font class="keywordtype">void</font> assign_column(SCVector *v, <font class="keywordtype">int</font> i);
00148     <font class="keywordtype">void</font> accumulate_row(SCVector *v, <font class="keywordtype">int</font> i);
00149     <font class="keywordtype">void</font> accumulate_column(SCVector *v, <font class="keywordtype">int</font> i);
00150 
00151     <font class="keywordtype">void</font> accumulate_outer_product(SCVector*,SCVector*);
00152     <font class="keywordtype">void</font> accumulate_product_rr(SCMatrix*,SCMatrix*);
00153     <font class="keywordtype">void</font> accumulate_product_rs(SCMatrix*,SymmSCMatrix*);
00154     <font class="keywordtype">void</font> accumulate_product_rd(SCMatrix*,DiagSCMatrix*);
00155     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> SCMatrix*);
00156     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> SymmSCMatrix*);
00157     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> DiagSCMatrix*);
00158     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> SCVector*);
00159 
00160     <font class="keywordtype">void</font> transpose_this();
00161     <font class="keywordtype">double</font> invert_this();
00162     <font class="keywordtype">void</font> svd_this(SCMatrix *U, DiagSCMatrix *sigma, SCMatrix *V);
00163     <font class="keywordtype">double</font> solve_this(SCVector*);
00164     <font class="keywordtype">double</font> determ_this();
00165     <font class="keywordtype">double</font> trace();
00166     <font class="keywordtype">void</font> gen_invert_this();
00167     <font class="keywordtype">void</font> schmidt_orthog(SymmSCMatrix*,<font class="keywordtype">int</font>);
00168     <font class="keywordtype">int</font> schmidt_orthog_tol(SymmSCMatrix*, <font class="keywordtype">double</font> tol, <font class="keywordtype">double</font> *res=0);
00169 
00170     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;);
00171     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00172                     SCMatrix*);
00173     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00174                     SCMatrix*,SCMatrix*);
00175 
00176     <font class="keywordtype">void</font> vprint(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,
00177                 std::ostream&amp; out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00178 
00179     <font class="comment">// BlockedSCMatrix specific functions</font>
00180     RefSCDimension rowdim()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d1; }
00181     RefSCDimension coldim()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d2; }
00182     RefSCDimension rowdim(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00183     RefSCDimension coldim(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00184     <font class="keywordtype">int</font> nblocks() <font class="keyword">const</font>;
00185     RefSCMatrix block(<font class="keywordtype">int</font>);
00186 
00187     Ref&lt;SCMatrixSubblockIter&gt; local_blocks(SCMatrixSubblockIter::Access);
00188     Ref&lt;SCMatrixSubblockIter&gt; all_blocks(SCMatrixSubblockIter::Access);
00189 };
00190 
00191 <font class="keyword">class </font>BlockedSymmSCMatrix: <font class="keyword">public</font> SymmSCMatrix {
00192     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedSCMatrix;
00193     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedDiagSCMatrix;
00194     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedSCVector;
00195   <font class="keyword">private</font>:
00196     Ref&lt;SCMatrixKit&gt; subkit;
00197     RefSymmSCMatrix *mats_;
00198 
00199     <font class="keywordtype">void</font> resize(SCDimension*);
00200 
00201   <font class="keyword">public</font>:
00202     BlockedSymmSCMatrix(<font class="keyword">const</font> RefSCDimension&amp;,BlockedSCMatrixKit*);
00203     ~BlockedSymmSCMatrix();
00204 
00205     <font class="comment">// Save and restore this in an implementation independent way.</font>
00206     <font class="keywordtype">void</font> save(StateOut&amp;);
00207     <font class="keywordtype">void</font> restore(StateIn&amp;);
00208 
00209     <font class="keywordtype">double</font> get_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00210     <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>);
00211     <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">double</font>);
00212     <font class="keywordtype">void</font> scale(<font class="keywordtype">double</font>);
00213     <font class="keywordtype">void</font> assign_val(<font class="keywordtype">double</font>);
00214     <font class="keywordtype">void</font> assign_s(SymmSCMatrix*m);
00215 
00216     SCMatrix * get_subblock(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00217     SymmSCMatrix * get_subblock(<font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00218     <font class="keywordtype">void</font> assign_subblock(SCMatrix*, <font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00219     <font class="keywordtype">void</font> assign_subblock(SymmSCMatrix*, <font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00220     <font class="keywordtype">void</font> accumulate_subblock(SCMatrix*, <font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00221     <font class="keywordtype">void</font> accumulate_subblock(SymmSCMatrix*, <font class="keywordtype">int</font>,<font class="keywordtype">int</font>);
00222     SCVector * get_row(<font class="keywordtype">int</font> i);
00223     <font class="keywordtype">void</font> assign_row(SCVector *v, <font class="keywordtype">int</font> i);
00224     <font class="keywordtype">void</font> accumulate_row(SCVector *v, <font class="keywordtype">int</font> i);
00225 
00226     <font class="keywordtype">double</font> invert_this();
00227     <font class="keywordtype">double</font> determ_this();
00228     <font class="keywordtype">double</font> trace();
00229     <font class="keywordtype">double</font> solve_this(SCVector*);
00230     <font class="keywordtype">void</font> gen_invert_this();
00231 
00232     <font class="keywordtype">double</font> scalar_product(SCVector*);
00233     <font class="keywordtype">void</font> diagonalize(DiagSCMatrix*,SCMatrix*);
00234 
00235     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> SymmSCMatrix*);
00236     <font class="keywordtype">void</font> accumulate_symmetric_outer_product(SCVector*);
00237     <font class="keywordtype">void</font> accumulate_symmetric_product(SCMatrix*);
00238     <font class="keywordtype">void</font> accumulate_symmetric_sum(SCMatrix*);
00239     <font class="keywordtype">void</font> accumulate_transform(SCMatrix*,SymmSCMatrix*,
00240                               SCMatrix::Transform = SCMatrix::NormalTransform);
00241     <font class="keywordtype">void</font> accumulate_transform(SCMatrix*,DiagSCMatrix*,
00242                               SCMatrix::Transform = SCMatrix::NormalTransform);
00243     <font class="keywordtype">void</font> accumulate_transform(SymmSCMatrix*,SymmSCMatrix*);
00244 
00245     <font class="keywordtype">void</font> convert_accumulate(SymmSCMatrix*a);
00246 
00247     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;);
00248     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00249                     SymmSCMatrix*);
00250     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00251                     SymmSCMatrix*,SymmSCMatrix*);
00252 
00253     <font class="keywordtype">void</font> vprint(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,
00254                 std::ostream&amp; out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00255 
00256     <font class="comment">// BlockedSymmSCMatrix specific functions</font>
00257     RefSCDimension dim()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d; }
00258     RefSCDimension dim(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00259     <font class="keywordtype">int</font> nblocks() <font class="keyword">const</font>;
00260     RefSymmSCMatrix block(<font class="keywordtype">int</font>);
00261 
00262     Ref&lt;SCMatrixSubblockIter&gt; local_blocks(SCMatrixSubblockIter::Access);
00263     Ref&lt;SCMatrixSubblockIter&gt; all_blocks(SCMatrixSubblockIter::Access);
00264 };
00265 
00266 <font class="keyword">class </font>BlockedDiagSCMatrix: <font class="keyword">public</font> DiagSCMatrix {
00267     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedSCMatrix;
00268     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedSymmSCMatrix;
00269     <font class="keyword">friend</font> <font class="keyword">class </font>BlockedSCVector;
00270   <font class="keyword">private</font>:
00271     Ref&lt;SCMatrixKit&gt; subkit;
00272     RefDiagSCMatrix *mats_;
00273 
00274     <font class="keywordtype">void</font> resize(SCDimension*);
00275 
00276   <font class="keyword">public</font>:
00277     BlockedDiagSCMatrix(<font class="keyword">const</font> RefSCDimension&amp;,BlockedSCMatrixKit*);
00278     ~BlockedDiagSCMatrix();
00279 
00280     <font class="comment">// Save and restore this in an implementation independent way.</font>
00281     <font class="keywordtype">void</font> save(StateOut&amp;);
00282     <font class="keywordtype">void</font> restore(StateIn&amp;);
00283 
00284     <font class="keywordtype">double</font> get_element(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00285     <font class="keywordtype">void</font> set_element(<font class="keywordtype">int</font>,<font class="keywordtype">double</font>);
00286     <font class="keywordtype">void</font> accumulate_element(<font class="keywordtype">int</font>,<font class="keywordtype">double</font>);
00287     <font class="keywordtype">void</font> accumulate(<font class="keyword">const</font> DiagSCMatrix*);
00288 
00289     <font class="keywordtype">double</font> invert_this();
00290     <font class="keywordtype">double</font> determ_this();
00291     <font class="keywordtype">double</font> trace();
00292     <font class="keywordtype">void</font> gen_invert_this();
00293 
00294     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp&gt;&amp;);
00295     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp2&gt;&amp;,
00296                     DiagSCMatrix*);
00297     <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref&lt;SCElementOp3&gt;&amp;,
00298                     DiagSCMatrix*,DiagSCMatrix*);
00299     <font class="keywordtype">void</font> vprint(<font class="keyword">const</font> <font class="keywordtype">char</font>* title=0,
00300                 std::ostream&amp; out=ExEnv::out0(), <font class="keywordtype">int</font> =10) <font class="keyword">const</font>;
00301 
00302     <font class="comment">// BlockedDiagSCMatrix specific functions</font>
00303     RefSCDimension dim()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> d; }
00304     RefSCDimension dim(<font class="keywordtype">int</font>) <font class="keyword">const</font>;
00305     <font class="keywordtype">int</font> nblocks() <font class="keyword">const</font>;
00306     RefDiagSCMatrix block(<font class="keywordtype">int</font>);
00307 
00308     Ref&lt;SCMatrixSubblockIter&gt; local_blocks(SCMatrixSubblockIter::Access);
00309     Ref&lt;SCMatrixSubblockIter&gt; all_blocks(SCMatrixSubblockIter::Access);
00310 };
00311 
00312 <font class="keyword">class </font>BlockedSCElementOp : <font class="keyword">public</font> SCElementOp {
00313   <font class="keyword">private</font>:
00314     <font class="keywordtype">int</font> current_block_;
00315     
00316   <font class="keyword">public</font>:
00317     BlockedSCElementOp();
00318     <font class="keywordtype">void</font> working_on(<font class="keywordtype">int</font>);
00319     <font class="keywordtype">int</font> current_block() <font class="keyword">const</font>;
00320 };
00321 
00322 <font class="keyword">class </font>BlockedSCElementOp2 : <font class="keyword">public</font> SCElementOp2 {
00323   <font class="keyword">private</font>:
00324     <font class="keywordtype">int</font> current_block_;
00325     
00326   <font class="keyword">public</font>:
00327     BlockedSCElementOp2();
00328     <font class="keywordtype">void</font> working_on(<font class="keywordtype">int</font>);
00329     <font class="keywordtype">int</font> current_block() <font class="keyword">const</font>;
00330 };
00331 
00332 <font class="keyword">class </font>BlockedSCElementOp3 : <font class="keyword">public</font> SCElementOp3 {
00333   <font class="keyword">private</font>:
00334     <font class="keywordtype">int</font> current_block_;
00335     
00336   <font class="keyword">public</font>:
00337     BlockedSCElementOp3();
00338     <font class="keywordtype">void</font> working_on(<font class="keywordtype">int</font>);
00339     <font class="keywordtype">int</font> current_block() <font class="keyword">const</font>;
00340 };
00341 
00342 }
00343 
00344 <font class="preprocessor">#endif</font>
00345 <font class="preprocessor"></font>
00346 <font class="comment">// Local Variables:</font>
00347 <font class="comment">// mode: c++</font>
00348 <font class="comment">// c-file-style: "CLJ"</font>
00349 <font class="comment">// End:</font>
</div></pre><hr>
<address>
<small>

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