HLIBpro 3.1
Loading...
Searching...
No Matches
TVector< T_value > Class Template Referenceabstract

Base class for all vectors defining basic interface.

#include <TVector.hh>

Inheritance diagram for TVector< T_value >:
TTypeInfo TScalarVector< value_t > TUniformVector< value_t > TBlockVector< T_value > TScalarVector< T_value > TUniformVector< T_value > TUniformBlockVector< T_value >

Public Member Functions

 TVector (const idx_t offset=0)
 construct real or complex valued vector with first index offset
 
 TVector (const TVector< value_t > &v)
 copy constructor
 
virtual ~TVector ()
 dtor
 
value type information
virtual bool is_complex () const
 return true, if field type is complex valued
 
virtual bool is_real () const
 return true, if field type is real valued
 
index set functionality
idx_t ofs () const
 return first index (offset)
 
virtual void set_ofs (const idx_t n)
 set first index (offset)
 
virtual size_t size () const =0
 return size of vector
 
TIndexSet is () const
 return index set
 
access entries
virtual value_t entry (const idx_t i) const
 return i'th entry
 
virtual void set_entry (const idx_t i, const value_t f)
 set i'th entry
 
BLAS functionality
virtual void conjugate ()
 conjugate entries
 
virtual void fill (const value_t)
 fill with constant
 
virtual void fill_rand (const uint)
 fill with random numbers
 
virtual void scale (const value_t)
 scale vector by constant factor
 
virtual void assign (const value_t, const TVector< value_t > *)
 this ≔ f · vector
 
TVector< value_t > & operator= (const TVector< value_t > &v)
 copy operator for all vectors
 
virtual value_t dot (const TVector< value_t > *) const
 return dot-product, \(<x,y> = x^H · y\), where \(x\) = this
 
virtual value_t dotu (const TVector< value_t > *) const
 return dot-product, \(<x,y> = x^T · y\), where \(x\) = this
 
virtual real_t norm2 () const
 return euclidean norm
 
virtual real_t norm_inf () const
 return infimum norm
 
virtual void axpy (const value_t, const TVector< value_t > *)
 this ≔ this + α·x
 
misc.
virtual size_t byte_size () const
 return size in bytes used by this object
 
virtual size_t global_byte_size () const
 
virtual auto copy () const -> std::unique_ptr< TVector< value_t > >=0
 return copy of vector
 
virtual void copy_to (TVector< value_t > *x) const
 assign local values to vector x
 
virtual auto create () const -> std::unique_ptr< TVector< value_t > >=0
 return object of same class
 
virtual auto restrict_re () const -> std::unique_ptr< TVector< real_t > >
 create vector restricted to real part of coefficients
 
virtual auto restrict_im () const -> std::unique_ptr< TVector< real_t > >
 create vector restricted to imaginary part of coefficients
 
virtual auto restrict_abs () const -> std::unique_ptr< TVector< real_t > >
 create vector restricted to absolute value of coefficients
 
virtual void read (TByteStream &s)
 read vector data from byte stream
 
virtual void write (TByteStream &s) const
 write vector data to byte stream
 
virtual size_t bs_size () const
 returns size of object in bytestream
 
virtual void sum (const TProcSet &p, const uint pid, const uint nparts, TByteStream *bs=NULL)
 
virtual void sum (const TProcSet &p)
 same as
 
virtual void print (const uint ofs=0) const
 print vector to stdout
 
- Public Member Functions inherited from TTypeInfo
virtual typeid_t type () const =0
 return type ID of object
 
virtual bool is_type (const typeid_t t) const
 return true if local object is of given type ID t
 
virtual std::string typestr () const
 return string representation of type
 

Member Function Documentation

◆ global_byte_size()

template<typename T_value >
virtual size_t global_byte_size ( ) const
virtual

return size in bytes used by this distributed object, i.e. of all distributed sub vectors

◆ sum() [1/2]

◆ sum() [2/2]

template<typename T_value >
virtual void sum ( const TProcSet p,
const uint  pid,
const uint  nparts,
TByteStream bs = NULL 
)
virtual

sum up nparts parallel copies (if bs != NULL it will be used)