# sc::RefSCMatrix Class Reference

The RefSCMatrix class is a smart pointer to an SCMatrix specialization. More...

`#include <matrix.h>`

Inheritance diagram for sc::RefSCMatrix:

List of all members.

## Public Member Functions

| RefSCMatrix ()
| Initializes the matrix pointer to 0.
| RefSCMatrix (const RefSCMatrix &m)
| Make this and m refer to the same SCMatrix.
| RefSCMatrix (SCMatrix *m)
| Make this refer to m.
RefSCMatrix & | operator= (SCMatrix *m)
| Make this refer to m.
RefSCMatrix & | operator= (const RefSCMatrix &m)
| Make this and m refer to the same matrix.
| RefSCMatrix (const RefSCDimension &d1, const RefSCDimension &d2, const Ref< SCMatrixKit > &)
| Create a vector with dimension d1 by d2.
RefSCVector | operator* (const RefSCVector &) const
| Multiply this by a vector and return a vector.
RefSCMatrix | operator* (const RefSCMatrix &) const
| Multiply this by a matrix and return a matrix.
RefSCMatrix | operator* (const RefSymmSCMatrix &) const
RefSCMatrix | operator* (const RefDiagSCMatrix &) const
RefSCMatrix | operator* (double) const
| Multiply this by a scalar and return the result.
RefSCMatrix | operator+ (const RefSCMatrix &) const
| Matrix addition.
RefSCMatrix | operator- (const RefSCMatrix &) const
| Matrix subtraction.
RefSCMatrix | t () const
| Return the transpose of this.
RefSCMatrix | i () const
| Return the inverse of this.
RefSCMatrix | gi () const
| Return the generalized inverse of this.
RefSCMatrix | clone () const
| These call the SCMatrix members of the same name after checking for references to 0.
RefSCMatrix | copy () const
RefSCMatrix | get_subblock (int br, int er, int bc, int ec)
void | assign_subblock (const RefSCMatrix &, int br, int er, int bc, int ec, int source_br=0, int source_bc=0)
void | accumulate_subblock (const RefSCMatrix &, int, int, int, int, int source_br=0, int source_bc=0)
RefSCVector | get_row (int) const
RefSCVector | get_column (int) const
void | assign_row (const RefSCVector &, int) const
void | assign_column (const RefSCVector &, int) const
void | accumulate_row (const RefSCVector &, int) const
void | accumulate_column (const RefSCVector &, int) const
void | accumulate_outer_product (const RefSCVector &, const RefSCVector &) const
void | accumulate_product (const RefSCMatrix &, const RefSCMatrix &) const
void | assign (const RefSCMatrix &) const
void | scale (double) const
void | randomize () 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 RefSCMatrix &) const
void | accumulate (const RefSymmSCMatrix &) const
void | accumulate (const RefDiagSCMatrix &) const
void | element_op (const Ref< SCElementOp > &) const
void | element_op (const Ref< SCElementOp2 > &, const RefSCMatrix &) const
void | element_op (const Ref< SCElementOp3 > &, const RefSCMatrix &, const RefSCMatrix &) const
int | nrow () const
int | ncol () const
RefSCDimension | rowdim () const
RefSCDimension | coldim () const
Ref< SCMatrixKit > | kit () const
void | set_element (int, int, double) const
void | accumulate_element (int, int, double) const
double | get_element (int, int) const
void | print (std::ostream &) const
void | print (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const
double | trace () const
void | save (StateOut &)
void | restore (StateIn &)
| Restores the matrix from StateIn object. The matrix must have been initialized already.
void | svd (const RefSCMatrix &U, const RefDiagSCMatrix &sigma, const RefSCMatrix &V)
| Compute the singular value decomposition, this = U sigma V.t().
double | solve_lin (const RefSCVector &v) const
| Solves this x = v.
double | determ () const
| Returns the determinant of the referenced matrix.
SCMatrixdouble | operator() (int i, int j) const
| Assign and examine matrix elements.
int | nblock () const
| If this matrix is blocked return the number of blocks.
RefSCMatrix | block (int i) const
| If this matrix is blocked return block i.

## Detailed Description

The RefSCMatrix class is a smart pointer to an SCMatrix specialization.

## Constructor & Destructor Documentation

sc::RefSCMatrix::RefSCMatrix | ( |  | ) |

Initializes the matrix pointer to 0.

The reference must be initialized before it is used.

sc::RefSCMatrix::RefSCMatrix | ( | const RefSCDimension & | d1,
|  | const RefSCDimension & | d2,
|  | const Ref< SCMatrixKit > & |  |
| ) |  |  |

Create a vector with dimension d1 by d2.

The data values are undefined.

## Member Function Documentation

RefSCMatrix sc::RefSCMatrix::clone | ( |  | ) | const

These call the SCMatrix members of the same name after checking for references to 0.

void sc::RefSCMatrix::svd | ( | const RefSCMatrix & | U,
|  | const RefDiagSCMatrix & | sigma,
|  | const RefSCMatrix & | V |
| ) |  |  |

Compute the singular value decomposition, this = U sigma V.t().

The dimension of sigma is the smallest dimension of this. U, V, and sigma must already have the correct dimensions and are overwritten.

double sc::RefSCMatrix::solve_lin | ( | const RefSCVector & | v | ) | const

Solves this x = v.

Overwrites v with x.

int sc::RefSCMatrix::nblock | ( |  | ) | const

If this matrix is blocked return the number of blocks.

Otherwise return 1.

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

If this matrix is blocked return block i.

Otherwise return this as block 0.

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

- matrix.h