MPQC
3.0.0-alpha
|
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization. More...
#include <math/scmat/matrix.h>
Public Member Functions | |
RefSymmSCMatrix () | |
Initializes the matrix pointer to 0. More... | |
RefSymmSCMatrix (const RefSymmSCMatrix &m) | |
Make this and m refer to the same SCMatrix. | |
RefSymmSCMatrix (SymmSCMatrix *m) | |
Make this refer to m. | |
RefSymmSCMatrix & | operator= (SymmSCMatrix *m) |
Make this refer to m. | |
RefSymmSCMatrix & | operator= (const RefSymmSCMatrix &m) |
Make this and m refer to the same matrix. | |
void | copyRefSCMatrix (const RefSCMatrix &m) |
RefSymmSCMatrix (const RefSCDimension &d, const Ref< SCMatrixKit > &) | |
Create a vector with dimension d by d. More... | |
RefSCMatrix | operator* (const RefSCMatrix &) const |
Multiply this by a matrix and return a matrix. | |
RefSCMatrix | operator* (const RefSymmSCMatrix &) const |
RefSCMatrix | operator* (const RefDiagSCMatrix &) const |
RefSCVector | operator* (const RefSCVector &a) const |
Multiply this by a vector and return a vector. | |
RefSymmSCMatrix | operator* (double) const |
RefSymmSCMatrix | operator+ (const RefSymmSCMatrix &) const |
Matrix addition and subtraction. | |
RefSymmSCMatrix | operator- (const RefSymmSCMatrix &) const |
RefSymmSCMatrix | i () const |
Return the inverse of this. | |
RefSymmSCMatrix | gi (double condition_number_threshold=1e8) const |
Return the generalized inverse of this. More... | |
RefSymmSCMatrix | clone () const |
These call the SCMatrix members of the same name after checking for references to 0. | |
RefSymmSCMatrix | copy () const |
void | set_element (int, int, double) const |
void | accumulate_element (int, int, double) const |
double | get_element (int, int) const |
RefSCMatrix | get_subblock (int br, int er, int bc, int ec) |
RefSymmSCMatrix | get_subblock (int br, int er) |
void | assign_subblock (const RefSCMatrix &, int br, int er, int bc, int ec) |
void | assign_subblock (const RefSymmSCMatrix &, int br, int er) |
void | accumulate_subblock (const RefSCMatrix &, int, int, int, int) |
void | accumulate_subblock (const RefSymmSCMatrix &, int, int) |
RefSCVector | get_row (int) |
void | assign_row (const RefSCVector &, int) |
void | accumulate_row (const RefSCVector &, int) |
void | accumulate_symmetric_outer_product (const RefSCVector &) const |
double | scalar_product (const RefSCVector &) const |
void | accumulate_symmetric_product (const RefSCMatrix &) const |
void | accumulate_symmetric_sum (const RefSCMatrix &) const |
void | accumulate_transform (const RefSCMatrix &a, const RefSymmSCMatrix &b, SCMatrix::Transform=SCMatrix::NormalTransform) const |
Add a * b * a.t() to this. | |
void | accumulate_transform (const RefSCMatrix &a, const RefDiagSCMatrix &b, SCMatrix::Transform=SCMatrix::NormalTransform) const |
void | accumulate_transform (const RefSymmSCMatrix &a, const RefSymmSCMatrix &b) const |
void | randomize () const |
void | assign (const RefSymmSCMatrix &) const |
void | scale (double) const |
void | scale_diagonal (double) const |
void | assign (double) const |
void | assign (const double *) const |
void | assign (const double **) const |
void | convert (double *) const |
void | convert (double **) const |
void | accumulate (const RefSymmSCMatrix &) const |
void | element_op (const Ref< SCElementOp > &) const |
void | element_op (const Ref< SCElementOp2 > &, const RefSymmSCMatrix &) const |
void | element_op (const Ref< SCElementOp3 > &, const RefSymmSCMatrix &, const RefSymmSCMatrix &) const |
double | trace () const |
int | n () const |
RefSCDimension | dim () const |
Ref< SCMatrixKit > | kit () const |
void | print (std::ostream &) const |
void | print (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const |
void | save (StateOut &) |
void | restore (StateIn &) |
Restores the matrix from StateIn object. The matrix must have been initialized already. | |
double | solve_lin (const RefSCVector &) const |
Solves this x = v. More... | |
double | determ () const |
Returns the determinant of the referenced matrix. | |
RefDiagSCMatrix | eigvals () const |
Returns the eigenvalues of the reference matrix. | |
RefSCMatrix | eigvecs () const |
Returns the eigenvectors of the reference matrix. | |
void | diagonalize (const RefDiagSCMatrix &eigvals, const RefSCMatrix &eigvecs) const |
Sets eigvals to the eigenvalues and eigvecs to the eigenvalues and eigenvectors of the referenced matrix. More... | |
SymmSCMatrixdouble | operator() (int i, int j) const |
Assign and examine matrix elements. | |
int | nblock () const |
If this matrix is blocked return the number of blocks. More... | |
RefSymmSCMatrix | block (int i) const |
If this matrix is blocked return block i. More... | |
RefSCMatrix | convert2RefSCMat () |
convert RefSymmSCMatrix to RefSCMatrix | |
Public Member Functions inherited from sc::Ref< SymmSCMatrix > | |
Ref () | |
Create a reference to a null object. | |
Ref (SymmSCMatrix *a) | |
Create a reference to the object a. | |
Ref (const Ref< SymmSCMatrix > &a) | |
Create a reference to the object referred to by a. | |
Ref (const Ref< A > &a) | |
Create a reference to the object referred to by a. | |
~Ref () | |
Create a reference to the object a. More... | |
SymmSCMatrix * | operator-> () const |
Returns the reference counted object. More... | |
SymmSCMatrix * | pointer () const |
Returns a pointer the reference counted object. | |
RefCount * | parentpointer () const |
Implements the parentpointer pure virtual in the base class. | |
operator SymmSCMatrix * () const | |
SymmSCMatrix & | operator* () const |
Returns a C++ reference to the reference counted object. More... | |
bool | null () const |
Return true if this is a reference to a null object. More... | |
bool | operator! () const |
int | operator== (const Ref< A > &a) const |
Ordering and equivalence operators are determined by the identifier if both pointers are not null. More... | |
int | operator>= (const Ref< A > &a) const |
int | operator<= (const Ref< A > &a) const |
int | operator> (const Ref< A > &a) const |
int | operator< (const Ref< A > &a) const |
int | operator!= (const Ref< A > &a) const |
int | compare (const Ref< SymmSCMatrix > &a) const |
Compare two objects returning -1, 0, or 1. More... | |
void | clear () |
Refer to the null object. | |
Ref< SymmSCMatrix > & | operator= (const Ref< SymmSCMatrix > &c) |
Assignment to c. | |
Ref< SymmSCMatrix > & | operator= (const Ref< A > &c) |
Assignment to c. | |
Ref< SymmSCMatrix > & | operator= (SymmSCMatrix *cr) |
Assignment to cr. | |
Ref< SymmSCMatrix > & | operator<< (const RefBase &a) |
Assignment to the object that a references using dynamic_cast. | |
Ref< SymmSCMatrix > & | operator<< (RefCount *a) |
Assigns to the given base class pointer using dynamic_cast. More... | |
void | assign_pointer (SymmSCMatrix *cr) |
Assignment to cr. | |
void | check_pointer () const |
Check the validity of the pointer. | |
void | ref_info (std::ostream &os) const |
Print information about the reference to os. | |
void | warn (const char *s) const |
Print a warning concerning the reference. | |
bool | nonnull () const |
Return !null(). | |
Public Member Functions inherited from sc::RefBase | |
void | require_nonnull () const |
Requires that a nonnull reference is held. More... | |
Additional Inherited Members | |
Public Types inherited from sc::Ref< SymmSCMatrix > | |
typedef SymmSCMatrix | element_type |
Protected Member Functions inherited from sc::RefBase | |
void | warn (const char *msg) const |
Print a warning message. | |
void | warn_ref_to_stack () const |
Called when stack data is referenced. | |
void | warn_skip_stack_delete () const |
Called when the deletion of stack data is skipped. | |
void | warn_bad_ref_count () const |
Called when the reference count is corrupted. | |
void | ref_info (RefCount *p, std::ostream &os) const |
Print information about the reference. | |
void | ref_info (std::ostream &os) const |
void | check_pointer () const |
void | reference (RefCount *) |
int | dereference (RefCount *) |
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.
sc::RefSymmSCMatrix::RefSymmSCMatrix | ( | ) |
Initializes the matrix pointer to 0.
The reference must be initialized before it is used.
sc::RefSymmSCMatrix::RefSymmSCMatrix | ( | const RefSCDimension & | d, |
const Ref< SCMatrixKit > & | |||
) |
Create a vector with dimension d by d.
The data values are undefined.
RefSymmSCMatrix sc::RefSymmSCMatrix::block | ( | int | i | ) | const |
If this matrix is blocked return block i.
Otherwise return this as block 0.
void sc::RefSymmSCMatrix::diagonalize | ( | const RefDiagSCMatrix & | eigvals, |
const RefSCMatrix & | eigvecs | ||
) | const |
Sets eigvals to the eigenvalues and eigvecs to the eigenvalues and eigenvectors of the referenced matrix.
The result satisfies eigvecs * eigvals * eigvecs.t() = (*this).
RefSymmSCMatrix sc::RefSymmSCMatrix::gi | ( | double | condition_number_threshold = 1e8 | ) | const |
Return the generalized inverse of this.
int sc::RefSymmSCMatrix::nblock | ( | ) | const |
If this matrix is blocked return the number of blocks.
Otherwise return 1.
double sc::RefSymmSCMatrix::solve_lin | ( | const RefSCVector & | ) | const |
Solves this x = v.
Overwrites v with x.