HLIBpro
2.5.1
|
Computes LU 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< TFacMatrix > |
auto | inv_matrix (TMatrix *A) const -> std::unique_ptr< TFacInvMatrix > |
void | split (const TMatrix *A, TMatrix *&L, TMatrix *&U) const |
std::pair< TMatrix *, TMatrix *> | split (TMatrix *A) const |
size_t | pm_steps (const TMatrix *A) const |
return number of factorisation steps for A for progress meter | |
Public Attributes | |
__pad0__: _options( opts ) {} ~TLU () {} void set_options ( const fac_options_t opts ) { _options = opts | |
standard constructor with optional LU settings | |
This class computes the LU factorisation of a matrix with lower, unit triangular matrix and upper triangular 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.
auto eval_matrix | ( | TMatrix * | A | ) | const -> std::unique_ptr< TFacMatrix > |
return suitable representation for evaluating factors L and U
A | LU factors to be represented |
compute LU 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 and U
A | LU factor to be represented |
split given matrix A into individual factors L and U
A | joined LU factors |
L | matrix pointer to store factor L |
U | matrix pointer to store factor U |
eval_type | determines block-wise or point-wise evaluation |