sc::SymmSCMatrix(3)

๐Ÿ“ฆ
version 2.3.1 ยท 5 versions
, in ubuntu jammy

๐Ÿ’– 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, and sc::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 the SCMatrixKit object 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 -1 and 1. ๐ŸŽฒ
  • void assign (double val) โ€” Set all elements to val. one value to rule them all. โœจ
  • 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. 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 an SCSymmSCMatrix of 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 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. 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-argument get_subblock overload; signature only in the source. ๐Ÿซถ
  • 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 โ€” the symmetric-matrix assign_subblock overload. โœจ
  • 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 โ€” the symmetric-matrix accumulate_subblock overload. ๐ŸŒธ
  • 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. the eigenvalues said โ€œput me in d,โ€ the eigenvectors said โ€œput me in m,โ€ and honestly? iconic. ๐Ÿ‘‘
  • 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 *) โ€” signature only in the source. โœจ
  • virtual void accumulate_transform (SCMatrix *, SymmSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform) โ€” transform-accumulate overload with the SCMatrix::NormalTransform default. ๐ŸŒˆ
  • virtual void accumulate_transform (SCMatrix *, DiagSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform) โ€” transform-accumulate overload with DiagSCMatrix * 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 by v. ๐Ÿงฎ
  • 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. this is overwritten. important caveat, bestie: this gets 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 operation op on each element of this. ๐Ÿงš
  • virtual void element_op (const Ref< SCElementOp2 > &, SymmSCMatrix *)=0 โ€” the SCElementOp2 element-op overload. โœจ
  • virtual void element_op (const Ref< SCElementOp3 > &, SymmSCMatrix *, SymmSCMatrix *)=0 โ€” the SCElementOp3 element-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 with title, out, and int=10. ๐ŸŽ€
  • virtual void vprint (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const โ€” virtual print overload with the same title, out, and int=10 shape. โœจ
  • 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