HLIBpro
2.7
|
Computes LDU factorisation \( A = LDU \). 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< TFacMatrix > |
auto | inv_matrix (TMatrix *A) const -> std::unique_ptr< TFacInvMatrix > |
void | split (const TMatrix *A, TMatrix *&L, TMatrix *&D, TMatrix *&U) 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 \(A = LDU\) of a matrix \(A\) with lower, unit triangular matrix \(L\), upper triangular matrix \(U\) and diagonal matrix \(D\).
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< TFacMatrix > |
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< TFacInvMatrix > |
return suitable inverse representation of factors L, D and U
A | LDU factor to be represented |
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 |