HLIBpro
2.4
|
Computes LDU factorisation . More...
#include <mat_fac.hh>
Public Member Functions | |
void | factorise (TMatrix *A, const TTruncAcc &acc) const |
auto | eval_matrix (TMatrix *A) const -> std::unique_ptr< TLinearOperator > |
auto | inv_matrix (TMatrix *A) const -> std::unique_ptr< TLinearOperator > |
void | split (const TMatrix *A, TMatrix *&L, TMatrix *&D, TMatrix *&U, 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 ) {} ~TLDU () {} void set_options ( const fac_options_t opts ) { _options = opts | |
standard constructor with optional LDU settings | |
This class computes the LU factorisation of a matrix with lower, unit triangular matrix , upper triangular matrix and diagonal matrix .
The factorisation may be either point wise, i.e. a real LDU factorisation, or block wise in which case, dense diagonal matrix blocks are inverted.
Support for multiple threads is not available.
auto eval_matrix | ( | TMatrix * | A | ) | const -> std::unique_ptr< TLinearOperator > |
return suitable representation for evaluating factors L, D and U
A | LDU factors to be represented |
compute LDU factorisation of given matrix
A | on input matrix to factorise; on output factors L and U |
acc | accuracy of factorisation |
auto inv_matrix | ( | TMatrix * | A | ) | const -> std::unique_ptr< TLinearOperator > |
return suitable inverse representation of factors L, D and U
A | LDU factor to be represented |
void split | ( | const TMatrix * | A, |
TMatrix *& | L, | ||
TMatrix *& | D, | ||
TMatrix *& | U, | ||
const eval_type_t | eval_type | ||
) | const |
split given matrix A into individual factors L, D and U
A | joined LDU factors |
L | matrix pointer to store factor L |
D | matrix pointer to store factor D |
U | matrix pointer to store factor U |
eval_type | determines block-wise or point-wise evaluation |