<!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> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="pages.html">Related Pages</a> </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 <cljanss@limitpt.com></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 <math/scmat/block.h></font> 00036 <font class="preprocessor">#include <math/scmat/elemop.h></font> 00037 <font class="preprocessor">#include <math/scmat/matrix.h></font> 00038 <font class="preprocessor">#include <math/scmat/abstract.h></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<SCMatrixKit> subkit_; 00051 <font class="keyword">public</font>: 00052 BlockedSCMatrixKit(<font class="keyword">const</font> Ref<SCMatrixKit>& subkit); 00053 BlockedSCMatrixKit(<font class="keyword">const</font> Ref<KeyVal>&); 00054 ~BlockedSCMatrixKit(); 00055 SCMatrix* matrix(<font class="keyword">const</font> RefSCDimension&,<font class="keyword">const</font> RefSCDimension&); 00056 SymmSCMatrix* symmmatrix(<font class="keyword">const</font> RefSCDimension&); 00057 DiagSCMatrix* diagmatrix(<font class="keyword">const</font> RefSCDimension&); 00058 SCVector* vector(<font class="keyword">const</font> RefSCDimension&); 00059 00060 Ref<SCMatrixKit> 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<SCMatrixKit> 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&, 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&); 00080 <font class="keywordtype">void</font> restore(StateIn&); 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<SCElementOp>&); 00098 <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref<SCElementOp2>&, 00099 SCVector*); 00100 <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref<SCElementOp3>&, 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& 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<SCMatrixSubblockIter> local_blocks(SCMatrixSubblockIter::Access); 00112 Ref<SCMatrixSubblockIter> 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<SCMatrixKit> 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&, <font class="keyword">const</font> RefSCDimension&, 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&); 00133 <font class="keywordtype">void</font> restore(StateIn&); 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<SCElementOp>&); 00171 <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref<SCElementOp2>&, 00172 SCMatrix*); 00173 <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref<SCElementOp3>&, 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& 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<SCMatrixSubblockIter> local_blocks(SCMatrixSubblockIter::Access); 00188 Ref<SCMatrixSubblockIter> 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<SCMatrixKit> 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&,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&); 00207 <font class="keywordtype">void</font> restore(StateIn&); 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<SCElementOp>&); 00248 <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref<SCElementOp2>&, 00249 SymmSCMatrix*); 00250 <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref<SCElementOp3>&, 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& 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<SCMatrixSubblockIter> local_blocks(SCMatrixSubblockIter::Access); 00263 Ref<SCMatrixSubblockIter> 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<SCMatrixKit> 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&,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&); 00282 <font class="keywordtype">void</font> restore(StateIn&); 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<SCElementOp>&); 00295 <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref<SCElementOp2>&, 00296 DiagSCMatrix*); 00297 <font class="keywordtype">void</font> element_op(<font class="keyword">const</font> Ref<SCElementOp3>&, 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& 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<SCMatrixSubblockIter> local_blocks(SCMatrixSubblockIter::Access); 00309 Ref<SCMatrixSubblockIter> 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>