28 #ifndef _math_scmat_block_h
29 #define _math_scmat_block_h
31 #include <util/state/state.h>
59 virtual double *
dat();
60 virtual int ndat()
const;
90 return link != p.link;
92 void operator ++() { link = link->next(); }
93 void operator ++(
int) { link = link->next(); }
381 enum Access { Read, Write, Accum, None };
390 virtual void begin() = 0;
392 virtual int ready() = 0;
394 virtual void next() = 0;
398 Access
access()
const {
return access_; }
451 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:41
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:159
Access access() const
Return the type of Access allowed for these blocks.
Definition: block.h:398
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:253
A template class that maintains references counts.
Definition: ref.h:361
The SCMatrixRectBlock describes a rectangular piece of a matrix.
Definition: block.h:183
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:288
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:387
Objects of class SCElementOp are used to perform operations on the elements of matrices.
Definition: elemop.h:94
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.
The SCVectorSimpleSubBlock describes a subblock of a vector.
Definition: block.h:154
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:123
Definition: stateout.h:71
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:318
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:45
The SCMatrixRectSubBlock describes a rectangular piece of a matrix.
Definition: block.h:219
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:181
The base class for all reference counted objects.
Definition: ref.h:192
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:379
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
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:351
virtual SCMatrixBlock * deepcopy() const
Return of copy of this.
Generated at Sun Jan 26 2020 23:24:00 for MPQC
3.0.0-alpha using the documentation package Doxygen
1.8.16.