MPQC
3.0.0-alpha
|
#include <math/scmat/blocked.h>
Public Member Functions | |
BlockedSCMatrix (const RefSCDimension &, const RefSCDimension &, BlockedSCMatrixKit *) | |
void | save (StateOut &) |
Save and restore this in an implementation independent way. | |
void | restore (StateIn &) |
void | assign_val (double) |
Overridden to implement to assign members. | |
double | get_element (int, int) const |
Return or modify an element. | |
void | set_element (int, int, double) |
void | accumulate_element (int, int, double) |
void | assign_p (const double *) |
void | assign_pp (const double **) |
void | convert_p (double *) const |
void | convert_pp (double **) const |
SCMatrix * | get_subblock (int, int, int, int) |
Return a subblock of this. More... | |
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) |
void | assign_row (SCVector *v, int i) |
Assign v to a row or column of this. | |
void | assign_column (SCVector *v, int i) |
void | accumulate_row (SCVector *v, int i) |
Sum v to a row or column of this. | |
void | accumulate_column (SCVector *v, int i) |
void | accumulate_outer_product (SCVector *, SCVector *) |
Sum into this the products of various vectors or matrices. | |
void | accumulate_product_rr (SCMatrix *, SCMatrix *) |
void | accumulate_product_rs (SCMatrix *, SymmSCMatrix *) |
void | accumulate_product_rd (SCMatrix *, DiagSCMatrix *) |
void | accumulate (const SCMatrix *) |
Sum m into this. | |
void | accumulate (const SymmSCMatrix *) |
void | accumulate (const DiagSCMatrix *) |
void | accumulate (const SCVector *) |
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. | |
double | solve_this (SCVector *) |
double | determ_this () |
Return the determinant of this. this is overwritten. | |
double | trace () |
Return the trace. | |
void | gen_invert_this (double condition_number_threshold=1e8) |
generalized-invert this. More... | |
void | schmidt_orthog (SymmSCMatrix *, int) |
Schmidt orthogonalize this. More... | |
int | schmidt_orthog_tol (SymmSCMatrix *, double tol, double *res=0) |
Schmidt orthogonalize this. More... | |
void | convert_accumulate (SCMatrix *a) |
void | element_op (const Ref< SCElementOp > &) |
Perform the element operation op on each element of this. | |
void | element_op (const Ref< SCElementOp2 > &, SCMatrix *) |
void | element_op (const Ref< SCElementOp3 > &, SCMatrix *, SCMatrix *) |
void | vprint (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const |
RefSCDimension | rowdim () const |
RefSCDimension | coldim () const |
RefSCDimension | rowdim (int) const |
RefSCDimension | coldim (int) const |
int | nblocks () const |
RefSCMatrix | block (int) |
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. | |
Public Member Functions inherited from sc::SCMatrix | |
SCMatrix (const RefSCDimension &, const RefSCDimension &, SCMatrixKit *) | |
Ref< SCMatrixKit > | kit () const |
Return the SCMatrixKit used to create this object. | |
int | nrow () const |
Return the number of rows. | |
int | ncol () const |
Return the number of columns. | |
virtual double | maxabs () const |
Return the maximum absolute value element. | |
virtual void | randomize () |
Assign each element to a random number between -1 and 1. | |
void | assign (double val) |
Set all elements to val. | |
void | assign (const double *m) |
Assign element i, j to m[ir*nrow()+j]. | |
void | assign (const double **m) |
Assign element i, j to m[i][j]. | |
void | assign (SCMatrix *m) |
Make this have the same elements as m. The dimensions must match. | |
virtual void | assign_r (SCMatrix *m) |
void | convert (double *a) const |
Like the assign members, but these write values to the arguments. | |
void | convert (double **a) const |
void | convert (SCMatrix *a) |
virtual void | convert_r (SCMatrix *a) |
virtual void | scale (double val) |
Multiply all elements by val. | |
virtual void | scale_diagonal (double val) |
Scale the diagonal elements by val. | |
virtual void | shift_diagonal (double val) |
Shift the diagonal elements by val. | |
virtual void | unit () |
Make this equal to the unit matrix. | |
virtual SCMatrix * | copy () |
Return a matrix with the same dimension and same elements. | |
virtual SCMatrix * | clone () |
Return a matrix with the same dimension but uninitialized memory. | |
RefSCDimension | rowdim () const |
Return the row or column dimension. | |
RefSCDimension | coldim () const |
void | accumulate_product (SCMatrix *m1, SCMatrix *m2) |
void | accumulate_product (SCMatrix *m1, SymmSCMatrix *m2) |
void | accumulate_product (SCMatrix *m1, DiagSCMatrix *m2) |
void | accumulate_product (SymmSCMatrix *m1, SCMatrix *m2) |
void | accumulate_product (DiagSCMatrix *m1, SCMatrix *m2) |
void | accumulate_product (SymmSCMatrix *m1, SymmSCMatrix *m2) |
void | accumulate_product (SymmSCMatrix *m1, DiagSCMatrix *m2) |
void | accumulate_product (DiagSCMatrix *m1, SymmSCMatrix *m2) |
virtual void | accumulate_product_sr (SymmSCMatrix *, SCMatrix *) |
virtual void | accumulate_product_dr (DiagSCMatrix *, SCMatrix *) |
virtual void | accumulate_product_ss (SymmSCMatrix *, SymmSCMatrix *) |
virtual void | accumulate_product_sd (SymmSCMatrix *, DiagSCMatrix *) |
virtual void | accumulate_product_ds (DiagSCMatrix *, SymmSCMatrix *) |
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 |
Ref< MessageGrp > | messagegrp () const |
Returns the message group used by the matrix kit. | |
Public Member Functions inherited from sc::DescribedClass | |
DescribedClass (const DescribedClass &) | |
DescribedClass & | operator= (const DescribedClass &) |
ClassDesc * | class_desc () const MPQC__NOEXCEPT |
This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More... | |
const char * | class_name () const |
Return the name of the object's exact type. | |
int | class_version () const |
Return the version of the class. | |
Ref< DescribedClass > | ref () |
Return this object wrapped up in a Ref smart pointer. More... | |
Public Member Functions inherited from sc::RefCount | |
size_t | identifier () const |
Return the unique identifier for this object that can be compared for different objects of different types. More... | |
int | lock_ptr () const |
Lock this object. | |
int | unlock_ptr () const |
Unlock this object. | |
void | use_locks (bool inVal) |
start and stop using locks on this object | |
refcount_t | nreference () const |
Return the reference count. | |
refcount_t | reference () |
Increment the reference count and return the new count. | |
refcount_t | dereference () |
Decrement the reference count and return the new count. | |
int | managed () const |
void | unmanage () |
Turn off the reference counting mechanism for this object. More... | |
Friends | |
class | BlockedSymmSCMatrix |
class | BlockedDiagSCMatrix |
class | BlockedSCVector |
Additional Inherited Members | |
Public Types inherited from sc::SCMatrix | |
enum | Transform { NormalTransform = 0, TransposeTransform = 1 } |
types of matrix transforms. Only real-valued matrices are assumed. | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
Protected Attributes inherited from sc::SCMatrix | |
RefSCDimension | d1 |
RefSCDimension | d2 |
Ref< SCMatrixKit > | kit_ |
Blocked SCMatrix.
|
virtual |
|
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.
|
virtual |
Schmidt orthogonalize this.
S is the overlap matrix. n is the number of columns to orthogonalize.
Implements sc::SCMatrix.
|
virtual |
Schmidt orthogonalize this.
S is the overlap matrix. tol is the tolerance. The number of linearly independent vectors is returned.
Implements sc::SCMatrix.