32 #ifndef _math_scmat_local_h 33 #define _math_scmat_local_h 35 #include <math/scmat/block.h> 36 #include <math/scmat/matrix.h> 37 #include <math/scmat/abstract.h> 41 class LocalSCMatrixKit;
44 class LocalSymmSCMatrix;
45 class LocalDiagSCMatrix;
72 void assign_val(
double);
74 void assign_p(
const double*);
76 void set_element(
int,
double);
77 void accumulate_element(
int,
double);
78 double get_element(
int)
const;
89 void vprint(
const char* title=0,
108 int compute_offset(
int,
int)
const;
109 void resize(
int,
int);
116 void assign_val(
double);
117 double get_element(
int,
int)
const;
118 void set_element(
int,
int,
double);
119 void accumulate_element(
int,
int,
double);
120 SCMatrix * get_subblock(
int,
int,
int,
int);
121 void assign_subblock(
SCMatrix*,
int,
int,
int,
int,
int=0,
int=0);
122 void accumulate_subblock(
SCMatrix*,
int,
int,
int,
int,
int=0,
int=0);
125 void assign_row(
SCVector *v,
int i);
126 void assign_column(
SCVector *v,
int i);
127 void accumulate_row(
SCVector *v,
int i);
128 void accumulate_column(
SCVector *v,
int i);
137 void transpose_this();
138 double invert_this();
141 double determ_this();
144 int schmidt_orthog_tol(
SymmSCMatrix*,
double tol,
double *res=0);
150 void vprint(
const char* title=0,
170 int compute_offset(
int,
int)
const;
177 double get_element(
int,
int)
const;
178 void set_element(
int,
int,
double);
179 void accumulate_element(
int,
int,
double);
181 SCMatrix * get_subblock(
int,
int,
int,
int);
183 void assign_subblock(
SCMatrix*,
int,
int,
int,
int);
185 void accumulate_subblock(
SCMatrix*,
int,
int,
int,
int);
188 void assign_row(
SCVector *v,
int i);
189 void accumulate_row(
SCVector *v,
int i);
193 double invert_this();
196 double determ_this();
197 void gen_invert_this();
201 void accumulate_symmetric_outer_product(
SCVector*);
202 void accumulate_symmetric_product(
SCMatrix*);
203 void accumulate_symmetric_sum(
SCMatrix*);
205 SCMatrix::Transform = SCMatrix::NormalTransform);
207 SCMatrix::Transform = SCMatrix::NormalTransform);
214 void vprint(
const char* title=0,
238 double get_element(
int)
const;
239 void set_element(
int,
double);
240 void accumulate_element(
int,
double);
242 double invert_this();
243 double determ_this();
245 void gen_invert_this();
252 void vprint(
const char* title=0,
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
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
SCMatrix * matrix(const RefSCDimension &, const RefSCDimension &)
Given the dimensions, create matrices or vectors.
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
The SCVector class is the abstract base class for double valued vectors.
Definition: abstract.h:97
static std::ostream & out0()
Return an ostream that writes from node 0.
The SymmSCMatrix class is the abstract base class for symmetric double valued matrices.
Definition: abstract.h:364
The LocalSCMatrixKit produces matrices that work in a single processor environment.
Definition: local.h:49