HLIBpro  2.3.1
Public Member Functions | Public Attributes | List of all members
TLDU Class Reference

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< 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
 

Detailed Description

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.

Member Function Documentation

auto eval_matrix ( TMatrix A) const -> std::unique_ptr< TLinearOperator >

return suitable representation for evaluating factors L, D and U

Parameters
ALDU factors to be represented
void factorise ( TMatrix A,
const TTruncAcc acc 
) const

compute LDU factorisation of given matrix

Parameters
Aon input matrix to factorise; on output factors L and U
accaccuracy of factorisation
auto inv_matrix ( TMatrix A) const -> std::unique_ptr< TLinearOperator >

return suitable inverse representation of factors L, D and U

Parameters
ALDU 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

Parameters
Ajoined LDU factors
Lmatrix pointer to store factor L
Dmatrix pointer to store factor D
Umatrix pointer to store factor U
eval_typedetermines block-wise or point-wise evaluation