# 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::block | ( | int | i | ) | const

If this matrix is blocked return block i.

Otherwise return this as block 0.

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

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

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

If this matrix is blocked return the number of blocks.

Otherwise return 1.

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

Solves this x = v.

Overwrites v with x.

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.

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

- matrix.h