HLIBpro 3.1
|
Baseclass for representing the inverse of factorised matrices. More...
#include <TFacInvMatrix.hh>
Public Member Functions | |
template<typename T_mat > | |
TFacInvMatrix (T_mat &&afac_matrix, const eval_type_t aeval_type=CFG::Arith::eval_type, const storage_type_t astorage_type=CFG::Arith::storage_type) | |
template<typename T_mat > | |
TFacInvMatrix (T_mat &&afac_matrix, const TTruncAcc &aacc, const eval_type_t aeval_type=CFG::Arith::eval_type, const storage_type_t astorage_type=CFG::Arith::storage_type) | |
template<typename T_mat > | |
TFacInvMatrix (const TScalarVector< value_t > *D1, T_mat &&afac_matrix, const TScalarVector< value_t > *D2, const eval_type_t aeval_type=CFG::Arith::eval_type, const storage_type_t astorage_type=CFG::Arith::storage_type) | |
virtual | ~TFacInvMatrix () |
dtor | |
const TMatrix< value_t > * | matrix () const |
access factorised matrix | |
bool | has_scaling () const |
return true if diagonal scaling is used | |
const TScalarVector< value_t > & | scaling_left () const |
return left scaling matrix | |
const TScalarVector< value_t > & | scaling_right () const |
return right scaling matrix | |
eval_type_t | eval_type () const |
return evaluation type (pointwise/blockwise) | |
storage_type_t | storage_type () const |
return evaluation type (pointwise/blockwise) | |
const TTruncAcc | accuracy () const |
return internal accuracy for matrix arithmetic | |
void | set_accuracy (const TTruncAcc &aacc) |
set internal accuracy for matrix arithmetic | |
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< value_t > *x, TVector< value_t > *y, const matop_t op=apply_normal) const |
virtual void | apply_add (const value_t alpha, const TVector< value_t > *x, TVector< value_t > *y, const matop_t op=apply_normal) const |
virtual void | apply_add (const value_t alpha, const BLAS::Vector< value_t > &x, BLAS::Vector< value_t > &y, const matop_t op=apply_normal) const |
virtual size_t | domain_dim () const |
return dimension of domain | |
virtual size_t | range_dim () const |
return dimension of range | |
virtual auto | domain_vector () const -> std::unique_ptr< TVector< value_t > > |
return vector in domain space | |
virtual auto | range_vector () const -> std::unique_ptr< TVector< value_t > > |
return vector in range space | |
![]() | |
virtual bool | is_real () const |
return true, if field type is real valued | |
![]() | |
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 \f$ A = LU \f$ the inverse \f$ (LU)^{-1} \f$ is applied. Optionally, diagonal scalings from left and right may have been applied before the factorisation and now taken into account in the evaluation.
|
inline |
construct inverse operator with factorised matrix afac_matrix (no diagonal scaling applied)
|
inline |
construct inverse operator with factorised matrix afac_matrix with accuracy for matrix arithmetic (without diagonal scaling)
|
inline |
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
|
virtual |
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< T_value >.
|
virtual |
same as above but only the dimension of the vector spaces is tested, not the corresponding index sets
Implements TLinearOperator< T_value >.