HLIBpro  2.6
TACA< T > Class Template Reference

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

#include <TLowRankApx.hh>

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

Public Member Functions

virtual TMatrixbuild (const TBlockCluster *cl, const TTruncAcc &acc) const
 
virtual TMatrixbuild (const TBlockIndexSet &block_is, const TTruncAcc &acc) const
 
virtual bool has_statistics () const
 indicate if algorithm provides statistics
 

Detailed Description

template<typename T>
class HLIB::TACA< T >

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 TMatrix* build ( const TBlockCluster cl,
const TTruncAcc acc 
) const
virtual

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

Implements TLowRankApx.

◆ build() [2/2]

virtual TMatrix* 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