HLIBpro
2.0
|
computes LDL factorisation or More...
#include <mat_fac.hh>
Public Member Functions | |
void | factorise (TMatrix *A, const TTruncAcc &acc) const |
TLinearOperator * | eval_matrix (TMatrix *A, const matform_t matform) const |
TLinearOperator * | inv_matrix (TMatrix *A, const matform_t matform) const |
void | split (const TMatrix *A, TMatrix *&L, TMatrix *&D, const eval_type_t eval_type) const |
size_t | pm_steps (const TMatrix *A) const |
return number of factorisation steps for A for progress meter | |
Public Attributes | |
__pad0__: _options( opts ) {} ~TLDL () {} void set_options ( const fac_options_t opts ) { _options = opts | |
standard constructor with optional LDL settings | |
This class computes the LDL factorisation ( ) of a symmetric (hermitian) matrix with lower, unit triangular matrix and diagonal matrix .
The factorisation may be either point wise, i.e. a real LU factorisation, or block wise in which case, dense diagonal matrix blocks are inverted.
Support for multiple threads is available, although the expectable speedup is limited, e.g. best suited for at most 4 threads.
TLinearOperator* eval_matrix | ( | TMatrix * | A, |
const matform_t | matform | ||
) | const |
return suitable representation for evaluating factors L and U
A | LDL factors to be represented |
matform | format of original, non-factorised matrix |
compute LDL factorisation of given matrix
A | on input matrix to factorise; on output factors L and D |
acc | accuracy of factorisation |
TLinearOperator* inv_matrix | ( | TMatrix * | A, |
const matform_t | matform | ||
) | const |
return suitable inverse representation of factors L and U
A | LDL factors to be represented |
matform | format of original, non-factorised matrix |
split given matrix A into individual factors L and D
A | joined LDL factors |
L | matrix pointer to store factor L |
D | matrix pointer to store factor D |
eval_type | determines block-wise or point-wise evaluation |