32 #ifndef _math_scmat_blocked_h 33 #define _math_scmat_blocked_h 35 #include <math/scmat/block.h> 36 #include <math/scmat/elemop.h> 37 #include <math/scmat/matrix.h> 38 #include <math/scmat/abstract.h> 42 class BlockedSCMatrixKit;
43 class BlockedSCVector;
44 class BlockedSCMatrix;
45 class BlockedSymmSCMatrix;
46 class BlockedDiagSCMatrix;
82 void assign_val(
double);
84 void assign_p(
const double*);
86 double get_element(
int)
const;
87 void set_element(
int,
double);
88 void accumulate_element(
int,
double);
102 void vprint(
const char* title=0,
135 void assign_val(
double);
136 double get_element(
int,
int)
const;
137 void set_element(
int,
int,
double);
138 void accumulate_element(
int,
int,
double);
140 SCMatrix * get_subblock(
int,
int,
int,
int);
141 void assign_subblock(
SCMatrix*,
int,
int,
int,
int,
int=0,
int=0);
142 void accumulate_subblock(
SCMatrix*,
int,
int,
int,
int,
int=0,
int=0);
146 void assign_row(
SCVector *v,
int i);
147 void assign_column(
SCVector *v,
int i);
148 void accumulate_row(
SCVector *v,
int i);
149 void accumulate_column(
SCVector *v,
int i);
160 void transpose_this();
161 double invert_this();
164 double determ_this();
166 void gen_invert_this();
168 int schmidt_orthog_tol(
SymmSCMatrix*,
double tol,
double *res=0);
176 void vprint(
const char* title=0,
209 double get_element(
int,
int)
const;
210 void set_element(
int,
int,
double);
211 void accumulate_element(
int,
int,
double);
213 void assign_val(
double);
216 SCMatrix * get_subblock(
int,
int,
int,
int);
218 void assign_subblock(
SCMatrix*,
int,
int,
int,
int);
220 void accumulate_subblock(
SCMatrix*,
int,
int,
int,
int);
223 void assign_row(
SCVector *v,
int i);
224 void accumulate_row(
SCVector *v,
int i);
226 double invert_this();
227 double determ_this();
230 void gen_invert_this();
236 void accumulate_symmetric_outer_product(
SCVector*);
237 void accumulate_symmetric_product(
SCMatrix*);
238 void accumulate_symmetric_sum(
SCMatrix*);
240 SCMatrix::Transform = SCMatrix::NormalTransform);
242 SCMatrix::Transform = SCMatrix::NormalTransform);
253 void vprint(
const char* title=0,
284 double get_element(
int)
const;
285 void set_element(
int,
double);
286 void accumulate_element(
int,
double);
289 double invert_this();
290 double determ_this();
292 void gen_invert_this();
299 void vprint(
const char* title=0,
318 void working_on(
int);
319 int current_block()
const;
328 void working_on(
int);
329 int current_block()
const;
338 void working_on(
int);
339 int current_block()
const;
Definition: blocked.h:191
The RefSCVector class is a smart pointer to an SCVector specialization.
Definition: matrix.h:55
Serializes objects that derive from SavableState.
Definition: stateout.h:61
The SCMatrix class is the abstract base class for general double valued n by m matrices.
Definition: abstract.h:195
The RefDiagSCMatrix class is a smart pointer to an DiagSCMatrix specialization.
Definition: matrix.h:380
A template class that maintains references counts.
Definition: ref.h:332
The SCMatrixKit abstract class acts as a factory for producing matrices.
Definition: abstract.h:58
Definition: blocked.h:332
Definition: blocked.h:312
Definition: blocked.h:266
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization. ...
Definition: matrix.h:261
Definition: blocked.h:322
The SymmSCMatrix class is the abstract base class for diagonal double valued matrices.
Definition: abstract.h:503
The RefSCDimension class is a smart pointer to an SCDimension specialization.
Definition: dim.h:156
Restores objects that derive from SavableState.
Definition: statein.h:70
The SCVector class is the abstract base class for double valued vectors.
Definition: abstract.h:97
SCMatrix * matrix(const RefSCDimension &, const RefSCDimension &)
Given the dimensions, create matrices or vectors.
The SCElementOp2 class is very similar to the SCElementOp class except that pairs of blocks are treat...
Definition: elemop.h:125
static std::ostream & out0()
Return an ostream that writes from node 0.
The RefSCMatrix class is a smart pointer to an SCMatrix specialization.
Definition: matrix.h:135
The SymmSCMatrix class is the abstract base class for symmetric double valued matrices.
Definition: abstract.h:364
The SCElementOp3 class is very similar to the SCElementOp class except that a triplet of blocks is tr...
Definition: elemop.h:147
Objects of class SCElementOp are used to perform operations on the elements of matrices.
Definition: elemop.h:60
Definition: blocked.h:115
The SCDimension class is used to determine the size and blocking of matrices.
Definition: dim.h:109