.TH "sc::SCVector" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::SCVector \- The \fBSCVector\fP class is the abstract base class for double valued vectors\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::DescribedClass\fP\&. .PP Inherited by \fBsc::BlockedSCVector\fP, \fBsc::DistSCVector\fP, \fBsc::LocalSCVector\fP, and \fBsc::ReplSCVector\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBSCVector\fP (const \fBRefSCDimension\fP &, \fBSCMatrixKit\fP *)" .br .ti -1c .RI "virtual void \fBsave\fP (\fBStateOut\fP &)" .br .RI "Save and restore this in an implementation independent way\&. " .ti -1c .RI "virtual void \fBrestore\fP (\fBStateIn\fP &)" .br .ti -1c .RI "\fBRef\fP< \fBSCMatrixKit\fP > \fBkit\fP () const" .br .RI "Return the \fBSCMatrixKit\fP used to create this object\&. " .ti -1c .RI "virtual \fBSCVector\fP * \fBcopy\fP ()" .br .RI "Return a vector with the same dimension and same elements\&. " .ti -1c .RI "virtual \fBSCVector\fP * \fBclone\fP ()" .br .RI "Return a vector with the same dimension but uninitialized memory\&. " .ti -1c .RI "int \fBn\fP () const" .br .RI "Return the length of the vector\&. " .ti -1c .RI "virtual double \fBmaxabs\fP () const" .br .RI "Return the maximum absolute value element of this vector\&. " .ti -1c .RI "virtual void \fBnormalize\fP ()" .br .RI "Normalize this\&. " .ti -1c .RI "virtual void \fBrandomize\fP ()" .br .RI "Assign each element to a random number between -1 and 1\&. " .ti -1c .RI "void \fBassign\fP (double val)" .br .RI "Assign all elements of this to val\&. " .ti -1c .RI "void \fBassign\fP (const double *v)" .br .RI "Assign element i to v[i] for all i\&. " .ti -1c .RI "void \fBassign\fP (\fBSCVector\fP *v)" .br .RI "Make this have the same elements as v\&. " .ti -1c .RI "virtual void \fBassign_val\fP (double val)" .br .RI "Overridden to implement the assign functions\&. " .ti -1c .RI "virtual void \fBassign_p\fP (const double *v)" .br .ti -1c .RI "virtual void \fBassign_v\fP (\fBSCVector\fP *v)" .br .ti -1c .RI "virtual void \fBconvert\fP (double *v) const" .br .RI "Assign v[i] to element i for all i\&. " .ti -1c .RI "virtual void \fBconvert\fP (\fBSCVector\fP *)" .br .RI "Convert an \fBSCVector\fP of a different specialization to this specialization and possibly accumulate the data\&. " .ti -1c .RI "virtual void \fBconvert_accumulate\fP (\fBSCVector\fP *)" .br .ti -1c .RI "virtual void \fBscale\fP (double val)" .br .RI "Multiply each element by val\&. " .ti -1c .RI "\fBRefSCDimension\fP \fBdim\fP () const" .br .RI "Return the \fBRefSCDimension\fP corresponding to this vector\&. " .ti -1c .RI "virtual void \fBset_element\fP (int i, double val)=0" .br .RI "Set element i to val\&. " .ti -1c .RI "virtual void \fBaccumulate_element\fP (int, double)=0" .br .RI "Add val to element i\&. " .ti -1c .RI "virtual double \fBget_element\fP (int i) const =0" .br .RI "Return the value of element i\&. " .ti -1c .RI "void \fBaccumulate_product\fP (\fBSymmSCMatrix\fP *m, \fBSCVector\fP *v)" .br .RI "Sum the result of m times v into this\&. " .ti -1c .RI "void \fBaccumulate_product\fP (\fBSCMatrix\fP *m, \fBSCVector\fP *v)" .br .ti -1c .RI "virtual void \fBaccumulate_product_sv\fP (\fBSymmSCMatrix\fP *m, \fBSCVector\fP *v)" .br .ti -1c .RI "virtual void \fBaccumulate_product_rv\fP (\fBSCMatrix\fP *m, \fBSCVector\fP *v)=0" .br .ti -1c .RI "virtual void \fBaccumulate\fP (const \fBSCVector\fP *v)=0" .br .RI "Sum v into this\&. " .ti -1c .RI "virtual void \fBaccumulate\fP (const \fBSCMatrix\fP *m)=0" .br .RI "Sum m into this\&. One of m's dimensions must be 1\&. " .ti -1c .RI "virtual double \fBscalar_product\fP (\fBSCVector\fP *)=0" .br .RI "Return the dot product\&. " .ti -1c .RI "virtual void \fBelement_op\fP (const \fBRef\fP< \fBSCElementOp\fP > &)=0" .br .RI "Perform the element operation op on each element of this\&. " .ti -1c .RI "virtual void \fBelement_op\fP (const \fBRef\fP< \fBSCElementOp2\fP > &, \fBSCVector\fP *)=0" .br .ti -1c .RI "virtual void \fBelement_op\fP (const \fBRef\fP< \fBSCElementOp3\fP > &, \fBSCVector\fP *, \fBSCVector\fP *)=0" .br .ti -1c .RI "void \fBprint\fP (std::ostream &o=\fBExEnv::out0\fP()) const" .br .RI "Print out the vector\&. " .ti -1c .RI "void \fBprint\fP (const char *title=0, std::ostream &out=\fBExEnv::out0\fP(), int=10) const" .br .ti -1c .RI "virtual void \fBvprint\fP (const char *title=0, std::ostream &out=\fBExEnv::out0\fP(), int=10) const =0" .br .ti -1c .RI "\fBRef\fP< \fBMessageGrp\fP > \fBmessagegrp\fP () const" .br .RI "Returns the message group used by the matrix kit\&. " .ti -1c .RI "virtual \fBRef\fP< \fBSCMatrixSubblockIter\fP > \fBlocal_blocks\fP (SCMatrixSubblockIter::Access)=0" .br .RI "Returns iterators for the local (rapidly accessible) blocks used in this vector\&. " .ti -1c .RI "virtual \fBRef\fP< \fBSCMatrixSubblockIter\fP > \fBall_blocks\fP (SCMatrixSubblockIter::Access)=0" .br .RI "Returns iterators for the all blocks used in this vector\&. " .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "\fBRefSCDimension\fP \fBd\fP" .br .ti -1c .RI "\fBRef\fP< \fBSCMatrixKit\fP > \fBkit_\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSCVector\fP class is the abstract base class for double valued vectors\&. .SH "Member Function Documentation" .PP .SS "void sc::SCVector::assign (\fBSCVector\fP * v)\fC [inline]\fP" .PP Make this have the same elements as v\&. The dimensions must match\&. .SS "virtual \fBRef\fP<\fBSCMatrixSubblockIter\fP> sc::SCVector::local_blocks (SCMatrixSubblockIter::Access)\fC [pure virtual]\fP" .PP Returns iterators for the local (rapidly accessible) blocks used in this vector\&. Only one iterator is allowed for a matrix is it has Accum or Write access is allowed\&. Multiple Read iterators are permitted\&. .PP Implemented in \fBsc::ReplSCVector\fP, \fBsc::LocalSCVector\fP, \fBsc::DistSCVector\fP, and \fBsc::BlockedSCVector\fP\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.