HLIBpro
2.1
|
Implements coarsening, e.g. agglomeration of blocked matrices into dense or low-rank matrices if the later use less memory.
#include <TCoarsen.hh>
Public Member Functions | |
TCoarsen (const bool aallow_dense=true, const bool arecompress_lr=false, const size_t amax_block_size=50, const size_t amax_dense_size=500) | |
constructs coarsening object | |
virtual | ~TCoarsen () |
destructor | |
TCoarsen & | allow_dense (const bool b) |
set dense conversion mode, e.g. low-rank to dense or block to dense | |
TCoarsen & | recompress_lr (const bool b) |
set recompression of low-rank blocks | |
TCoarsen & | only_offdiag_lr (const bool b) |
turn on/off low-rank compression of diagonal blocks | |
TCoarsen & | max_block_size (const size_t n) |
set maximal size of block-matrices, still worth to try coarsening | |
TCoarsen & | max_dense_size (const size_t n) |
set maximal size of dense matrices, still worth to try coarsening | |
virtual TMatrix * | rec_coarsen (TMatrix *A, const TTruncAcc &acc) const |
virtual TMatrix * | coarsen (TMatrix *A, const TTruncAcc &acc) const |
Protected Member Functions | |
size_t | byte_size (const TMatrix *A) const |
return "corrected" bytesizes, e.g. in symmetric case, of matrices for internal use | |
coarsen matrix A without recursion, i.e. no coarsening of subblocks.
A | matrix to coarsen |
acc | accuracy to maintain during coarsening |