sc::SymmSCMatrix(3) | MPQC | sc::SymmSCMatrix(3) |
sc::SymmSCMatrix - The SymmSCMatrix class is the abstract base class for symmetric double valued matrices.
#include <abstract.h>
Inherits sc::DescribedClass.
Inherited by sc::BlockedSymmSCMatrix, sc::DistSymmSCMatrix, sc::LocalSymmSCMatrix, and sc::ReplSymmSCMatrix.
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. 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. 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::out0()) const
Print out the matrix. void print (const char *title=0, std::ostream
&out=ExEnv::out0(), int=10) const
virtual void vprint (const char *title=0, std::ostream
&out=ExEnv::out0(), 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.
RefSCDimension d
Ref< SCMatrixKit > kit_
The SymmSCMatrix class is the abstract base class for symmetric double valued matrices.
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.
Implemented in sc::ReplSymmSCMatrix, sc::LocalSymmSCMatrix, sc::DistSymmSCMatrix, and sc::BlockedSymmSCMatrix.
Generated automatically by Doxygen for MPQC from the source code.
Sun Oct 4 2020 | Version 2.3.1 |