HLIBpro  3.0
TACA< T_value > Class Template Reference

Defines interface for all ACA algorithms and implements classical ACA. More...

#include <TLowRankApx.hh>

Inheritance diagram for TACA< T_value >:
TLowRankApx< T_value > TACAFull< T_value > TACAPlus< T_value >

Public Member Functions

virtual std::unique_ptr< TMatrix< value_t > > build (const TBlockCluster *cl, const TTruncAcc &acc) const
 
virtual std::unique_ptr< TMatrix< value_t > > build (const TBlockIndexSet &block_is, const TTruncAcc &acc) const
 
virtual bool has_statistics () const
 indicate if algorithm provides statistics
 

Detailed Description

template<typename T_value>
class Hpro::TACA< T_value >

     Adaptive cross approximation (ACA) is a heuristic for computing a
     low rank approximation of a given dense matrix by successively
     removing specific pairs of rows and columns (crosses) from the
     matrix until the rest is below some threshold (defined by block-wise
     accuracy).

     Due to the algorithm, only the matrix coefficients in form of a
     TCoeffFn are needed, permitting the straightforward adaption of existing 
     implementations for the construction of H-matrices.

     The costs are linear in the dimension of the block and quadratic in the rank. 

Member Function Documentation

◆ build() [1/2]

virtual std::unique_ptr< TMatrix< value_t > > build ( const TBlockCluster cl,
const TTruncAcc acc 
) const
virtual

build low rank matrix for block cluster bct with rank defined by accuracy acc

Reimplemented from TLowRankApx< T_value >.

◆ build() [2/2]

virtual std::unique_ptr< TMatrix< value_t > > build ( const TBlockIndexSet block_is,
const TTruncAcc acc 
) const
virtual

build low rank matrix for block index set block_is with rank defined by accuracy acc

Implements TLowRankApx< T_value >.