HLIBpro  2.8.1
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

Reimplemented from 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

Implements TLowRankApx.