MPQC 2.3.1

- Main Page
- Related Pages
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Protected Attributes | List of all members
sc::SymmSCMatrix Class Referenceabstract

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

`#include <abstract.h>`

Inheritance diagram for sc::SymmSCMatrix:
[legend]
Collaboration diagram for sc::SymmSCMatrix:
[legend]

## Public Member Functions
| SymmSCMatrix (const RefSCDimension &, SCMatrixKit *)
Ref< SCMatrixKit > | kit () const
| Return the SCMatrixKit object that created 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 *m)
| Assign element i, j to m[i*(i+1)/2+j]. More...
void | assign (const double **m)
| Assign element i, j to m[i][j].
void | assign (SymmSCMatrix *m)
| Make this have the same elements as m. More...
virtual void | assign_val (double val)
| Overridden to implement the assign functions.
virtual void | assign_p (const double *m)
virtual void | assign_pp (const double **m)
virtual void | assign_s (SymmSCMatrix *m)
virtual void | convert (double *) const
| Like the assign members, but these write values to the arguments.
virtual void | convert (double **) const
virtual void | convert (SymmSCMatrix *)
| Convert an SCSymmSCMatrix of a different specialization to this specialization and possibly accumulate the data. More...
virtual void | convert_accumulate (SymmSCMatrix *)
virtual void | scale (double)
| Multiply all elements by val.
virtual void | scale_diagonal (double)
| Scale the diagonal elements by val.
virtual void | shift_diagonal (double)
| Shift the diagonal elements by val.
virtual void | unit ()
| Make this equal to the unit matrix.
int | n () const
| Return the dimension.
virtual SymmSCMatrix * | copy ()
| Return a matrix with the same dimension and same elements.
virtual SymmSCMatrix * | clone ()
| Return a matrix with the same dimension but uninitialized memory.
RefSCDimension | dim () const
| Return the dimension.
virtual double | get_element (int, int) const =0
| Return or modify an element.
virtual void | set_element (int, int, double)=0
virtual void | accumulate_element (int, int, double)=0
virtual SCMatrix * | get_subblock (int br, int er, int bc, int ec)=0
| Return a subblock of this. More...
virtual SymmSCMatrix * | get_subblock (int br, int er)=0
virtual void | assign_subblock (SCMatrix *m, int, int, int, int)=0
| Assign m to a subblock of this.
virtual void | assign_subblock (SymmSCMatrix *m, int, int)=0
virtual void | accumulate_subblock (SCMatrix *m, int, int, int, int)=0
| Sum m into a subblock of this.
virtual void | accumulate_subblock (SymmSCMatrix *m, int, int)=0
virtual SCVector * | get_row (int i)=0
| Return a row of this.
virtual void | assign_row (SCVector *v, int i)=0
| Assign v to a row of this.
virtual void | accumulate_row (SCVector *v, int i)=0
| Sum v to a row of this.
virtual void | diagonalize (DiagSCMatrix *d, SCMatrix *m)=0
| Diagonalize this, placing the eigenvalues in d and the eigenvectors in m. More...
virtual void | accumulate (const SymmSCMatrix *m)=0
| Sum m into this.
virtual void | accumulate_symmetric_sum (SCMatrix *)=0
| Sum into this the products of various vectors or matrices.
virtual void | accumulate_symmetric_product (SCMatrix *)
virtual void | accumulate_transform (SCMatrix *, SymmSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform)
virtual void | accumulate_transform (SCMatrix *, DiagSCMatrix *, SCMatrix::Transform=SCMatrix::NormalTransform)
virtual void | accumulate_transform (SymmSCMatrix *, SymmSCMatrix *)
virtual void | accumulate_symmetric_outer_product (SCVector *)
virtual double | scalar_product (SCVector *v)
| Return the scalar obtained by multiplying this on the left and right by v. More...
virtual double | trace ()=0
| Return the trace.
virtual double | invert_this ()=0
| Invert this.
virtual double | determ_this ()=0
| Return the determinant of this. this is overwritten.
virtual double | solve_this (SCVector *)=0
virtual void | gen_invert_this ()=0
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 > &, SymmSCMatrix *)=0
virtual void | element_op (const Ref< SCElementOp3 > &, SymmSCMatrix *, SymmSCMatrix *)=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. More...
virtual Ref< SCMatrixSubblockIter > | all_blocks (SCMatrixSubblockIter::Access)=0
| Returns iterators for the all blocks used in this matrix.
Public Member Functions inherited from sc::DescribedClass
| DescribedClass (const DescribedClass &)
DescribedClass & | operator= (const DescribedClass &)
ClassDesc * | class_desc () const throw ()
| This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More...
const char * | class_name () const
| Return the name of the object's exact type.
int | class_version () const
| Return the version of the class.
Public Member Functions inherited from sc::RefCount
int | lock_ptr () const
| Lock this object.
int | unlock_ptr () const
| Unlock this object.
void | use_locks (bool inVal)
| start and stop using locks on this object
refcount_t | nreference () const
| Return the reference count.
refcount_t | reference ()
| Increment the reference count and return the new count.
refcount_t | dereference ()
| Decrement the reference count and return the new count.
int | managed () const
void | unmanage ()
| Turn off the reference counting mechanism for this object. More...
int | managed () const
| Return 1 if the object is managed. Otherwise return 0.
Public Member Functions inherited from sc::Identity
Identifier | identifier ()
| Return the Identifier for this argument. More...

## Protected Attributes
RefSCDimension | d
Ref< SCMatrixKit > | kit_

## Additional Inherited Members
Protected Member Functions inherited from sc::RefCount
| RefCount (const RefCount &)
RefCount & | operator= (const RefCount &)

## Detailed Description

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

## Member Function Documentation

void sc::SymmSCMatrix::assign | ( | const double * | m | ) |
| inline

Assign element i, j to m[i*(i+1)/2+j].

void sc::SymmSCMatrix::assign | ( | SymmSCMatrix * | m | ) |
| inline

Make this have the same elements as m.

The dimensions must match.

virtual void sc::SymmSCMatrix::convert | ( | SymmSCMatrix * |  | ) |
| virtual

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

virtual void sc::SymmSCMatrix::diagonalize | ( | DiagSCMatrix * | d,
|  | SCMatrix * | m
| ) |  |
| pure virtual

Diagonalize this, placing the eigenvalues in d and the eigenvectors in m.

Implemented in sc::BlockedSymmSCMatrix, sc::ReplSymmSCMatrix, sc::DistSymmSCMatrix, and sc::LocalSymmSCMatrix.

virtual SCMatrix* sc::SymmSCMatrix::get_subblock | ( | int | br,
|  | int | er,
|  | int | bc,
|  | int | ec
| ) |  |
| pure virtual

Return a subblock of this.

The subblock is defined as the rows starting at br and ending at er, and the columns beginning at bc and ending at ec.

Implemented in sc::BlockedSymmSCMatrix, sc::ReplSymmSCMatrix, sc::DistSymmSCMatrix, and sc::LocalSymmSCMatrix.

virtual Ref<SCMatrixSubblockIter> sc::SymmSCMatrix::local_blocks | ( | SCMatrixSubblockIter::Access |  | ) |
| pure virtual

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

Implemented in sc::BlockedSymmSCMatrix, sc::ReplSymmSCMatrix, sc::DistSymmSCMatrix, and sc::LocalSymmSCMatrix.

virtual double sc::SymmSCMatrix::scalar_product | ( | SCVector * | v | ) |
| virtual

Return the scalar obtained by multiplying this on the left and right by v.

Reimplemented in sc::BlockedSymmSCMatrix, sc::ReplSymmSCMatrix, and sc::LocalSymmSCMatrix.

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

- abstract.h