sc::BlockedSCMatrix(3)
π¦ 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 toExEnv::out0(), and an int defaulting to10.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 BlockedSymmSCMatrixclass BlockedDiagSCMatrixclass 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
- 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