HCL_LinearOpAdj_d is the base class for all linear operators with adjoints
![]() | AdjImage ( const HCL_Vector_d & y, HCL_Vector_d & x ) AdjImage computes the action of the adjoint on y, giving x. |
![]() | Domain () Domain space access |
![]() | Image ( const HCL_Vector_d & x, HCL_Vector_d & y ) Image computes the action of the operator on x, giving y. |
![]() | Range () Range space access |
![]() | TestAdj (int Display = 1, double tol = 1000 ) TestAdj tests that the operator and its adjoint satisfy the "adjointness" relationship |
![]() | Write ( ostream & str ) Debugging information |
HCL_LinearOpAdj_d is the base class for all linear operators with adjoints. This class represents a linear operator mapping one vector space to another; code must be provided to implement the action of the Hilbert space adjoint. If L is a linear operator with domain X and range Y, then the adjoint L' is the linear operator with domain Y and range X defined by<Lx,y> = <x,L'y> for all x in X and y in Y.In this equation, the first inner product is the one defined on the range space Y, and the second inner product is the one defined on the domain space X.The primary class methods are:
Note that this class makes no assumption about the representation of the operator. Examples include operators defined by dense or sparse matrices and solution operators of (linear) PDEs defined by simulations.
- Domain Returns a reference to the domain of the operator. This is used primarily for error-checking.
- Range Returns a reference to the range of the operator. This is used primarily for error-checking.
- Image Computes the action of the operator on a vector. Here is an example illustrating the use of Domain, Range, and Image:
void fcn( HCL_LinearOp_d & L,HCL_Vector_d & x,HCL_Vector_d & y ) { if( x.Space() != L.Domain() || y.Space() != L.Range() ) // Error condition . . . L.Image( x,y ); // y <-- Lx . . . }- AdjImage Computes the action of the adjoint operator on a vector:
L.AdjImage( u,w); // w <-- L'uOccasionally one wishes to convert a linear operator with adjoint into the adjoint operator. There is a tool class, HCL_Adjoint_d, which accomplishes this.
virtual HCL_VectorSpace_d& Range()
virtual void Image( const HCL_Vector_d & x, HCL_Vector_d & y )
virtual void AdjImage( const HCL_Vector_d & y, HCL_Vector_d & x )
int TestAdj(int Display = 1, double tol = 1000 )
virtual ostream& Write( ostream & str )
this page has been generated automatically by doc++
(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de