.TH "sc::SymmSCMatrix" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::SymmSCMatrix \- The \fBSymmSCMatrix\fP class is the abstract base class for symmetric double valued matrices\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::DescribedClass\fP\&. .PP Inherited by \fBsc::BlockedSymmSCMatrix\fP, \fBsc::DistSymmSCMatrix\fP, \fBsc::LocalSymmSCMatrix\fP, and \fBsc::ReplSymmSCMatrix\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBSymmSCMatrix\fP (const \fBRefSCDimension\fP &, \fBSCMatrixKit\fP *)" .br .ti -1c .RI "\fBRef\fP< \fBSCMatrixKit\fP > \fBkit\fP () const" .br .RI "Return the \fBSCMatrixKit\fP object that created this object\&. " .ti -1c .RI "virtual void \fBsave\fP (\fBStateOut\fP &)" .br .RI "Save and restore this in an implementation independent way\&. " .ti -1c .RI "virtual void \fBrestore\fP (\fBStateIn\fP &)" .br .ti -1c .RI "virtual double \fBmaxabs\fP () const" .br .RI "Return the maximum absolute value element of this vector\&. " .ti -1c .RI "virtual void \fBrandomize\fP ()" .br .RI "Assign each element to a random number between -1 and 1\&. " .ti -1c .RI "void \fBassign\fP (double val)" .br .RI "Set all elements to val\&. " .ti -1c .RI "void \fBassign\fP (const double *m)" .br .RI "Assign element i, j to m[i*(i+1)/2+j]\&. " .ti -1c .RI "void \fBassign\fP (const double **m)" .br .RI "Assign element i, j to m[i][j]\&. " .ti -1c .RI "void \fBassign\fP (\fBSymmSCMatrix\fP *m)" .br .RI "Make this have the same elements as m\&. " .ti -1c .RI "virtual void \fBassign_val\fP (double val)" .br .RI "Overridden to implement the assign functions\&. " .ti -1c .RI "virtual void \fBassign_p\fP (const double *m)" .br .ti -1c .RI "virtual void \fBassign_pp\fP (const double **m)" .br .ti -1c .RI "virtual void \fBassign_s\fP (\fBSymmSCMatrix\fP *m)" .br .ti -1c .RI "virtual void \fBconvert\fP (double *) const" .br .RI "Like the assign members, but these write values to the arguments\&. " .ti -1c .RI "virtual void \fBconvert\fP (double **) const" .br .ti -1c .RI "virtual void \fBconvert\fP (\fBSymmSCMatrix\fP *)" .br .RI "Convert an SCSymmSCMatrix of a different specialization to this specialization and possibly accumulate the data\&. " .ti -1c .RI "virtual void \fBconvert_accumulate\fP (\fBSymmSCMatrix\fP *)" .br .ti -1c .RI "virtual void \fBscale\fP (double)" .br .RI "Multiply all elements by val\&. " .ti -1c .RI "virtual void \fBscale_diagonal\fP (double)" .br .RI "Scale the diagonal elements by val\&. " .ti -1c .RI "virtual void \fBshift_diagonal\fP (double)" .br .RI "Shift the diagonal elements by val\&. " .ti -1c .RI "virtual void \fBunit\fP ()" .br .RI "Make this equal to the unit matrix\&. " .ti -1c .RI "int \fBn\fP () const" .br .RI "Return the dimension\&. " .ti -1c .RI "virtual \fBSymmSCMatrix\fP * \fBcopy\fP ()" .br .RI "Return a matrix with the same dimension and same elements\&. " .ti -1c .RI "virtual \fBSymmSCMatrix\fP * \fBclone\fP ()" .br .RI "Return a matrix with the same dimension but uninitialized memory\&. " .ti -1c .RI "\fBRefSCDimension\fP \fBdim\fP () const" .br .RI "Return the dimension\&. " .ti -1c .RI "virtual double \fBget_element\fP (int, int) const =0" .br .RI "Return or modify an element\&. " .ti -1c .RI "virtual void \fBset_element\fP (int, int, double)=0" .br .ti -1c .RI "virtual void \fBaccumulate_element\fP (int, int, double)=0" .br .ti -1c .RI "virtual \fBSCMatrix\fP * \fBget_subblock\fP (int br, int er, int bc, int ec)=0" .br .RI "Return a subblock of this\&. " .ti -1c .RI "virtual \fBSymmSCMatrix\fP * \fBget_subblock\fP (int br, int er)=0" .br .ti -1c .RI "virtual void \fBassign_subblock\fP (\fBSCMatrix\fP *m, int, int, int, int)=0" .br .RI "Assign m to a subblock of this\&. " .ti -1c .RI "virtual void \fBassign_subblock\fP (\fBSymmSCMatrix\fP *m, int, int)=0" .br .ti -1c .RI "virtual void \fBaccumulate_subblock\fP (\fBSCMatrix\fP *m, int, int, int, int)=0" .br .RI "Sum m into a subblock of this\&. " .ti -1c .RI "virtual void \fBaccumulate_subblock\fP (\fBSymmSCMatrix\fP *m, int, int)=0" .br .ti -1c .RI "virtual \fBSCVector\fP * \fBget_row\fP (int i)=0" .br .RI "Return a row of this\&. " .ti -1c .RI "virtual void \fBassign_row\fP (\fBSCVector\fP *v, int i)=0" .br .RI "Assign v to a row of this\&. " .ti -1c .RI "virtual void \fBaccumulate_row\fP (\fBSCVector\fP *v, int i)=0" .br .RI "Sum v to a row of this\&. " .ti -1c .RI "virtual void \fBdiagonalize\fP (\fBDiagSCMatrix\fP *d, \fBSCMatrix\fP *m)=0" .br .RI "Diagonalize this, placing the eigenvalues in d and the eigenvectors in m\&. " .ti -1c .RI "virtual void \fBaccumulate\fP (const \fBSymmSCMatrix\fP *m)=0" .br .RI "Sum m into this\&. " .ti -1c .RI "virtual void \fBaccumulate_symmetric_sum\fP (\fBSCMatrix\fP *)=0" .br .RI "Sum into this the products of various vectors or matrices\&. " .ti -1c .RI "virtual void \fBaccumulate_symmetric_product\fP (\fBSCMatrix\fP *)" .br .ti -1c .RI "virtual void \fBaccumulate_transform\fP (\fBSCMatrix\fP *, \fBSymmSCMatrix\fP *, SCMatrix::Transform=SCMatrix::NormalTransform)" .br .ti -1c .RI "virtual void \fBaccumulate_transform\fP (\fBSCMatrix\fP *, \fBDiagSCMatrix\fP *, SCMatrix::Transform=SCMatrix::NormalTransform)" .br .ti -1c .RI "virtual void \fBaccumulate_transform\fP (\fBSymmSCMatrix\fP *, \fBSymmSCMatrix\fP *)" .br .ti -1c .RI "virtual void \fBaccumulate_symmetric_outer_product\fP (\fBSCVector\fP *)" .br .ti -1c .RI "virtual double \fBscalar_product\fP (\fBSCVector\fP *v)" .br .RI "Return the scalar obtained by multiplying this on the left and right by v\&. " .ti -1c .RI "virtual double \fBtrace\fP ()=0" .br .RI "Return the trace\&. " .ti -1c .RI "virtual double \fBinvert_this\fP ()=0" .br .RI "Invert this\&. " .ti -1c .RI "virtual double \fBdeterm_this\fP ()=0" .br .RI "Return the determinant of this\&. this is overwritten\&. " .ti -1c .RI "virtual double \fBsolve_this\fP (\fBSCVector\fP *)=0" .br .ti -1c .RI "virtual void \fBgen_invert_this\fP ()=0" .br .ti -1c .RI "virtual void \fBelement_op\fP (const \fBRef\fP< \fBSCElementOp\fP > &)=0" .br .RI "Perform the element operation op on each element of this\&. " .ti -1c .RI "virtual void \fBelement_op\fP (const \fBRef\fP< \fBSCElementOp2\fP > &, \fBSymmSCMatrix\fP *)=0" .br .ti -1c .RI "virtual void \fBelement_op\fP (const \fBRef\fP< \fBSCElementOp3\fP > &, \fBSymmSCMatrix\fP *, \fBSymmSCMatrix\fP *)=0" .br .ti -1c .RI "void \fBprint\fP (std::ostream &o=\fBExEnv::out0\fP()) const" .br .RI "Print out the matrix\&. " .ti -1c .RI "void \fBprint\fP (const char *title=0, std::ostream &out=\fBExEnv::out0\fP(), int=10) const" .br .ti -1c .RI "virtual void \fBvprint\fP (const char *title=0, std::ostream &out=\fBExEnv::out0\fP(), int=10) const" .br .ti -1c .RI "\fBRef\fP< \fBMessageGrp\fP > \fBmessagegrp\fP () const" .br .RI "Returns the message group used by the matrix kit\&. " .ti -1c .RI "virtual \fBRef\fP< \fBSCMatrixSubblockIter\fP > \fBlocal_blocks\fP (SCMatrixSubblockIter::Access)=0" .br .RI "Returns iterators for the local (rapidly accessible) blocks used in this matrix\&. " .ti -1c .RI "virtual \fBRef\fP< \fBSCMatrixSubblockIter\fP > \fBall_blocks\fP (SCMatrixSubblockIter::Access)=0" .br .RI "Returns iterators for the all blocks used in this matrix\&. " .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "\fBRefSCDimension\fP \fBd\fP" .br .ti -1c .RI "\fBRef\fP< \fBSCMatrixKit\fP > \fBkit_\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSymmSCMatrix\fP class is the abstract base class for symmetric double valued matrices\&. .SH "Member Function Documentation" .PP .SS "void sc::SymmSCMatrix::assign (\fBSymmSCMatrix\fP * m)\fC [inline]\fP" .PP Make this have the same elements as m\&. The dimensions must match\&. .SS "virtual \fBSCMatrix\fP* sc::SymmSCMatrix::get_subblock (int br, int er, int bc, int ec)\fC [pure virtual]\fP" .PP 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\&. .PP Implemented in \fBsc::ReplSymmSCMatrix\fP, \fBsc::LocalSymmSCMatrix\fP, \fBsc::DistSymmSCMatrix\fP, and \fBsc::BlockedSymmSCMatrix\fP\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.