#include <abstract.h>
Inheritance diagram for SymmSCMatrix
Public Methods | |
SymmSCMatrix (const RefSCDimension &, SCMatrixKit *) | |
Ref<SCMatrixKit> | kit () const |
Return the SCMatrixKit object that created this object. | |
virtual void | save (StateOut &) |
Save and restore this in an implementation independent way. | |
virtual void | restore (StateIn &) |
virtual double | maxabs () const |
Return the maximum absolute value element of this vector. | |
virtual void | randomize () |
Assign each element to a random number between -1 and 1. | |
void | assign (double val) |
Set all elements to val. | |
void | assign (const double *m) |
Assign element i, j to m[i*(i+1)/2+j]. | |
void | assign (const double **m) |
Assign element i, j to m[i][j]. | |
void | assign (SymmSCMatrix *m) |
Make this have the same elements as m. More... | |
virtual void | assign_val (double val) |
Overridden to implement the assign functions. | |
virtual void | assign_p (const double *m) |
virtual void | assign_pp (const double **m) |
virtual void | assign_s (SymmSCMatrix *m) |
virtual void | convert (double *) const |
Like the assign members, but these write values to the arguments. | |
virtual void | convert (double **) const |
virtual void | convert (SymmSCMatrix *) |
Convert an SCSymmSCMatrix of a different specialization to this specialization and possibly accumulate the data. | |
virtual void | convert_accumulate (SymmSCMatrix *) |
virtual void | scale (double) |
Multiply all elements by val. | |
virtual void | scale_diagonal (double) |
Scale the diagonal elements by val. | |
virtual void | shift_diagonal (double) |
Shift the diagonal elements by val. | |
virtual void | unit () |
Make this equal to the unit matrix. | |
int | n () const |
Return the dimension. | |
virtual SymmSCMatrix* | copy () |
Return a matrix with the same dimension and same elements. | |
virtual SymmSCMatrix* | clone () |
Return a matrix with the same dimension but uninitialized memory. | |
RefSCDimension | dim () const |
Return the dimension. | |
virtual double | get_element (int, int) const=0 |
Return or modify an element. | |
virtual void | set_element (int, int, double)=0 |
virtual void | accumulate_element (int, int, double)=0 |
virtual SCMatrix* | get_subblock (int br, int er, int bc, int ec)=0 |
Return a subblock of this. More... | |
virtual SymmSCMatrix* | get_subblock (int br, int er)=0 |
virtual void | assign_subblock (SCMatrix *m, int, int, int, int)=0 |
Assign m to a subblock of this. | |
virtual void | assign_subblock (SymmSCMatrix *m, int, int)=0 |
virtual void | accumulate_subblock (SCMatrix *m, int, int, int, int)=0 |
Sum m into a subblock of this. | |
virtual void | accumulate_subblock (SymmSCMatrix *m, int, int)=0 |
virtual SCVector* | get_row (int i)=0 |
Return a row of this. | |
virtual void | assign_row (SCVector *v, int i)=0 |
Assign v to a row of this. | |
virtual void | accumulate_row (SCVector *v, int i)=0 |
Sum v to a row of this. | |
virtual void | diagonalize (DiagSCMatrix *d, SCMatrix *m)=0 |
Diagonalize this, placing the eigenvalues in d and the eigenvectors in m. | |
virtual void | accumulate (const SymmSCMatrix *m)=0 |
Sum m into this. | |
virtual void | accumulate_symmetric_sum (SCMatrix *)=0 |
Sum into this the products of various vectors or matrices. | |
virtual void | accumulate_symmetric_product (SCMatrix *) |
virtual void | accumulate_transform (SCMatrix *,SymmSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform) |
virtual void | accumulate_transform (SCMatrix *,DiagSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform) |
virtual void | accumulate_transform (SymmSCMatrix *,SymmSCMatrix *) |
virtual void | accumulate_symmetric_outer_product (SCVector *) |
virtual double | scalar_product (SCVector *v) |
Return the scalar obtained by multiplying this on the left and right by v. | |
virtual double | trace ()=0 |
Return the trace. | |
virtual double | invert_this ()=0 |
Invert this. | |
virtual double | determ_this ()=0 |
Return the determinant of this. this is overwritten. | |
virtual double | solve_this (SCVector *)=0 |
virtual void | gen_invert_this ()=0 |
virtual void | element_op (const Ref< SCElementOp > &)=0 |
Perform the element operation op on each element of this. | |
virtual void | element_op (const Ref< SCElementOp2 > &, SymmSCMatrix *)=0 |
virtual void | element_op (const Ref< SCElementOp3 > &, SymmSCMatrix *,SymmSCMatrix *)=0 |
void | print (std::ostream &o=ExEnv::out()) const |
Print out the matrix. | |
void | print (const char *title=0, std::ostream &out=ExEnv::out(), int=10) const |
virtual void | vprint (const char *title=0, std::ostream &out=ExEnv::out(), int=10) const |
Ref<MessageGrp> | messagegrp () const |
Returns the message group used by the matrix kit. | |
virtual Ref<SCMatrixSubblockIter> | local_blocks (SCMatrixSubblockIter::Access)=0 |
Returns iterators for the local (rapidly accessible) blocks used in this matrix. | |
virtual Ref<SCMatrixSubblockIter> | all_blocks (SCMatrixSubblockIter::Access)=0 |
Returns iterators for the all blocks used in this matrix. | |
Protected Attributes | |
RefSCDimension | d |
Ref<SCMatrixKit> | kit_ |
|
Make this have the same elements as m. The dimensions must match. |
|
Return a subblock of this. The subblock is defined as the rows starting at br and ending at er, and the columns beginning at bc and ending at ec. |