#include <matrix.h>
Inheritance diagram for sc::RefSymmSCMatrix:
Public Member Functions | |
RefSymmSCMatrix () | |
Initializes the matrix pointer to 0. | |
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. | |
RefSymmSCMatrix (const RefSCDimension &d, const Ref< SCMatrixKit > &) | |
Create a vector with dimension d by d. | |
RefSCMatrix | operator * (const RefSCMatrix &) const |
Multiply this by a matrix and return a matrix. | |
RefSCMatrix | operator * (const RefSymmSCMatrix &) 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 () const |
Return the generalized inverse of this. | |
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 | 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. | |
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. | |
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. | |
RefSymmSCMatrix | block (int i) const |
If this matrix is blocked return block i. |
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::clone | ( | ) | const |
These call the SCMatrix members of the same name after checking for references to 0.
double sc::RefSymmSCMatrix::solve_lin | ( | const RefSCVector & | ) | const |
Solves this x = v.
Overwrites v with x.
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).
int sc::RefSymmSCMatrix::nblock | ( | ) | const |
If this matrix is blocked return the number of blocks.
Otherwise return 1.
RefSymmSCMatrix sc::RefSymmSCMatrix::block | ( | int | i | ) | const |
If this matrix is blocked return block i.
Otherwise return this as block 0.