Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
sc::SCMatrix(3)			     MPQC		       sc::SCMatrix(3)

NAME
       sc::SCMatrix - The SCMatrix class is the	abstract base class for
       general double valued n by m matrices.

SYNOPSIS
       #include	<abstract.h>

       Inherits	sc::DescribedClass.

       Inherited by sc::BlockedSCMatrix, sc::DistSCMatrix, sc::LocalSCMatrix,
       and sc::ReplSCMatrix.

   Public Types
       enum Transform {	NormalTransform	= 0, TransposeTransform	= 1 }

   Public Member Functions
       SCMatrix	(const RefSCDimension &, const RefSCDimension &, SCMatrixKit
	   *)
       virtual void save (StateOut &)
	   Save	and restore this in an implementation independent way.
       virtual void restore (StateIn &)
       Ref< SCMatrixKit	> kit () 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.
       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 SCMatrix	* copy ()
	   Return a matrix with	the same dimension and same elements.
       virtual SCMatrix	* clone	()
	   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.
       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 void assign_subblock (SCMatrix *m, int, int, int, int, int=0,
	   int=0)=0
	   Assign m to a subblock of this.
       virtual void accumulate_subblock	(SCMatrix *m, int, int,	int, int,
	   int=0, int=0)=0
	   Sum m into a	subblock of this.
       virtual SCVector	* get_row (int i)=0
	   Return a row	or column of this.
       virtual SCVector	* get_column (int i)=0
       virtual void assign_row (SCVector *v, int i)=0
	   Assign v to a row or	column of this.
       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.
       virtual void accumulate_column (SCVector	*v, int	i)=0
       virtual void accumulate (const SCMatrix *m)=0
	   Sum m into this.
       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.
       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.
       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 void svd_this (SCMatrix *U, DiagSCMatrix	*sigma,	SCMatrix *V)
	   Compute the singular	value decomposition for	this, possibly
	   destroying this.
       virtual double solve_this (SCVector *)=0
       virtual void gen_invert_this ()
       virtual void schmidt_orthog (SymmSCMatrix *, int	n)=0
	   Schmidt orthogonalize this.
       virtual int schmidt_orthog_tol (SymmSCMatrix *, double tol, double
	   *res=0)=0
	   Schmidt orthogonalize 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	> &, SCMatrix *)=0
       virtual void element_op (const Ref< SCElementOp3	> &, SCMatrix *,
	   SCMatrix *)=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 =0
       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 d1
       RefSCDimension d2
       Ref< SCMatrixKit	> kit_

   Additional Inherited	Members
Detailed Description
       The SCMatrix class is the abstract base class for general double	valued
       n by m matrices.

       For symmetric matrices use SymmSCMatrix and for diagonal	matrices use
       DiagSCMatrix.

Member Function	Documentation
   virtual void	sc::SCMatrix::convert (double *) const [virtual]
       Like the	assign members,	but these write	values to the arguments.

   virtual void	sc::SCMatrix::convert (SCMatrix	*) [virtual]
       Convert an SCMatrix of a	different specialization to this
       specialization and possibly accumulate the data.

   virtual SCMatrix* sc::SCMatrix::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::BlockedSCMatrix, sc::ReplSCMatrix, sc::DistSCMatrix,
       and sc::LocalSCMatrix.

   virtual Ref<SCMatrixSubblockIter> sc::SCMatrix::local_blocks
       (SCMatrixSubblockIter::Access) [pure virtual]
       Returns iterators for the local (rapidly	accessible) blocks used	in
       this matrix.

       Implemented in sc::BlockedSCMatrix, sc::ReplSCMatrix, sc::DistSCMatrix,
       and sc::LocalSCMatrix.

   virtual void	sc::SCMatrix::schmidt_orthog (SymmSCMatrix *, int n) [pure
       virtual]
       Schmidt orthogonalize this. S is	the overlap matrix. n is the number of
       columns to orthogonalize.

       Implemented in sc::BlockedSCMatrix, sc::ReplSCMatrix, sc::DistSCMatrix,
       and sc::LocalSCMatrix.

   virtual int sc::SCMatrix::schmidt_orthog_tol	(SymmSCMatrix *, double	tol,
       double *	res = 0) [pure virtual]
       Schmidt orthogonalize this. S is	the overlap matrix. tol	is the
       tolerance. The number of	linearly independent vectors is	returned.

       Implemented in sc::BlockedSCMatrix, sc::ReplSCMatrix, sc::DistSCMatrix,
       and sc::LocalSCMatrix.

   virtual void	sc::SCMatrix::svd_this (SCMatrix * U, DiagSCMatrix * sigma,
       SCMatrix	* V) [virtual]
       Compute the singular value decomposition	for this, possibly destroying
       this.

       Reimplemented in	sc::BlockedSCMatrix, sc::ReplSCMatrix, and
       sc::LocalSCMatrix.

Author
       Generated automatically by Doxygen for MPQC from	the source code.

Version	2.3.1			Mon Jul	3 2017		       sc::SCMatrix(3)

NAME | SYNOPSIS | Detailed Description | Member Function Documentation | Author

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=sc_SCMatrix&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help