class HCL_LinearOpNormal_d : public HCL_LinearOpAdj_d

HCL_LinearOpNormal_d is the base class for all linear operators with adjoint and normal operators

Inheritance:


Public Methods

virtual void AdjImage ( const HCL_Vector_d & y, HCL_Vector_d & x )
AdjImage computes the action of the adjoint on y, giving x.
virtual HCL_VectorSpace_d& Domain ()
Domain space access
virtual void Image ( const HCL_Vector_d & x, HCL_Vector_d & y )
Image computes the action of the operator on x, giving y.
virtual void NormalImage ( const HCL_Vector_d & x, HCL_Vector_d & z )
NormalImage computes the action of the normal on x, giving z.
virtual HCL_VectorSpace_d& Range ()
Range space access
int TestNormal ( int display = 1, double tol = 100 )
TestNormal tests that the normal operator N is really defined by N = A'A
virtual ostream& Write ( ostream & str )
Debugging information

Inherited from HCL_LinearOpAdj_d:

Public Methods

int TestAdj(int Display = 1, double tol = 1000 )

Inherited from HCL_LinearOp_d:


Inherited from HCL_Base:

Public Methods

int Count()
void DecCount()
void IncCount()

Private Fields

int ReferenceCount

Documentation

HCL_LinearOpNormal_d is the base class for all linear operators with adjoint and normal operators. 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 and of the normal operator.

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 normal operator is simply the operator followed by its adjoint: L'L. One could always compute the action of the normal operator by first computing the action of the operator, and then computing the action of the adjoint on the result. The reason for providing a separate method for the action of the normal operator is that, for certain operators, it is more efficient to compute the normal operator directly.

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.
virtual HCL_VectorSpace_d& Domain()
Domain space access. Returns a reference to the domain of the operator, which is a HCL_VectorSpace_d.

virtual HCL_VectorSpace_d& Range()
Range space access. Returns a reference to the range of the operator, which is a HCL_VectorSpace_d.

virtual void Image( const HCL_Vector_d & x, HCL_Vector_d & y )
Image computes the action of the operator on x, giving y.

virtual void AdjImage( const HCL_Vector_d & y, HCL_Vector_d & x )
AdjImage computes the action of the adjoint on y, giving x.

virtual void NormalImage( const HCL_Vector_d & x, HCL_Vector_d & z )
NormalImage computes the action of the normal on x, giving z.

int TestNormal( int display = 1, double tol = 100 )
TestNormal tests that the normal operator N is really defined by N = A'A. The return value is 1 if an error is detected, zero otherwise. The first input is a display flag; zero means no display, 1 means display a message only if there is an error, and 2 means displays the results of the test, whether there is an error or not. The second input sets the tolerance for the floating-point tests; an error is reported if two results which ought to be equal differ by a relative amount greater than tol times machine epsilon.

virtual ostream& Write( ostream & str )
Debugging information. Write should be implemented to print a description of the object that will be useful for debugging. If a complete description is lengthy, an implementor should consider just printing out a useful subset. This method will likely be used to send information to the screen when a error condition is encountered.


Direct child classes:
HCL_ZeroLinearOp_d
HCL_ScaleLinearOp_d
HCL_DiagScaleLinearOp_d
HCL_LinCombLinearOpNormal_d
HCL_CompLinearOpNormal_d

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de