HLIBpro
2.4
|
Baseclass for representing the inverse of factorised matrices. More...
#include <TFacInvMatrix.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) | |
const TMatrix * | fac_matrix () const |
return internal matrix object | |
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 auto | domain_vector () const -> std::unique_ptr< TVector > |
return vector in domain space | |
virtual auto | range_vector () const -> std::unique_ptr< TVector > |
return vector in range space | |
Public Member Functions inherited from TTypeInfo | |
virtual typeid_t | type () const =0 |
return type ID of object | |
virtual bool | is_type (const typeid_t t) const |
return true if local object is of given type ID t | |
virtual std::string | typestr () const |
return string representation of type | |
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.