MPQC  3.0.0-alpha
sc::RefSymmSCMatrix Class Reference

The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization. More...

#include <math/scmat/matrix.h>

Inheritance diagram for sc::RefSymmSCMatrix:
sc::Ref< SymmSCMatrix > sc::RefBase

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.
 
RefSymmSCMatrixoperator= (SymmSCMatrix *m)
 Make this refer to m.
 
RefSymmSCMatrixoperator= (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< SCMatrixKitkit () 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...
 
SymmSCMatrixoperator-> () const
 Returns the reference counted object. More...
 
SymmSCMatrixpointer () const
 Returns a pointer the reference counted object.
 
RefCountparentpointer () const
 Implements the parentpointer pure virtual in the base class.
 
 operator SymmSCMatrix * () const
 
SymmSCMatrixoperator* () 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 *)
 

Detailed Description

The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.


Constructor & Destructor Documentation

◆ RefSymmSCMatrix() [1/2]

sc::RefSymmSCMatrix::RefSymmSCMatrix ( )

Initializes the matrix pointer to 0.

The reference must be initialized before it is used.

◆ RefSymmSCMatrix() [2/2]

sc::RefSymmSCMatrix::RefSymmSCMatrix ( const RefSCDimension d,
const Ref< SCMatrixKit > &   
)

Create a vector with dimension d by d.

The data values are undefined.

Member Function Documentation

◆ block()

RefSymmSCMatrix sc::RefSymmSCMatrix::block ( int  i) const

If this matrix is blocked return block i.

Otherwise return this as block 0.

◆ diagonalize()

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).

◆ gi()

RefSymmSCMatrix sc::RefSymmSCMatrix::gi ( double  condition_number_threshold = 1e8) const

Return the generalized inverse of this.

See also
SCMatrix::gi()

◆ nblock()

int sc::RefSymmSCMatrix::nblock ( ) const

If this matrix is blocked return the number of blocks.

Otherwise return 1.

◆ solve_lin()

double sc::RefSymmSCMatrix::solve_lin ( const RefSCVector ) const

Solves this x = v.

Overwrites v with x.


The documentation for this class was generated from the following file:

Generated at Sun Jan 26 2020 23:24:10 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.