HLIBpro
2.7
|
class representing a nested cluster basis
#include <TClusterBasis.hh>
Public Types | |
using | value_t = T |
value type of cluster basis | |
using | son_iter_t = typename std::vector< TClusterBasis *>::iterator |
iterator for sons | |
Public Member Functions | |
TClusterBasis (const TIndexSet &is, const BLAS::Matrix< T > &V) | |
TClusterBasis (const TIndexSet &is, const std::vector< TClusterBasis< T > * > &asons, const std::vector< BLAS::Matrix< T > > &aE) | |
TClusterBasis (const TIndexSet &is, const std::vector< TClusterBasis< T > * > &asons) | |
virtual | ~TClusterBasis () |
dtor: delete all sons | |
virtual size_t | nnodes () const |
return no of nodes | |
virtual size_t | depth () const |
return depth of tree | |
uint | rank () const |
return basis rank | |
size_t | nsons () const |
return number of sons | |
TClusterBasis * | son (const size_t i) |
return i'th son basis | |
const BLAS::Matrix< T > & | basis () const |
access to explicit local basis | |
const BLAS::Matrix< T > & | transfer_mat (const uint i) const |
access to transfer matrices | |
void | truncate (const TTruncAcc &acc) |
truncate basis as defined by accuracy acc | |
BLAS::Vector< T > | transfer_to_son (const uint i, const BLAS::Vector< T > &s) const |
transfer given data to basis of i'th son and return result | |
TUniformVector * | build_vec () const |
construct uniform vector corresponding to cluster basis | |
void | transform_forward (const BLAS::Vector< T > &v, BLAS::Vector< T > &s) const |
forward transformation: s ≔ V^H · v | |
TUniformVector * | transform_forward (const TVector *v) const |
forward transformation: return uniform vector | |
template<typename T_mat > | |
void | transform_forward (const BLAS::MatrixBase< T_mat > &M, BLAS::Matrix< T > &S) const |
block forward transformation: S ≔ V^H · M | |
void | transform_backward (const BLAS::Vector< T > &s, BLAS::Vector< T > &v) const |
backward transformation: v ≔ V · s | |
TVector * | transform_backward (const TUniformVector *v) const |
backward transformation: return transformed vector | |
template<typename T_mat > | |
void | transform_backward (const BLAS::MatrixBase< T_mat > &S, BLAS::Matrix< T > &M) const |
block backward transformation: M ≔ V · S | |
virtual auto | copy () const -> std::unique_ptr< TClusterBasis< T > > |
return copy of basis | |
virtual size_t | byte_size () const |
return size in bytes used by this object | |
virtual void | print (const uint ofs=0) const |
print basis to terminal | |
Public Member Functions inherited from TIndexSet | |
TIndexSet () noexcept | |
construct empty index set | |
TIndexSet (const size_t n) noexcept | |
construct indexset if size n | |
TIndexSet (const idx_t afirst, const idx_t alast) noexcept | |
construct indexset by first and last index | |
TIndexSet (const TIndexSet &is) noexcept | |
copy constructor | |
idx_t | first () const noexcept |
return first index in set | |
idx_t | last () const noexcept |
return last index in set | |
size_t | size () const noexcept |
return last index in set | |
void | set_first_last (const idx_t afirst, const idx_t alast) noexcept |
set indexset by first and last index | |
void | set_first_size (const idx_t afirstf, const size_t asize) noexcept |
set indexset by first and size | |
bool | is_in (const idx_t idx) const noexcept |
return true if given index is part of indexset and false otherwise | |
bool | is_sub (const TIndexSet &is) const noexcept |
return true if given indexset is subset | |
bool | is_subset_of (const TIndexSet &is) const noexcept |
return true if local indexset is subset of given indexset | |
bool | is_empty () const noexcept |
return true if indexset is empty | |
TIndexSet & | operator= (const TIndexSet &is) noexcept |
copy operator | |
bool | operator== (const TIndexSet &is) const noexcept |
equality operator | |
bool | operator!= (const TIndexSet &is) const noexcept |
inequality operator | |
bool | is_strictly_left_of (const TIndexSet &is) const noexcept |
this is strictly left of is iff ∀ i ∈ this, j ∈ is : i < j | |
bool | is_left_or_equal_to (const TIndexSet &is) const noexcept |
this is left or equal to is iff this ∖ is < is | |
bool | is_strictly_right_of (const TIndexSet &is) const noexcept |
this is strictly right of is iff ∀ i ∈ this, j ∈ is : i > j | |
bool | is_right_or_equal_to (const TIndexSet &is) const noexcept |
this is right or equal to is iff this ∖ is > is | |
std::string | to_string () const |
string output | |
size_t | byte_size () const |
return size in bytes used by this object | |
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 | |
TClusterBasis | ( | const TIndexSet & | is, |
const BLAS::Matrix< T > & | V | ||
) |
construct cluster basis corresponding to cluster cl with basis defined by V
TClusterBasis | ( | const TIndexSet & | is, |
const std::vector< TClusterBasis< T > * > & | asons, | ||
const std::vector< BLAS::Matrix< T > > & | aE | ||
) |
construct cluster basis corresponding to cluster cl with son bases asons and transfer matrices aE
TClusterBasis | ( | const TIndexSet & | is, |
const std::vector< TClusterBasis< T > * > & | asons | ||
) |
construct cluster basis corresponding to cluster cl with son bases asons (no transfer matrices)