MPQC  3.0.0-alpha
sc::SCVector Class Referenceabstract

The SCVector class is the abstract base class for double valued vectors. More...

#include <math/scmat/abstract.h>

Inheritance diagram for sc::SCVector:
sc::DescribedClass sc::RefCount sc::BlockedSCVector sc::DistSCVector sc::LocalSCVector sc::ReplSCVector

Public Member Functions

 SCVector (const RefSCDimension &, SCMatrixKit *)
 
virtual void save (StateOut &)
 Save and restore this in an implementation independent way.
 
virtual void restore (StateIn &)
 
Ref< SCMatrixKitkit () const
 Return the SCMatrixKit used to create this object.
 
virtual SCVectorcopy ()
 Return a vector with the same dimension and same elements.
 
virtual SCVectorclone ()
 Return a vector with the same dimension but uninitialized memory.
 
int n () const
 Return the length of the vector.
 
virtual double maxabs () const
 Return the maximum absolute value element of this vector.
 
virtual void normalize ()
 Normalize this.
 
virtual void randomize ()
 Assign each element to a random number between -1 and 1.
 
void assign (double val)
 Assign all elements of this to val.
 
void assign (const double *v)
 Assign element i to v[i] for all i.
 
void assign (SCVector *v)
 Make this have the same elements as v. More...
 
virtual void assign_val (double val)
 Overridden to implement the assign functions.
 
virtual void assign_p (const double *v)
 
virtual void assign_v (SCVector *v)
 
void convert (double *v) const
 Assign v[i] to element i for all i.
 
void convert (SCVector *v)
 
virtual void convert_p (double *v) const
 
virtual void convert_v (SCVector *)
 
virtual void convert_accumulate (SCVector *)
 
virtual void scale (double val)
 Multiply each element by val.
 
RefSCDimension dim () const
 Return the RefSCDimension corresponding to this vector.
 
virtual void set_element (int i, double val)=0
 Set element i to val.
 
virtual void accumulate_element (int, double)=0
 Add val to element i.
 
virtual double get_element (int i) const =0
 Return the value of element i.
 
void accumulate_product (SymmSCMatrix *m, SCVector *v)
 Sum the result of m times v into this.
 
void accumulate_product (SCMatrix *m, SCVector *v)
 
virtual void accumulate_product_sv (SymmSCMatrix *m, SCVector *v)
 
virtual void accumulate_product_rv (SCMatrix *m, SCVector *v)=0
 
virtual void accumulate (const SCVector *v)=0
 Sum v into this.
 
virtual void accumulate (const SCMatrix *m)=0
 Sum m into this. One of m's dimensions must be 1.
 
virtual double scalar_product (SCVector *)=0
 Return the dot product.
 
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 > &, SCVector *)=0
 
virtual void element_op (const Ref< SCElementOp3 > &, SCVector *, SCVector *)=0
 
void print (std::ostream &o=ExEnv::out0()) const
 Print out the vector.
 
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 vector. More...
 
virtual Ref< SCMatrixSubblockIterall_blocks (SCMatrixSubblockIter::Access)=0
 Returns iterators for the all blocks used in this vector.
 
- Public Member Functions inherited from sc::DescribedClass
 DescribedClass (const DescribedClass &)
 
DescribedClassoperator= (const DescribedClass &)
 
ClassDescclass_desc () const MPQC__NOEXCEPT
 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.
 
Ref< DescribedClassref ()
 Return this object wrapped up in a Ref smart pointer. More...
 
- Public Member Functions inherited from sc::RefCount
size_t identifier () const
 Return the unique identifier for this object that can be compared for different objects of different types. More...
 
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...
 

Protected Attributes

RefSCDimension d
 
Ref< SCMatrixKitkit_
 

Additional Inherited Members

- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

Detailed Description

The SCVector class is the abstract base class for double valued vectors.

Member Function Documentation

◆ assign()

void sc::SCVector::assign ( SCVector v)
inline

Make this have the same elements as v.

The dimensions must match.

◆ local_blocks()

virtual Ref<SCMatrixSubblockIter> sc::SCVector::local_blocks ( SCMatrixSubblockIter::Access  )
pure virtual

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.

Implemented in sc::BlockedSCVector, sc::ReplSCVector, sc::LocalSCVector, and sc::DistSCVector.


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

Generated at Sun Jan 26 2020 23:24:12 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.