|
HLIBpro
2.5.1
|
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 | |
| 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)