sc::SymmSCMatrix(3)
๐ sc::SymmSCMatrix ๐
okay bestie, welcome to the MPQC manual page for sc::SymmSCMatrix(3) โ the abstract base class for symmetric double valued matrices. Sheโs giving abstract-base-class royalty, and weโre obsessed. ๐โจ
โจ NAME โจ
sc::SymmSCMatrix โ the SymmSCMatrix class is the abstract base class for symmetric double valued matrices. periodt. ๐
๐ธ SYNOPSIS ๐ธ
#include <abstract.h>
- Inherits
sc::DescribedClass. - Inherited by
sc::BlockedSymmSCMatrix,sc::DistSymmSCMatrix,sc::LocalSymmSCMatrix, andsc::ReplSymmSCMatrix. the whole nepo-baby matrix family, honestly. ๐ซถ
๐ Public Member Functions ๐
SymmSCMatrix (const RefSCDimension &, SCMatrixKit *)โ constructor vibe: you bring a dimension ref and a matrix kit pointer, and the object gets made. โจRef< SCMatrixKit > kit () constโ Return theSCMatrixKitobject that created this object. know your maker, bestie. ๐virtual void save (StateOut &)โ Save and restore this in an implementation independent way. ๐พvirtual void restore (StateIn &)โ the restore half of the save/restore pair; the source description says save and restore this in an implementation independent way. reload that state, queen. ๐ธvirtual double maxabs () constโ Return the maximum absolute value element of this vector. yes, the original says vector โ weโre keeping the wording, no editing the sourceโs moment. ๐virtual void randomize ()โ Assign each element to a random number between-1and1. ๐ฒvoid assign (double val)โ Set all elements toval. one value to rule them all. โจvoid assign (const double *m)โ Assign elementi,jtom[i*(i+1)/2+j]. ๐งฎvoid assign (const double **m)โ Assign elementi,jtom[i][j]. ๐ธvoid assign (SymmSCMatrix *m)โ Make this have the same elements asm. ๐ซถvirtual void assign_val (double val)โ Overridden to implement the assign functions. the assign machineryโs secret main character. ๐virtual void assign_p (const double *m)โ signature only in the source, bestie. ๐virtual void assign_pp (const double **m)โ signature only in the source. โจvirtual void assign_s (SymmSCMatrix *m)โ signature only in the source. ๐virtual void convert (double *) constโ Like the assign members, but these write values to the arguments. assignโs flirty cousin. ๐virtual void convert (double **) constโ the double-pointer convert overload; source gives the shared convert blurb above. ๐virtual void convert (SymmSCMatrix *)โ Convert anSCSymmSCMatrixof a different specialization to this specialization and possibly accumulate the data. specialization glow-up plus data accumulation, iykyk. โจvirtual void convert_accumulate (SymmSCMatrix *)โ signature only in the source. ๐virtual void scale (double)โ Multiply all elements byval. ๐งvirtual void scale_diagonal (double)โ Scale the diagonal elements byval. ๐ธvirtual void shift_diagonal (double)โ Shift the diagonal elements byval. ๐ฆvirtual void unit ()โ Make this equal to the unit matrix. identity crisis? solved. ๐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. same shape, blank slate, very fresh-start energy. โจ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โ the modify side of the return-or-modify-an-element situation. ๐virtual void accumulate_element (int, int, double)=0โ signature only in the source. ๐ธ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โ the two-argumentget_subblockoverload; signature only in the source. ๐ซถvirtual void assign_subblock (SCMatrix *m, int, int, int, int)=0โ Assignmto a subblock of this. ๐virtual void assign_subblock (SymmSCMatrix *m, int, int)=0โ the symmetric-matrixassign_subblockoverload. โจvirtual void accumulate_subblock (SCMatrix *m, int, int, int, int)=0โ Summinto a subblock of this. โvirtual void accumulate_subblock (SymmSCMatrix *m, int, int)=0โ the symmetric-matrixaccumulate_subblockoverload. ๐ธvirtual SCVector * get_row (int i)=0โ Return a row of this. ๐งตvirtual void assign_row (SCVector *v, int i)=0โ Assignvto a row of this. ๐virtual void accumulate_row (SCVector *v, int i)=0โ Sumvto a row of this. โvirtual void diagonalize (DiagSCMatrix *d, SCMatrix *m)=0โ Diagonalize this, placing the eigenvalues indand the eigenvectors inm. the eigenvalues said โput me ind,โ the eigenvectors said โput me inm,โ and honestly? iconic. ๐virtual void accumulate (const SymmSCMatrix *m)=0โ Summinto this. โvirtual void accumulate_symmetric_sum (SCMatrix *)=0โ Sum into this the products of various vectors or matrices. ๐งฎvirtual void accumulate_symmetric_product (SCMatrix *)โ signature only in the source. โจvirtual void accumulate_transform (SCMatrix *, SymmSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform)โ transform-accumulate overload with theSCMatrix::NormalTransformdefault. ๐virtual void accumulate_transform (SCMatrix *, DiagSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform)โ transform-accumulate overload withDiagSCMatrix *and the same default. ๐virtual void accumulate_transform (SymmSCMatrix *, SymmSCMatrix *)โ the symmetric-matrix transform-accumulate overload. ๐ฆvirtual void accumulate_symmetric_outer_product (SCVector *)โ signature only in the source. ๐virtual double scalar_product (SCVector *v)โ Return the scalar obtained by multiplying this on the left and right byv. ๐งฎvirtual double trace ()=0โ Return the trace. the diagonalโs greatest hits. โจvirtual double invert_this ()=0โ Invert this. ๐virtual double determ_this ()=0โ Return the determinant of this.thisis overwritten. important caveat, bestie:thisgets overwritten โ do not miss that. ๐จvirtual double solve_this (SCVector *)=0โ signature only in the source. ๐virtual void gen_invert_this ()=0โ signature only in the source. ๐ธvirtual void element_op (const Ref< SCElementOp > &)=0โ Perform the element operationopon each element of this. ๐งvirtual void element_op (const Ref< SCElementOp2 > &, SymmSCMatrix *)=0โ theSCElementOp2element-op overload. โจvirtual void element_op (const Ref< SCElementOp3 > &, SymmSCMatrix *, SymmSCMatrix *)=0โ theSCElementOp3element-op overload. ๐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โ print overload withtitle,out, andint=10. ๐virtual void vprint (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) constโ virtual print overload with the sametitle,out, andint=10shape. โจ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โ protected dimension ref, just vibing in the protected section. ๐Ref< SCMatrixKit > kit_โ protected matrix-kit ref, also just vibing. ๐ซถ
๐ซถ ADDITIONAL INHERITED MEMBERS ๐ซถ
The page includes this heading, but it doesnโt list any extra member details in this section. Weโre not inventing any, bestie โ no cap. ๐
๐ DETAILED DESCRIPTION ๐
The SymmSCMatrix class is the abstract base class for symmetric double valued matrices. same energy as NAME, but now with extra detailed-description lighting. โจ
๐ฅ MEMBER FUNCTION DOCUMENTATION ๐ฅ
๐ void sc::SymmSCMatrix::assign (SymmSCMatrix * m) [inline]
Make this have the same elements as m. The dimensions must match. matching dimensions or itโs not happening, bestie. ๐ซถ
๐งฉ virtual SCMatrix* sc::SymmSCMatrix::get_subblock (int br, int er, int bc, int ec) [pure virtual]
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 ec. rows first, then columns โ keep the coordinates cute and correct. ๐
Implemented in sc::BlockedSymmSCMatrix, sc::ReplSymmSCMatrix, sc::DistSymmSCMatrix, and sc::LocalSymmSCMatrix. the subblock implementation squad showed up. ๐
โญ AUTHOR โญ
Generated automatically by Doxygen for MPQC from the source code. thanks, Doxygen bestie. ๐ซถ
okay thatโs the whole page, bestie! ๐ This was Version 2.3.1 of the MPQC manual, dated Sun Oct 4 2020, on the sc::SymmSCMatrix(3) page. slay, stay abstract, stay symmetric. โจ๐
๐ฆ where this page comes from
- ubuntu jammy: libsc-doc 2.3.1-21
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms