HLIBpro  2.2
Public Member Functions | List of all members
TFacInvMatrix Class Referenceabstract

Baseclass for representing the inverse of factorised matrices. More...

#include <TFacInvMatrix.hh>

Inheritance diagram for TFacInvMatrix:
TLinearOperator TTypeInfo TLDLInvMatrix TLDUInvMatrix TLLInvMatrix TLUInvMatrix

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 TMatrixmatrix () const
 access factorised matrix
 
bool has_scaling () const
 return true if diagonal scaling is used
 
const TScalarVectorscaling_left () const
 return left scaling matrix
 
const TScalarVectorscaling_right () const
 return right scaling matrix
 
eval_type_t eval_type () const
 return evaluation type (pointwise/blockwise)
 
const TMatrixfac_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 TVectordomain_vector () const
 return vector in domain space
 
virtual TVectorrange_vector () const
 return vector in range space
 
virtual typeid_t type () const
 return type ID of matrix
 
virtual bool is_type (const typeid_t t) const
 return true if local matrix is of type t
 
- Public Member Functions inherited from TTypeInfo
virtual std::string typestr () const
 return string representation of type
 

Detailed Description

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 $ A = LU $ the inverse $ (LU)^{-1} $ is applied.

Optionally, diagonal scalings from left and right may have been applied before the factorisation and now taken into account in the evaluation.

Constructor & Destructor Documentation

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

Member Function Documentation

virtual void apply ( const TVector x,
TVector y,
const matop_t  op 
) const
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.

virtual void apply_add ( const real  alpha,
const TVector x,
TVector y,
const matop_t  op 
) const
virtual

mapping function with update: yy + α A( x ). Depending on op, either A, A^T or A^H is applied.

Implements TLinearOperator.