# sc_RefDiagSCMatrix man page

sc::RefDiagSCMatrix — The **RefDiagSCMatrix** class is a smart pointer to an **DiagSCMatrix** specialization.

## Synopsis

`#include <matrix.h>`

Inherits **sc::Ref< DiagSCMatrix >**.

### Public Member Functions

**RefDiagSCMatrix** ()

Initializes the matrix pointer to 0. **RefDiagSCMatrix** (const **RefDiagSCMatrix** &m)

Make this and m refer to the same **SCMatrix**. **RefDiagSCMatrix** (**DiagSCMatrix** *m)

Make this refer to m. **RefDiagSCMatrix** & **operator=** (**DiagSCMatrix** *m)

Make this refer to m. **RefDiagSCMatrix** & **operator=** (const **RefDiagSCMatrix** &m)

Make this and m refer to the same matrix. **RefDiagSCMatrix** (const **RefSCDimension** &, const **Ref**< **SCMatrixKit** > &)

Create a diagonal matrix with dimension d by d. **RefSCMatrix operator*** (const **RefSCMatrix** &) const

Multiply this by a matrix and return a matrix. **RefDiagSCMatrix operator*** (double) const**RefDiagSCMatrix operator+** (const **RefDiagSCMatrix** &) const

Matrix addition and subtraction. **RefDiagSCMatrix operator-** (const **RefDiagSCMatrix** &) const**RefDiagSCMatrix i** () const

Return the inverse of this. **RefDiagSCMatrix gi** () const

Return the generalized inverse of this. **RefDiagSCMatrix clone** () const

These call the **SCMatrix** members of the same name after checking for references to 0. **RefDiagSCMatrix copy** () const

void **set_element** (int, double) const

void **accumulate_element** (int, double) const

double **get_element** (int) const

void **randomize** () const

void **assign** (const **RefDiagSCMatrix** &) const

void **scale** (double) const

void **assign** (double) const

void **assign** (const double *) const

void **convert** (double *) const

void **accumulate** (const **RefDiagSCMatrix** &) const

void **element_op** (const **Ref**< **SCElementOp** > &) const

void **element_op** (const **Ref**< **SCElementOp2** > &, const **RefDiagSCMatrix** &) const

void **element_op** (const **Ref**< **SCElementOp3** > &, const **RefDiagSCMatrix** &, const **RefDiagSCMatrix** &) const

int **n** () const**RefSCDimension dim** () const**Ref**< **SCMatrixKit** > **kit** () const

double **trace** () 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 **determ** () const

Returns the determinant of the referenced matrix. **DiagSCMatrixdouble operator()** (int **i**) const

Assign and examine matrix elements.

int **nblock** () const

If this matrix is blocked return the number of blocks. **RefDiagSCMatrix block** (int **i**) const

If this matrix is blocked return block i.

### Additional Inherited Members

## Detailed Description

The **RefDiagSCMatrix** class is a smart pointer to an **DiagSCMatrix** specialization.

## Constructor & Destructor Documentation

### sc::RefDiagSCMatrix::RefDiagSCMatrix ()

Initializes the matrix pointer to 0. The reference must be initialized before it is used.

### sc::RefDiagSCMatrix::RefDiagSCMatrix (const RefSCDimension &, const Ref< SCMatrixKit > &)

Create a diagonal matrix with dimension d by d. The data values are undefined.

## Member Function Documentation

### RefDiagSCMatrix sc::RefDiagSCMatrix::block (int i) const

If this matrix is blocked return block i. Otherwise return this as block 0.

### RefDiagSCMatrix sc::RefDiagSCMatrix::clone () const

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

### int sc::RefDiagSCMatrix::nblock () const

If this matrix is blocked return the number of blocks. Otherwise return 1.

## Author

Generated automatically by Doxygen for MPQC from the source code.