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

Detailed Description

     This class computes the LU factorisation \f$A = LDU\f$ of a matrix \f$A\f$
     with lower, unit triangular matrix \f$L\f$, upper triangular matrix \f$U\f$
     and diagonal matrix \f$D\f$.

     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

◆ eval_matrix()

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

return suitable representation for evaluating factors L, D and U

Parameters
ALDU factors to be represented

◆ factorise()

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

◆ inv_matrix()

auto inv_matrix ( TMatrix A) const -> std::unique_ptr< TFacInvMatrix >

return suitable inverse representation of factors L, D and U

Parameters
ALDU factor to be represented

◆ split()

void split ( const TMatrix A,
TMatrix *&  L,
TMatrix *&  D,
TMatrix *&  U 
) 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