sc::BlockedSCMatrix(3)

πŸ“¦
version 2.3.1 Β· 5 versions
, in ubuntu jammy

πŸ¦‹ NAME πŸ¦‹

sc::BlockedSCMatrix β€” bestie, this is the blocked matrix class from MPQC, and we're gonna get you comfy with it. It's a member of the MPQC manual, section 3. πŸ’–


✨ SYNOPSIS ✨

Inherits sc::SCMatrix.

Inherits sc::SCMatrix.

πŸŽ€ Public Member Functions πŸŽ€

Okay so here's the whole roster, no skips, no cuts β€” every single one is showing up, periodt. πŸ’…

  • BlockedSCMatrix (const RefSCDimension &, const RefSCDimension &, BlockedSCMatrixKit *) β€” the constructor, taking the two dimensions and the kit.
  • void save (StateOut &) β€” save and restore this in an implementation independent way.
  • void restore (StateIn &) β€” the restore half of that save/restore pair.
  • void assign_val (double) β€” overridden so it can implement assigning to members.
  • double get_element (int, int) const β€” return or modify an element.
  • void set_element (int, int, double) β€” the setter that comes with it.
  • void accumulate_element (int, int, double) β€” accumulate into a single element.
  • SCMatrix * get_subblock (int, int, int, int) β€” return a subblock of this.
  • void assign_subblock (SCMatrix *, int, int, int, int, int=0, int=0) β€” assign m to a subblock of this.
  • void accumulate_subblock (SCMatrix *, int, int, int, int, int=0, int=0) β€” sum m into a subblock of this.
  • SCVector * get_row (int i) β€” return a row or column of this.
  • SCVector * get_column (int i) β€” the column version, same energy.
  • void assign_row (SCVector *v, int i) β€” assign v to a row or column of this.
  • void assign_column (SCVector *v, int i) β€” the column flavor.
  • void accumulate_row (SCVector *v, int i) β€” sum v to a row or column of this.
  • void accumulate_column (SCVector *v, int i) β€” again, the column flavor.
  • void accumulate_outer_product (SCVector *, SCVector *) β€” sum into this the products of various vectors or matrices.
  • void accumulate_product_rr (SCMatrix *, SCMatrix *) β€” one of the product accumulators, real-real coded.
  • void accumulate_product_rs (SCMatrix *, SymmSCMatrix *) β€” the symmetric-flavored product accumulator.
  • void accumulate_product_rd (SCMatrix *, DiagSCMatrix *) β€” and the diagonal-flavored one.
  • void accumulate (const SCMatrix *) β€” sum m into this.
  • void accumulate (const SymmSCMatrix *) β€” same idea, symmetric matrix edition.
  • void accumulate (const DiagSCMatrix *) β€” and the diagonal matrix edition.
  • void accumulate (const SCVector *) β€” yes, it also takes a vector.
  • void transpose_this () β€” transpose this.
  • double invert_this () β€” invert this.
  • void svd_this (SCMatrix *U, DiagSCMatrix *sigma, SCMatrix *V) β€” compute the singular value decomposition for this, possibly destroying this. ⚠️ yes, "possibly destroying" β€” read that twice.
  • double solve_this (SCVector *) β€” solve with this.
  • double determ_this () β€” return the determinant of this. but heads up: this is overwritten.
  • double trace () β€” return the trace.
  • void gen_invert_this () β€” the generalized invert, right here.
  • void schmidt_orthog (SymmSCMatrix *, int) β€” Schmidt orthogonalize this.
  • int schmidt_orthog_tol (SymmSCMatrix *, double tol, double *res=0) β€” Schmidt orthogonalize this, with a tolerance.
  • void element_op (const Ref< SCElementOp > &) β€” perform the element operation op on each element of this.
  • void element_op (const Ref< SCElementOp2 > &, SCMatrix *) β€” the two-argument element op.
  • void element_op (const Ref< SCElementOp3 > &, SCMatrix *, SCMatrix *) β€” the three-argument element op.
  • void vprint (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const β€” the pretty-print vibe, with a title, an output stream defaulting to ExEnv::out0(), and an int defaulting to 10.
  • RefSCDimension rowdim () const β€” row dimension.
  • RefSCDimension coldim () const β€” column dimension.
  • RefSCDimension rowdim (int) const β€” row dimension for a given block.
  • RefSCDimension coldim (int) const β€” column dimension for a given block.
  • int nblocks () const β€” how many blocks we're working with.
  • RefSCMatrix block (int) β€” grab a block.
  • Ref< SCMatrixSubblockIter > local_blocks (SCMatrixSubblockIter::Access) β€” returns iterators for the local (rapidly accessible) blocks used in this matrix.
  • Ref< SCMatrixSubblockIter > all_blocks (SCMatrixSubblockIter::Access) β€” returns iterators for the all blocks used in this matrix.

🫢 Friends 🫢

You already know these three are in the group chat:

  • class BlockedSymmSCMatrix
  • class BlockedDiagSCMatrix
  • class BlockedSCVector

🌸 Additional Inherited Members 🌸

Yep, there are additional inherited members too. That's the whole note. 😭


πŸ‘‘ Member Function Documentation πŸ‘‘

SCMatrix* sc::BlockedSCMatrix::get_subblock (int br, int er, int bc, int ec)

[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 at ec.

Implements sc::SCMatrix.


void sc::BlockedSCMatrix::schmidt_orthog (SymmSCMatrix *, int n)

[virtual]

Schmidt orthogonalize this. S is the overlap matrix. n is the number of columns to orthogonalize.

Implements sc::SCMatrix.


int sc::BlockedSCMatrix::schmidt_orthog_tol (SymmSCMatrix *, double tol, double * res = 0)

[virtual]

Schmidt orthogonalize this. S is the overlap matrix. tol is the tolerance. The number of linearly independent vectors is returned.

Implements sc::SCMatrix.


⭐ Author ⭐

Generated automatically by Doxygen for MPQC from the source code. πŸ€–βœ¨


And that's the whole page, bestie β€” literally nothing left out. πŸ’œ

Version 2.3.1, dated Sun Oct 4 2020 β€” signing off from sc::BlockedSCMatrix(3), bye babes! πŸ¦‹πŸ’…πŸŽ€

πŸ“¦ where this page comes from