MPQC  3.0.0-alpha
sc::RefSCVector Class Reference

The RefSCVector class is a smart pointer to an SCVector specialization. More...

#include <math/scmat/matrix.h>

Inheritance diagram for sc::RefSCVector:
sc::Ref< SCVector > sc::RefBase

Public Member Functions

 RefSCVector ()
 Initializes the vector pointer to 0. More...
 
 RefSCVector (const RefSCVector &v)
 Make this and v refer to the same SCVector.
 
 RefSCVector (SCVector *v)
 Make this refer to v.
 
RefSCVectoroperator= (SCVector *v)
 Make this refer to v.
 
RefSCVectoroperator= (const RefSCVector &v)
 Make this and v refer to the same SCVector.
 
 RefSCVector (const RefSCDimension &dim, const Ref< SCMatrixKit > &)
 Create a vector with dimension dim. More...
 
SCVectordouble operator() (int) const
 Return an l-value that can be used to assign or retrieve an element.
 
SCVectordouble operator[] (int) const
 Return an l-value that can be used to assign or retrieve an element.
 
RefSCVector operator+ (const RefSCVector &a) const
 Add two vectors.
 
RefSCVector operator- (const RefSCVector &a) const
 Subtract two vectors.
 
RefSCVector operator* (double) const
 Scale a vector.
 
RefSCMatrix outer_product (const RefSCVector &v) const
 Return the outer product between this and v.
 
RefSymmSCMatrix symmetric_outer_product () const
 The outer product of this with itself is a symmetric matrix.
 
void set_element (int i, double val) const
 
void accumulate_element (int i, double val) const
 
double get_element (int) const
 
int n () const
 
RefSCDimension dim () const
 
Ref< SCMatrixKitkit () const
 
RefSCVector clone () const
 
RefSCVector copy () const
 
double maxabs () const
 
double scalar_product (const RefSCVector &) const
 
double dot (const RefSCVector &) const
 
void normalize () const
 
void randomize () const
 
void assign (const RefSCVector &v) const
 
void assign (double val) const
 
void assign (const double *v) const
 
void convert (double *) const
 
void scale (double val) const
 
void accumulate (const RefSCVector &v) const
 
void accumulate_product (const RefSymmSCMatrix &, const RefSCVector &)
 
void accumulate_product (const RefSCMatrix &, const RefSCVector &)
 
void element_op (const Ref< SCElementOp > &op) const
 
void element_op (const Ref< SCElementOp2 > &, const RefSCVector &) const
 
void element_op (const Ref< SCElementOp3 > &, const RefSCVector &, const RefSCVector &) const
 
void print (std::ostream &out) const
 
void print (const char *title=0, std::ostream &out=ExEnv::out0(), int precision=10) const
 
void save (StateOut &)
 
void restore (StateIn &)
 Restores the matrix from StateIn object. The vector must have been initialized already.
 
- Public Member Functions inherited from sc::Ref< SCVector >
 Ref ()
 Create a reference to a null object.
 
 Ref (SCVector *a)
 Create a reference to the object a.
 
 Ref (const Ref< SCVector > &a)
 Create a reference to the object referred to by a.
 
 Ref (const Ref< A > &a)
 Create a reference to the object referred to by a.
 
 ~Ref ()
 Create a reference to the object a. More...
 
SCVectoroperator-> () const
 Returns the reference counted object. More...
 
SCVectorpointer () const
 Returns a pointer the reference counted object.
 
RefCountparentpointer () const
 Implements the parentpointer pure virtual in the base class.
 
 operator SCVector * () const
 
SCVectoroperator* () const
 Returns a C++ reference to the reference counted object. More...
 
bool null () const
 Return true if this is a reference to a null object. More...
 
bool operator! () const
 
int operator== (const Ref< A > &a) const
 Ordering and equivalence operators are determined by the identifier if both pointers are not null. More...
 
int operator>= (const Ref< A > &a) const
 
int operator<= (const Ref< A > &a) const
 
int operator> (const Ref< A > &a) const
 
int operator< (const Ref< A > &a) const
 
int operator!= (const Ref< A > &a) const
 
int compare (const Ref< SCVector > &a) const
 Compare two objects returning -1, 0, or 1. More...
 
void clear ()
 Refer to the null object.
 
Ref< SCVector > & operator= (const Ref< SCVector > &c)
 Assignment to c.
 
Ref< SCVector > & operator= (const Ref< A > &c)
 Assignment to c.
 
Ref< SCVector > & operator= (SCVector *cr)
 Assignment to cr.
 
Ref< SCVector > & operator<< (const RefBase &a)
 Assignment to the object that a references using dynamic_cast.
 
Ref< SCVector > & operator<< (RefCount *a)
 Assigns to the given base class pointer using dynamic_cast. More...
 
void assign_pointer (SCVector *cr)
 Assignment to cr.
 
void check_pointer () const
 Check the validity of the pointer.
 
void ref_info (std::ostream &os) const
 Print information about the reference to os.
 
void warn (const char *s) const
 Print a warning concerning the reference.
 
bool nonnull () const
 Return !null().
 
- Public Member Functions inherited from sc::RefBase
void require_nonnull () const
 Requires that a nonnull reference is held. More...
 

Additional Inherited Members

- Public Types inherited from sc::Ref< SCVector >
typedef SCVector element_type
 
- Protected Member Functions inherited from sc::RefBase
void warn (const char *msg) const
 Print a warning message.
 
void warn_ref_to_stack () const
 Called when stack data is referenced.
 
void warn_skip_stack_delete () const
 Called when the deletion of stack data is skipped.
 
void warn_bad_ref_count () const
 Called when the reference count is corrupted.
 
void ref_info (RefCount *p, std::ostream &os) const
 Print information about the reference.
 
void ref_info (std::ostream &os) const
 
void check_pointer () const
 
void reference (RefCount *)
 
int dereference (RefCount *)
 

Detailed Description

The RefSCVector class is a smart pointer to an SCVector specialization.

Constructor & Destructor Documentation

◆ RefSCVector() [1/2]

sc::RefSCVector::RefSCVector ( )

Initializes the vector pointer to 0.

The reference must be initialized before it is used.

◆ RefSCVector() [2/2]

sc::RefSCVector::RefSCVector ( const RefSCDimension dim,
const Ref< SCMatrixKit > &   
)

Create a vector with dimension dim.

The data values are undefined.


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

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