Man Linux: Main Page and Category List

NAME

       sc::SymmSCMatrix -

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

SYNOPSIS

       #include <abstract.h>

       Inherits sc::DescribedClass.

       Inherited by sc::BlockedSymmSCMatrix, sc::DistSymmSCMatrix,
       sc::LocalSymmSCMatrix, and sc::ReplSymmSCMatrix.

   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].
       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 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.
       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.
       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< 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 symmetric double
       valued matrices.

Member Function Documentation

   void sc::SymmSCMatrix::assign (SymmSCMatrix * m) [inline]
       Make this have the same elements as m. The dimensions must match.

   void sc::SymmSCMatrix::assign (const double * m) [inline]
       Assign element i, j to m[i*(i+1)/2+j].

   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::DistSymmSCMatrix,
       sc::LocalSymmSCMatrix, and sc::ReplSymmSCMatrix.

   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::DistSymmSCMatrix,
       sc::LocalSymmSCMatrix, and sc::ReplSymmSCMatrix.

   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::DistSymmSCMatrix,
       sc::LocalSymmSCMatrix, and sc::ReplSymmSCMatrix.

   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::LocalSymmSCMatrix, and
       sc::ReplSymmSCMatrix.

Author

       Generated automatically by Doxygen for MPQC from the source code.