# sc::RefSymmSCMatrix Class Reference

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

`#include <matrix.h>`

Inheritance diagram for sc::RefSymmSCMatrix:

List of all members.

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

## Detailed Description

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

## Constructor & Destructor Documentation

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.

## Member Function Documentation

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

If this matrix is blocked return block i.

Otherwise return this as block 0.

RefSymmSCMatrix sc::RefSymmSCMatrix::clone | ( |  | ) | const

These call the SCMatrix members of the same name after checking for references to 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).

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.

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

- matrix.h