HLIBpro  1.2
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TMatBuilder Class Reference

Base class for building matrices implementing basic management and parallel construction.

#include <TMatBuilder.hh>

Inheritance diagram for TMatBuilder:
TDenseMBuilder< T > TH2MatBuilder< T > TIdMatBuilder TSparseMBuilder

Public Member Functions

 TMatBuilder (const bool coarsening=CFG::Arith::coarsen_build)
void set_coarsening (const bool b)
 (de-) activate coarsening with standard accuracy
void set_coarsening (const TTruncAcc &acc)
 activate coarsening with accuracy acc
virtual TMatrixbuild (const uint nthreads, const TBlockClusterTree *bct, const TTruncAcc &acc, TProgressBar *progress=NULL) const
 build the H-matrix with block-wise accuracy defined by acc
virtual TMatrixbuild (const uint nthreads, const TBlockCluster *bc, const TTruncAcc &acc, TProgressBar *progress=NULL) const
virtual TMatrixbuild (const uint nthreads, const TBlockClusterTree *cluster, const matform_t matformat, const TTruncAcc &acc, TProgressBar *progress=NULL) const
 same as
virtual TMatrixbuild (const uint nthreads, const TBlockCluster *cluster, const matform_t matformat, const TTruncAcc &acc, TProgressBar *progress=NULL) const
 same as

Protected Member Functions

virtual TMatrixthr_build (const uint nthreads, const TBlockCluster *bc, const matform_t matformat, const TTruncAcc &acc, TProgressBar *progress) const
 threaded building process
virtual TBlockMatrixbuild_blocked (const TBlockCluster *bc) const
 build blocked matrix
virtual TMatrixbuild_leaf (const TBlockCluster *bc, const matform_t matformat, const TTruncAcc &acc) const =0
 build matrix corresponding to leaves in the block cluster tree
virtual TMatrixbuild_ghost (const TBlockCluster *bc) const =0
 build placeholder matrix for remote blocks
virtual matform_t matrix_format () const =0
 return matrix format

Protected Attributes

bool _coarsening
 if true, coarsening is applied during construction
bool _use_construct_acc
TTruncAcc _coarse_acc
 defines coarsening accuracy

Constructor & Destructor Documentation

TMatBuilder ( const bool  coarsening = CFG::Arith::coarsen_build)

construct matrix construction object with standard coarsening, e.g. same precision as in block construction

Member Function Documentation

virtual TMatrix* build ( const uint  nthreads,
const TBlockCluster bc,
const TTruncAcc acc,
TProgressBar progress = NULL 
) const
virtual

same as standard

See Also
build, but build block matrices for given block cluster without permutations etc.
virtual TMatrix* build ( const uint  nthreads,
const TBlockClusterTree cluster,
const matform_t  matformat,
const TTruncAcc acc,
TProgressBar progress = NULL 
) const
virtual
See Also
build but with user defined matrix format matformat
virtual TMatrix* build ( const uint  nthreads,
const TBlockCluster cluster,
const matform_t  matformat,
const TTruncAcc acc,
TProgressBar progress = NULL 
) const
virtual
See Also
build but with user defined matrix format matformat

Member Data Documentation

bool _use_construct_acc
protected

if true, the accuracy during coarsening is identical to the accuracy during block construction (standard accuracy)