28 #ifndef _math_scmat_block_h 29 #define _math_scmat_block_h 35 #include <util/state/state.h> 63 virtual double *
dat();
64 virtual int ndat()
const;
94 return link != p.link;
96 void operator ++() { link = link->next(); }
97 void operator ++(
int) { link = link->next(); }
385 enum Access { Read, Write, Accum, None };
394 virtual void begin() = 0;
396 virtual int ready() = 0;
398 virtual void next() = 0;
402 Access
access()
const {
return access_; }
455 int current_block()
const {
return iiter_; }
virtual SCMatrixBlock * block()=0
Return the current block.
void begin()
Start at the beginning.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
virtual void begin()=0
Start at the beginning.
void next()
Proceed to the next block.
virtual int ready()=0
Returns nonzero if there is another block.
virtual void next()=0
Proceed to the next block.
int ready()
Returns nonzero if there is another block.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
SCMatrixBlock * block()
Return the current block.
int ready()
Returns nonzero if there is another block.
Serializes objects that derive from SavableState.
Definition: stateout.h:61
SCMatrixBlock * block()
Return the current block.
void begin()
Start at the beginning.
virtual double * dat()
Return a pointer to the block's data and the number of elements in the block.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void begin()
Start at the beginning.
Access access() const
Return the type of Access allowed for these blocks.
Definition: block.h:402
SCMatrixBlock * block()
Return the current block.
void begin()
Start at the beginning.
double * dat()
Return a pointer to the block's data and the number of elements in the block.
The base class for all reference counted objects.
Definition: ref.h:194
The SCMatrixRectBlock describes a rectangular piece of a matrix.
Definition: block.h:187
The SCVectorSimpleBlock describes a piece of a vector.
Definition: block.h:127
A template class that maintains references counts.
Definition: ref.h:332
SCMatrixBlock is the base clase for all types of blocks that comprise matrices and vectors...
Definition: block.h:45
void next()
Proceed to the next block.
The SCMatrixRectSubBlock describes a rectangular piece of a matrix.
Definition: block.h:223
SCMatrixBlock * block()
Return the current block.
double * dat()
Return a pointer to the block's data and the number of elements in the block.
void begin()
Start at the beginning.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void next()
Proceed to the next block.
virtual SCMatrixBlock * deepcopy() const
Return of copy of this.
SCMatrixBlock * deepcopy() const
Return of copy of this.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
SCMatrixBlock * deepcopy() const
Return of copy of this.
The SCMatrixDiagSubBlock describes a diagonal subblock of a matrix.
Definition: block.h:355
SCMatrixBlock * block()
Return the current block.
Restores objects that derive from SavableState.
Definition: statein.h:70
SCMatrixBlock * deepcopy() const
Return of copy of this.
void next()
Proceed to the next block.
int ready()
Returns nonzero if there is another block.
The SCElementOp2 class is very similar to the SCElementOp class except that pairs of blocks are treat...
Definition: elemop.h:125
SCMatrixSubblockIter(Access access)
The access variable should be one of Read, Write, Accum, and None, with the SCMatrixSubblockIter:: sc...
Definition: block.h:391
The SCVectorSimpleSubBlock describes a subblock of a vector.
Definition: block.h:158
void save_data_state(StateOut &s)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
The SCMatrixLTriBlock describes a triangular piece of a matrix.
Definition: block.h:257
void next()
Proceed to the next block.
int ready()
Returns nonzero if there is another block.
Objects of class SCMatrixSubblockIter are used to iterate through the blocks of a matrix...
Definition: block.h:383
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
double * dat()
Return a pointer to the block's data and the number of elements in the block.
The SCElementOp3 class is very similar to the SCElementOp class except that a triplet of blocks is tr...
Definition: elemop.h:147
The SCMatrixLTriSubBlock describes a triangular subblock of a matrix.
Definition: block.h:292
double * dat()
Return a pointer to the block's data and the number of elements in the block.
Objects of class SCElementOp are used to perform operations on the elements of matrices.
Definition: elemop.h:60
int ready()
Returns nonzero if there is another block.
Base class for objects that can save/restore state.
Definition: state.h:46
SCMatrixBlock * deepcopy() const
Return of copy of this.
The SCMatrixDiagBlock describes a diagonal piece of a matrix.
Definition: block.h:322