MPQC 2.3.1
Public Member Functions | Friends | List of all members
sc::LocalSCMatrix Class Reference
Inheritance diagram for sc::LocalSCMatrix:
Inheritance graph
[legend]
Collaboration diagram for sc::LocalSCMatrix:
Collaboration graph
[legend]

Public Member Functions

 LocalSCMatrix (const RefSCDimension &, const RefSCDimension &, LocalSCMatrixKit *)
 
void assign_val (double)
 Overridden to implement to assign members. More...
 
double get_element (int, int) const
 Return or modify an element. More...
 
void set_element (int, int, double)
 
void accumulate_element (int, int, double)
 
SCMatrixget_subblock (int, int, int, int)
 Return a subblock of this. More...
 
void assign_subblock (SCMatrix *, int, int, int, int, int=0, int=0)
 Assign m to a subblock of this. More...
 
void accumulate_subblock (SCMatrix *, int, int, int, int, int=0, int=0)
 Sum m into a subblock of this. More...
 
SCVectorget_row (int i)
 Return a row or column of this. More...
 
SCVectorget_column (int i)
 
void assign_row (SCVector *v, int i)
 Assign v to a row or column of this. More...
 
void assign_column (SCVector *v, int i)
 
void accumulate_row (SCVector *v, int i)
 Sum v to a row or column of this. More...
 
void accumulate_column (SCVector *v, int i)
 
void accumulate_outer_product (SCVector *, SCVector *)
 Sum into this the products of various vectors or matrices. More...
 
void accumulate_product_rr (SCMatrix *, SCMatrix *)
 
void accumulate_product_rs (SCMatrix *, SymmSCMatrix *)
 
void accumulate_product_rd (SCMatrix *, DiagSCMatrix *)
 
void accumulate (const SCMatrix *)
 Sum m into this. More...
 
void accumulate (const SymmSCMatrix *)
 
void accumulate (const DiagSCMatrix *)
 
void accumulate (const SCVector *)
 
void transpose_this ()
 Transpose this. More...
 
double invert_this ()
 Invert this. More...
 
void svd_this (SCMatrix *U, DiagSCMatrix *sigma, SCMatrix *V)
 Compute the singular value decomposition for this, possibly destroying this. More...
 
double solve_this (SCVector *)
 
double determ_this ()
 Return the determinant of this. this is overwritten. More...
 
double trace ()
 Return the trace. More...
 
void schmidt_orthog (SymmSCMatrix *, int)
 Schmidt orthogonalize this. More...
 
int schmidt_orthog_tol (SymmSCMatrix *, double tol, double *res=0)
 Schmidt orthogonalize this. More...
 
void element_op (const Ref< SCElementOp > &)
 Perform the element operation op on each element of this. More...
 
void element_op (const Ref< SCElementOp2 > &, SCMatrix *)
 
void element_op (const Ref< SCElementOp3 > &, SCMatrix *, SCMatrix *)
 
void vprint (const char *title=0, std::ostream &out=ExEnv::out0(), int=10) const
 
double * get_data ()
 
double ** get_rows ()
 
Ref< SCMatrixSubblockIterlocal_blocks (SCMatrixSubblockIter::Access)
 Returns iterators for the local (rapidly accessible) blocks used in this matrix. More...
 
Ref< SCMatrixSubblockIterall_blocks (SCMatrixSubblockIter::Access)
 Returns iterators for the all blocks used in this matrix. More...
 
- Public Member Functions inherited from sc::SCMatrix
 SCMatrix (const RefSCDimension &, const RefSCDimension &, SCMatrixKit *)
 
virtual void save (StateOut &)
 Save and restore this in an implementation independent way. More...
 
virtual void restore (StateIn &)
 
Ref< SCMatrixKitkit () const
 Return the SCMatrixKit used to create this object.
 
int nrow () const
 Return the number of rows.
 
int ncol () const
 Return the number of columns.
 
virtual double maxabs () const
 Return the maximum absolute value element.
 
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[ir*nrow()+j].
 
void assign (const double **m)
 Assign element i, j to m[i][j].
 
void assign (SCMatrix *m)
 Make this have the same elements as m. The dimensions must match.
 
virtual void assign_val (double val)
 Overridden to implement to assign members. More...
 
virtual void assign_p (const double *m)
 
virtual void assign_pp (const double **m)
 
virtual void assign_r (SCMatrix *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 (SCMatrix *)
 Convert an SCMatrix of a different specialization to this specialization and possibly accumulate the data.
 
virtual void convert_accumulate (SCMatrix *)
 
virtual void scale (double val)
 Multiply all elements by val.
 
virtual void scale_diagonal (double val)
 Scale the diagonal elements by val.
 
virtual void shift_diagonal (double val)
 Shift the diagonal elements by val.
 
virtual void unit ()
 Make this equal to the unit matrix.
 
virtual SCMatrixcopy ()
 Return a matrix with the same dimension and same elements.
 
virtual SCMatrixclone ()
 Return a matrix with the same dimension but uninitialized memory.
 
RefSCDimension rowdim () const
 Return the row or column dimension.
 
RefSCDimension coldim () const
 
virtual double get_element (int, int) const =0
 Return or modify an element. More...
 
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. More...
 
virtual void assign_subblock (SCMatrix *m, int, int, int, int, int=0, int=0)=0
 Assign m to a subblock of this. More...
 
virtual void accumulate_subblock (SCMatrix *m, int, int, int, int, int=0, int=0)=0
 Sum m into a subblock of this. More...
 
virtual SCVectorget_row (int i)=0
 Return a row or column of this. More...
 
virtual SCVectorget_column (int i)=0
 
virtual void assign_row (SCVector *v, int i)=0
 Assign v to a row or column of this. More...
 
virtual void assign_column (SCVector *v, int i)=0
 
virtual void accumulate_row (SCVector *v, int i)=0
 Sum v to a row or column of this. More...
 
virtual void accumulate_column (SCVector *v, int i)=0
 
virtual void accumulate (const SCMatrix *m)=0
 Sum m into this. More...
 
virtual void accumulate (const SymmSCMatrix *m)=0
 
virtual void accumulate (const DiagSCMatrix *m)=0
 
virtual void accumulate (const SCVector *)=0
 
virtual void accumulate_outer_product (SCVector *, SCVector *)=0
 Sum into this the products of various vectors or matrices. More...
 
void accumulate_product (SCMatrix *m1, SCMatrix *m2)
 
void accumulate_product (SCMatrix *m1, SymmSCMatrix *m2)
 
void accumulate_product (SCMatrix *m1, DiagSCMatrix *m2)
 
void accumulate_product (SymmSCMatrix *m1, SCMatrix *m2)
 
void accumulate_product (DiagSCMatrix *m1, SCMatrix *m2)
 
void accumulate_product (SymmSCMatrix *m1, SymmSCMatrix *m2)
 
virtual void accumulate_product_rr (SCMatrix *, SCMatrix *)=0
 
virtual void accumulate_product_rs (SCMatrix *, SymmSCMatrix *)
 
virtual void accumulate_product_rd (SCMatrix *, DiagSCMatrix *)
 
virtual void accumulate_product_sr (SymmSCMatrix *, SCMatrix *)
 
virtual void accumulate_product_dr (DiagSCMatrix *, SCMatrix *)
 
virtual void accumulate_product_ss (SymmSCMatrix *, SymmSCMatrix *)
 
virtual void transpose_this ()=0
 Transpose this. More...
 
virtual double trace ()=0
 Return the trace. More...
 
virtual double invert_this ()=0
 Invert this. More...
 
virtual double determ_this ()=0
 Return the determinant of this. this is overwritten. More...
 
virtual void svd_this (SCMatrix *U, DiagSCMatrix *sigma, SCMatrix *V)
 Compute the singular value decomposition for this, possibly destroying this. More...
 
virtual double solve_this (SCVector *)=0
 
virtual void gen_invert_this ()
 
virtual void schmidt_orthog (SymmSCMatrix *, int n)=0
 Schmidt orthogonalize this. More...
 
virtual int schmidt_orthog_tol (SymmSCMatrix *, double tol, double *res=0)=0
 Schmidt orthogonalize this. More...
 
virtual void element_op (const Ref< SCElementOp > &)=0
 Perform the element operation op on each element of this. More...
 
virtual void element_op (const Ref< SCElementOp2 > &, SCMatrix *)=0
 
virtual void element_op (const Ref< SCElementOp3 > &, SCMatrix *, SCMatrix *)=0
 
void print (std::ostream &o=ExEnv::out0()) const
 Print out the matrix. More...
 
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 =0
 
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. More...
 
virtual Ref< SCMatrixSubblockIterall_blocks (SCMatrixSubblockIter::Access)=0
 Returns iterators for the all blocks used in this matrix. More...
 
- Public Member Functions inherited from sc::DescribedClass
 DescribedClass (const DescribedClass &)
 
DescribedClassoperator= (const DescribedClass &)
 
ClassDescclass_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.
 
virtual void print (std::ostream &=ExEnv::out0()) const
 Print the object. More...
 
- 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...
 

Friends

class LocalSymmSCMatrix
 
class LocalDiagSCMatrix
 
class LocalSCVector
 

Additional Inherited Members

- Public Types inherited from sc::SCMatrix
enum  Transform { NormalTransform = 0 , TransposeTransform = 1 }
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 
- Protected Attributes inherited from sc::SCMatrix
RefSCDimension d1
 
RefSCDimension d2
 
Ref< SCMatrixKitkit_
 

Member Function Documentation

◆ accumulate() [1/4]

void sc::LocalSCMatrix::accumulate ( const DiagSCMatrix )
virtual

Implements sc::SCMatrix.

◆ accumulate() [2/4]

void sc::LocalSCMatrix::accumulate ( const SCMatrix m)
virtual

Sum m into this.

Implements sc::SCMatrix.

◆ accumulate() [3/4]

void sc::LocalSCMatrix::accumulate ( const SCVector )
virtual

Implements sc::SCMatrix.

◆ accumulate() [4/4]

void sc::LocalSCMatrix::accumulate ( const SymmSCMatrix )
virtual

Implements sc::SCMatrix.

◆ accumulate_column()

void sc::LocalSCMatrix::accumulate_column ( SCVector v,
int  i 
)
virtual

Implements sc::SCMatrix.

◆ accumulate_element()

void sc::LocalSCMatrix::accumulate_element ( int  ,
int  ,
double   
)
virtual

Implements sc::SCMatrix.

◆ accumulate_outer_product()

void sc::LocalSCMatrix::accumulate_outer_product ( SCVector ,
SCVector  
)
virtual

Sum into this the products of various vectors or matrices.

Implements sc::SCMatrix.

◆ accumulate_product_rd()

void sc::LocalSCMatrix::accumulate_product_rd ( SCMatrix ,
DiagSCMatrix  
)
virtual

Reimplemented from sc::SCMatrix.

◆ accumulate_product_rr()

void sc::LocalSCMatrix::accumulate_product_rr ( SCMatrix ,
SCMatrix  
)
virtual

Implements sc::SCMatrix.

◆ accumulate_product_rs()

void sc::LocalSCMatrix::accumulate_product_rs ( SCMatrix ,
SymmSCMatrix  
)
virtual

Reimplemented from sc::SCMatrix.

◆ accumulate_row()

void sc::LocalSCMatrix::accumulate_row ( SCVector v,
int  i 
)
virtual

Sum v to a row or column of this.

Implements sc::SCMatrix.

◆ accumulate_subblock()

void sc::LocalSCMatrix::accumulate_subblock ( SCMatrix m,
int  ,
int  ,
int  ,
int  ,
int  = 0,
int  = 0 
)
virtual

Sum m into a subblock of this.

Implements sc::SCMatrix.

◆ all_blocks()

Ref< SCMatrixSubblockIter > sc::LocalSCMatrix::all_blocks ( SCMatrixSubblockIter::Access  )
virtual

Returns iterators for the all blocks used in this matrix.

Implements sc::SCMatrix.

◆ assign_column()

void sc::LocalSCMatrix::assign_column ( SCVector v,
int  i 
)
virtual

Implements sc::SCMatrix.

◆ assign_row()

void sc::LocalSCMatrix::assign_row ( SCVector v,
int  i 
)
virtual

Assign v to a row or column of this.

Implements sc::SCMatrix.

◆ assign_subblock()

void sc::LocalSCMatrix::assign_subblock ( SCMatrix m,
int  ,
int  ,
int  ,
int  ,
int  = 0,
int  = 0 
)
virtual

Assign m to a subblock of this.

Implements sc::SCMatrix.

◆ assign_val()

void sc::LocalSCMatrix::assign_val ( double  val)
virtual

Overridden to implement to assign members.

Reimplemented from sc::SCMatrix.

◆ determ_this()

double sc::LocalSCMatrix::determ_this ( )
virtual

Return the determinant of this. this is overwritten.

Implements sc::SCMatrix.

◆ element_op() [1/3]

void sc::LocalSCMatrix::element_op ( const Ref< SCElementOp > &  )
virtual

Perform the element operation op on each element of this.

Implements sc::SCMatrix.

◆ element_op() [2/3]

void sc::LocalSCMatrix::element_op ( const Ref< SCElementOp2 > &  ,
SCMatrix  
)
virtual

Implements sc::SCMatrix.

◆ element_op() [3/3]

void sc::LocalSCMatrix::element_op ( const Ref< SCElementOp3 > &  ,
SCMatrix ,
SCMatrix  
)
virtual

Implements sc::SCMatrix.

◆ get_column()

SCVector * sc::LocalSCMatrix::get_column ( int  i)
virtual

Implements sc::SCMatrix.

◆ get_element()

double sc::LocalSCMatrix::get_element ( int  ,
int   
) const
virtual

Return or modify an element.

Implements sc::SCMatrix.

◆ get_row()

SCVector * sc::LocalSCMatrix::get_row ( int  i)
virtual

Return a row or column of this.

Implements sc::SCMatrix.

◆ get_subblock()

SCMatrix * sc::LocalSCMatrix::get_subblock ( int  br,
int  er,
int  bc,
int  ec 
)
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.

Implements sc::SCMatrix.

◆ invert_this()

double sc::LocalSCMatrix::invert_this ( )
virtual

Invert this.

Implements sc::SCMatrix.

◆ local_blocks()

Ref< SCMatrixSubblockIter > sc::LocalSCMatrix::local_blocks ( SCMatrixSubblockIter::Access  )
virtual

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

Implements sc::SCMatrix.

◆ schmidt_orthog()

void sc::LocalSCMatrix::schmidt_orthog ( SymmSCMatrix ,
int  n 
)
virtual

Schmidt orthogonalize this.

S is the overlap matrix. n is the number of columns to orthogonalize.

Implements sc::SCMatrix.

◆ schmidt_orthog_tol()

int sc::LocalSCMatrix::schmidt_orthog_tol ( SymmSCMatrix ,
double  tol,
double *  res = 0 
)
virtual

Schmidt orthogonalize this.

S is the overlap matrix. tol is the tolerance. The number of linearly independent vectors is returned.

Implements sc::SCMatrix.

◆ set_element()

void sc::LocalSCMatrix::set_element ( int  ,
int  ,
double   
)
virtual

Implements sc::SCMatrix.

◆ solve_this()

double sc::LocalSCMatrix::solve_this ( SCVector )
virtual

Implements sc::SCMatrix.

◆ svd_this()

void sc::LocalSCMatrix::svd_this ( SCMatrix U,
DiagSCMatrix sigma,
SCMatrix V 
)
virtual

Compute the singular value decomposition for this, possibly destroying this.

Reimplemented from sc::SCMatrix.

◆ trace()

double sc::LocalSCMatrix::trace ( )
virtual

Return the trace.

Implements sc::SCMatrix.

◆ transpose_this()

void sc::LocalSCMatrix::transpose_this ( )
virtual

Transpose this.

Implements sc::SCMatrix.

◆ vprint()

void sc::LocalSCMatrix::vprint ( const char *  title = 0,
std::ostream &  out = ExEnv::out0(),
int  = 10 
) const
virtual

Implements sc::SCMatrix.


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

Generated at Sun Nov 27 2022 00:00:00 for MPQC 2.3.1 using the documentation package Doxygen 1.9.5.