# sc::DiagSCMatrix Class Reference

The SymmSCMatrix class is the abstract base class for diagonal double valued matrices. More...

`#include <abstract.h>`

Inheritance diagram for sc::DiagSCMatrix:

List of all members.

## Public Member Functions

| DiagSCMatrix (const RefSCDimension &, SCMatrixKit *)
Ref< SCMatrixKit > | kit () const
| Return the SCMatrixKit used to create this object.
virtual void | save (StateOut &)
| Save and restore this in an implementation independent way.
virtual void | restore (StateIn &)
virtual double | maxabs () const
| Return the maximum absolute value element of this vector.
virtual void | randomize ()
| Assign each element to a random number between -1 and 1.
void | assign (double val)
| Set all elements to val.
void | assign (const double *p)
| Assign element i, i to m[i].
void | assign (DiagSCMatrix *d_a)
| Make this have the same elements as m.
virtual void | assign_val (double val)
| Overridden to implement the assign members.
virtual void | assign_p (const double *)
virtual void | assign_d (DiagSCMatrix *)
virtual void | convert (double *) const
| Like the assign member, but this writes values to the argument.
virtual void | convert (DiagSCMatrix *)
| Convert an SCDiagSCMatrix of a different specialization to this specialization and possibly accumulate the data.
virtual void | convert_accumulate (DiagSCMatrix *)
virtual void | scale (double)
| Multiply all elements by val.
int | n () const
| Return the dimension.
virtual DiagSCMatrix * | copy ()
| Return a matrix with the same dimension and same elements.
virtual DiagSCMatrix * | clone ()
| Return a matrix with the same dimension but uninitialized memory.
RefSCDimension | dim () const
| Return the dimension.
virtual double | get_element (int) const =0
| Return or modify an element.
virtual void | set_element (int, double)=0
virtual void | accumulate_element (int, double)=0
virtual void | accumulate (const DiagSCMatrix *m)=0
| Sum m into this.
virtual double | trace ()=0
| Return the trace.
virtual double | determ_this ()=0
| Return the determinant of this. this is overwritten.
virtual double | invert_this ()=0
| Invert this.
virtual void | gen_invert_this ()=0
| Do a generalized inversion of this.
virtual void | element_op (const Ref< SCElementOp > &)=0
| Perform the element operation op on each element of this.
virtual void | element_op (const Ref< SCElementOp2 > &, DiagSCMatrix *)=0
virtual void | element_op (const Ref< SCElementOp3 > &, DiagSCMatrix *, DiagSCMatrix *)=0
void | print (std::ostream &o=ExEnv::out0()) const
| Print out the matrix.
void | print (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const
virtual void | vprint (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const
Ref< MessageGrp > | messagegrp () const
| Returns the message group used by the matrix kit.
virtual Ref< SCMatrixSubblockIter > | local_blocks (SCMatrixSubblockIter::Access)=0
| Returns iterators for the local (rapidly accessible) blocks used in this matrix.
virtual Ref< SCMatrixSubblockIter > | all_blocks (SCMatrixSubblockIter::Access)=0
| Returns iterators for the all blocks used in this matrix.

## Protected Attributes

RefSCDimension | d
Ref< SCMatrixKit > | kit_

## Detailed Description

The SymmSCMatrix class is the abstract base class for diagonal double valued matrices.

## Member Function Documentation

void sc::DiagSCMatrix::assign | ( | DiagSCMatrix * | d_a | ) | `[inline]`

Make this have the same elements as m.

The dimensions must match.

virtual void sc::DiagSCMatrix::convert | ( | DiagSCMatrix * |  | ) | `[virtual]`

Convert an SCDiagSCMatrix of a different specialization to this specialization and possibly accumulate the data.

virtual Ref<SCMatrixSubblockIter> sc::DiagSCMatrix::local_blocks | ( | SCMatrixSubblockIter::Access |  | ) | `[pure virtual]`

Returns iterators for the local (rapidly accessible) blocks used in this matrix.

Implemented in sc::BlockedDiagSCMatrix, sc::DistDiagSCMatrix, sc::LocalDiagSCMatrix, and sc::ReplDiagSCMatrix.

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

- abstract.h