## SYNOPSIS

#include <matrix.h>

Inherits **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. *

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