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_; }
int ready()
Returns nonzero if there is another block.
void next()
Proceed to the next 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 is the base clase for all types of blocks that comprise matrices and vectors.
Definition: block.h:45
void begin()
Start at the beginning.
The SCElementOp2 class is very similar to the SCElementOp class except that pairs of blocks are treat...
Definition: elemop.h:125
Access access() const
Return the type of Access allowed for these blocks.
Definition: block.h:402
double * dat()
Return a pointer to the block's data and the number of elements in the block.
double * dat()
Return a pointer to the block's data and the number of elements in the block.
The SCMatrixLTriBlock describes a triangular piece of a matrix.
Definition: block.h:257
A template class that maintains references counts.
Definition: ref.h:332
The SCMatrixRectBlock describes a rectangular piece of a matrix.
Definition: block.h:187
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.
virtual void next()=0
Proceed to the next block.
The SCMatrixLTriSubBlock describes a triangular subblock of a matrix.
Definition: block.h:292
void next()
Proceed to the next 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 * deepcopy() const
Return of copy of this.
SCMatrixBlock * block()
Return the current 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 ...
int ready()
Returns nonzero if there is another block.
SCMatrixSubblockIter(Access access)
The access variable should be one of Read, Write, Accum, and None, with the SCMatrixSubblockIter:: sc...
Definition: block.h:391
Objects of class SCElementOp are used to perform operations on the elements of matrices.
Definition: elemop.h:60
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
Restores objects that derive from SavableState.
Definition: statein.h:70
SCMatrixBlock * deepcopy() const
Return of copy of this.
SCMatrixBlock * block()
Return the current block.
The SCVectorSimpleSubBlock describes a subblock of a vector.
Definition: block.h:158
SCMatrixBlock * block()
Return the current block.
virtual void begin()=0
Start at the beginning.
void begin()
Start at the beginning.
void begin()
Start at the beginning.
SCMatrixBlock * deepcopy() const
Return of copy of this.
double * dat()
Return a pointer to the block's data and the number of elements in the block.
void begin()
Start at the beginning.
int ready()
Returns nonzero if there is another block.
The SCVectorSimpleBlock describes a piece of a vector.
Definition: block.h:127
Serializes objects that derive from SavableState.
Definition: stateout.h:61
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.
The SCMatrixDiagBlock describes a diagonal piece of a matrix.
Definition: block.h:322
virtual SCMatrixBlock * block()=0
Return the current block.
virtual int ready()=0
Returns nonzero if there is another block.
SCMatrixBlock * block()
Return the current block.
int ready()
Returns nonzero if there is another block.
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 save_data_state(StateOut &s)
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.
Base class for objects that can save/restore state.
Definition: state.h:46
The SCMatrixRectSubBlock describes a rectangular piece of a matrix.
Definition: block.h:223
SCMatrixBlock * deepcopy() const
Return of copy of this.
The SCElementOp3 class is very similar to the SCElementOp class except that a triplet of blocks is tr...
Definition: elemop.h:147
The base class for all reference counted objects.
Definition: ref.h:194
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.
void next()
Proceed to the next block.
Objects of class SCMatrixSubblockIter are used to iterate through the blocks of a matrix.
Definition: block.h:383
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 ...
The SCMatrixDiagSubBlock describes a diagonal subblock of a matrix.
Definition: block.h:355
virtual SCMatrixBlock * deepcopy() const
Return of copy of this.
Generated at Sun Jan 26 2020 23:33:03 for MPQC
2.3.1 using the documentation package Doxygen
1.8.16.