HLIBpro  1.2
Public Member Functions | Protected Member Functions | List of all members
TUniformBlockVector Class Reference

Class for a uniform block vector, e.g. of uniform sub blocks. More...

#include <TUniformBlockVector.hh>

Inheritance diagram for TUniformBlockVector:
TUniformVector TVector TTypeInfo

Public Member Functions

 TUniformBlockVector (const TIndexSet &ais, const TClusterBasis< real > *acb, const BLAS::Vector< real > &acoeff, const std::vector< TUniformVector * > &asubvec)
 TUniformBlockVector (const TIndexSet &ais, const TClusterBasis< complex > *acb, const BLAS::Vector< complex > &acoeff, const std::vector< TUniformVector * > &asubvec)
 TUniformBlockVector (const TUniformBlockVector &v)
 copy constructor
virtual ~TUniformBlockVector ()
 destructor
virtual uint n_blocks () const
 return number of blocks
TUniformVectorblock (const uint i)
 access single vector block
const TUniformVectorblock (const uint i) const
 access single vector block
virtual real entry (const idx_t) const
 access coefficent i (real valued)
virtual const complex centry (const idx_t) const
 access coefficent i (complex valued)
virtual void fill (const real alpha)
 fill vector with constant α
virtual void fill_rand (const uint seed)
 fill vector with random numbers
virtual void scale (const real alpha)
 set this ≔ α · this
virtual void assign (const real alpha, const TVector *x)
 set this ≔ α · x
virtual real norm2 () const
 compute ‖·‖₂
virtual real norm_inf () const
 compute ‖·‖∞
virtual void axpy (const real alpha, const TVector *x)
 set this ≔ this + α · x
virtual void cfill (const complex &alpha)
 conjugate coefficients
virtual void cscale (const complex &alpha)
 set this ≔ α · this
virtual void cassign (const complex &alpha, const TVector *x)
 set this ≔ α · x
virtual complex dot (const TVector *x) const
 return inner product <this, x>
virtual void caxpy (const complex &f, const TVector *x)
 set this ≔ this + α · x
virtual typeid_t type () const
 return type of vector
virtual bool is_type (const typeid_t t) const
 return true if local object is of given type t
virtual size_t byte_size () const
 return size in bytes used by this object
virtual TVectorcopy () const
 return copy of vector
virtual TVectorcreate () const
 return object of same class
virtual TVectorrestrict_re () const
 return vector restricted to real part of coefficients
virtual TVectorrestrict_im () const
 return vector restricted to imaginary part of coefficients
virtual void read (TByteStream &s)
 read vector from stream
virtual void write (TByteStream &s) const
 write vector to stream
virtual size_t bs_size () const
 returns size of object in bytestream
virtual void sum (const TProcSet &ps)
 pointwise summation between all vectors in ps
- Public Member Functions inherited from TUniformVector
 TUniformVector (const TIndexSet &ais, const TClusterBasis< real > *acb, const BLAS::Vector< real > &acoeff)
 TUniformVector (const TIndexSet &ais, const TClusterBasis< complex > *acb, const BLAS::Vector< complex > &acoeff)
 TUniformVector (const TUniformVector &v)
 copy constructor
virtual ~TUniformVector ()
 destructor
virtual size_t size () const
 return size of vector
virtual size_t rank () const
 return rank of vector, e.g. rank of cluster basis
const TClusterBasis< real > * rbasis () const
 return basis coefficients
BLAS::Vector< real > & rcoeff ()
 return basis coefficients
virtual void set_size (const size_t n)
 set size of vector
virtual void set_cluster (const TCluster *c)
 define vector by cluster
virtual void set_is (const TIndexSet &ais)
 define vector by indexset
virtual void conjugate ()
 conjugate coefficients
- Public Member Functions inherited from TVector
 TVector (const idx_t offset=0, const bool use_complex=false)
 construct real or complex valued vector with first index offset
virtual ~TVector ()
 dtor
idx_t ofs () const
 return first index (offset)
virtual void set_ofs (const idx_t n)
 set first index (offset)
TIndexSet is () const
 return index set
bool is_complex () const
 return true if vector is complex valued
void set_complex (const bool b)
 change between real and complex valued representation
virtual void set_entry (const idx_t i, const real f)
 set i'th entry
virtual void set_centry (const idx_t i, const complex f)
 set i'th entry
TVectoroperator= (const TVector &v)
 copy operator for all vectors
virtual size_t global_byte_size () const
virtual void sum (const TProcSet &p, const uint pid, const uint nparts, TByteStream *bs=NULL)
virtual void print (const uint ofs=0) const
 print vector to stdout
- Public Member Functions inherited from TTypeInfo
virtual String typestr () const
 return string representation of type

Protected Member Functions

virtual void to_real ()
 switch to real valued representation if possible
virtual void to_complex ()
 switch to complex valued representation

Detailed Description

In contrast to a TBlockVector, a TUniformBlockVector stores only uniform sub vectors and, furthermore, also contains local data. Hence, the data of the whole vector is not stored in the leaf vectors alone, as in the case of a TBlockVector, but is distributed through the complete hierarchy of a TUniformBlockVector.

Constructor & Destructor Documentation

TUniformBlockVector ( const TIndexSet ais,
const TClusterBasis< real > *  acb,
const BLAS::Vector< real > &  acoeff,
const std::vector< TUniformVector * > &  asubvec 
)
inline

construct vector over index set ais, cluster basis acb, with coefficients acoeff and sub vectors defined in subvec

TUniformBlockVector ( const TIndexSet ais,
const TClusterBasis< complex > *  acb,
const BLAS::Vector< complex > &  acoeff,
const std::vector< TUniformVector * > &  asubvec 
)
inline

construct vector over index set ais, cluster basis acb, with coefficients acoeff and sub vectors defined in subvec

Member Function Documentation

virtual void cfill ( const complex &  alpha)
virtual

fill vector with constant α

Reimplemented from TUniformVector.