sc::SymmSCMatrix Class Reference

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

#include <abstract.h>

Inheritance diagram for sc::SymmSCMatrix:

sc::DescribedClass sc::RefCount sc::Identity List of all members.

Public Member Functions

 SymmSCMatrix (const RefSCDimension &, SCMatrixKit *)
Ref< SCMatrixKitkit () 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].
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.
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.
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 SymmSCMatrixcopy ()
 Return a matrix with the same dimension and same elements.
virtual SymmSCMatrixclone ()
 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 SCMatrixget_subblock (int br, int er, int bc, int ec)=0
 Return a subblock of this.
virtual SymmSCMatrixget_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 SCVectorget_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.
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.
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< MessageGrpmessagegrp () const
 Returns the message group used by the matrix kit.
virtual Ref< SCMatrixSubblockIterlocal_blocks (SCMatrixSubblockIter::Access)=0
 Returns iterators for the local (rapidly accessible) blocks used in this matrix.
virtual Ref< SCMatrixSubblockIterall_blocks (SCMatrixSubblockIter::Access)=0
 Returns iterators for the all blocks used in this matrix.

Protected Attributes

RefSCDimension d
Ref< SCMatrixKitkit_

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

virtual void sc::SymmSCMatrix::diagonalize ( DiagSCMatrix d,
SCMatrix m 
) [pure virtual]

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

virtual double sc::SymmSCMatrix::scalar_product ( SCVector v  )  [virtual]

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

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

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


The documentation for this class was generated from the following file:
Generated at Mon Dec 3 23:23:57 2007 for MPQC 2.3.1 using the documentation package Doxygen 1.5.2.