# sc::SCVector Class Reference

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

`#include <abstract.h>`

Inheritance diagram for sc::SCVector:

List of all members.

## 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< SCMatrixKit > | kit () const
| Return the SCMatrixKit used to create this object.
virtual SCVector * | copy ()
| Return a vector with the same dimension and same elements.
virtual SCVector * | clone ()
| 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.
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)
virtual void | convert (double *v) const
| Assign v[i] to element i for all i.
virtual void | convert (SCVector *)
| Convert an SCVector of a different specialization to this specialization and possibly accumulate the data.
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< 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 vector.
virtual Ref< SCMatrixSubblockIter > | all_blocks (SCMatrixSubblockIter::Access)=0
| Returns iterators for the all blocks used in this vector.

## Protected Attributes

RefSCDimension | d
Ref< SCMatrixKit > | kit_

## Detailed Description

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

## Member Function Documentation

void sc::SCVector::assign | ( | SCVector * | v | ) | `[inline]`

Make this have the same elements as v.

The dimensions must match.

virtual void sc::SCVector::convert | ( | SCVector * |  | ) | `[virtual]`

Convert an SCVector of a different specialization to this specialization and possibly accumulate the data.

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.

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

- abstract.h