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;
84 void assign_p(
const double*);
102 void vprint(
const char* title=0,
137 void set_element(
int,
int,
double);
138 void accumulate_element(
int,
int,
double);
147 void assign_column(
SCVector *v,
int i);
149 void accumulate_column(
SCVector *v,
int i);
166 void gen_invert_this();
176 void vprint(
const char* title=0,
182 RefSCDimension
rowdim(
int)
const;
183 RefSCDimension coldim(
int)
const;
185 RefSCMatrix block(
int);
187 Ref<SCMatrixSubblockIter>
local_blocks(SCMatrixSubblockIter::Access);
188 Ref<SCMatrixSubblockIter>
all_blocks(SCMatrixSubblockIter::Access);
210 void set_element(
int,
int,
double);
211 void accumulate_element(
int,
int,
double);
230 void gen_invert_this();
236 void accumulate_symmetric_outer_product(
SCVector*);
237 void accumulate_symmetric_product(
SCMatrix*);
240 SCMatrix::Transform = SCMatrix::NormalTransform);
242 SCMatrix::Transform = SCMatrix::NormalTransform);
253 void vprint(
const char* title=0,
285 void set_element(
int,
double);
286 void accumulate_element(
int,
double);
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;