HLIBpro
2.0
|
Baseclass for representing the inverse of factorised matrices. More...
#include <TLUInvMatrix.hh>
Public Member Functions | |
TFacInvMatrix (const TMatrix *afac_matrix, const eval_type_t aeval_type=CFG::Arith::eval_type, const bool external_memory=true) | |
TFacInvMatrix (const TScalarVector *D1, const TMatrix *afac_matrix, const TScalarVector *D2, const eval_type_t aeval_type=CFG::Arith::eval_type, const bool external_memory=true) | |
virtual | ~TFacInvMatrix () |
dtor | |
const TMatrix * | matrix () const |
access factorised matrix | |
bool | has_scaling () const |
return true if diagonal scaling is used | |
const TScalarVector & | scaling_left () const |
return left scaling matrix | |
const TScalarVector & | scaling_right () const |
return right scaling matrix | |
eval_type_t | eval_type () const |
return evaluation type (pointwise/blockwise) | |
bool | is_complex () const |
return true, if field type is complex | |
bool | is_self_adjoint () const |
return true, of operator is self adjoint | |
virtual void | apply (const TVector *x, TVector *y, const matop_t op) const |
virtual void | apply_add (const real alpha, const TVector *x, TVector *y, const matop_t op) const |
virtual TVector * | domain_vector () const |
return vector in domain space | |
virtual TVector * | range_vector () const |
return vector in range space | |
TFacInvMatrix and the derived classes represent operators based on factorised matrices providing the ability to evaluate the inverse of the corresponding matrix (in factorised form), e.g. for the inverse is applied.
Optionally, diagonal scalings from left and right may have been applied before the factorisation and now taken into account in the evaluation.
TFacInvMatrix | ( | const TMatrix * | afac_matrix, |
const eval_type_t | aeval_type = CFG::Arith::eval_type , |
||
const bool | external_memory = true |
||
) |
construct inverse operator with factorised matrix afac_matrix (no diagonal scaling applied)
TFacInvMatrix | ( | const TScalarVector * | D1, |
const TMatrix * | afac_matrix, | ||
const TScalarVector * | D2, | ||
const eval_type_t | aeval_type = CFG::Arith::eval_type , |
||
const bool | external_memory = true |
||
) |
construct inverse operator with factorised matrix afac_matrix and additional row and column scaling factors D1 and D2, e.g. A = D1·Ã·D2, with à = afac_matrix
mapping function of linear operator A, e.g. y ≔ A(x). Depending on op, either A, A^T or A^H is applied.
Implements TLinearOperator.
|
virtual |
mapping function with update: y ≔ y + α A( x ). Depending on op, either A, A^T or A^H is applied.
Implements TLinearOperator.