class HCL_SymMatOp_d : public HCL_LinearOp_d

HCL_SymMatOp_d makes a symmetric matrix into a linear operator in the HCL sense

Inheritance:


Public Fields

GenSymMatrix_d* Matrix
Matrix is a pointer to the underlying GenSymMatrix_d, which is the matrix representing the linear operator

Public Methods

HCL_SymMatOp_d ( GenSymMatrix_d * AA, int flag, HCL_VectorSpace_d * d )
Usual constructor; requires the matrix and the domain
HCL_SymMatOp_d ( GenSymMatrix_d * AA, int flag, HCL_VectorSpace_d * d, HCL_VectorSpace_d * r )
Usual constructor; requires the matrix, the domain, and the range
virtual HCL_VectorSpace_d& Domain () const
Domain space access
virtual HCL_VectorSpace_d& Range () const
Range space access
virtual void Image ( const HCL_Vector_d & x, HCL_Vector_d & y ) const
Image computes the action of the operator on x, giving y.
virtual void AdjImage ( const HCL_Vector_d & y, HCL_Vector_d & x ) const
AdjImage computes the action of the adjoint on y, giving x.
virtual void InvImage (const HCL_Vector_d & y, HCL_Vector_d & x) const
InvImage computes the action of the inverse on y, giving x.
virtual void InvAdjImage (const HCL_Vector_d & x, HCL_Vector_d & y) const
InvAdjImage computes the action of the inverse adjoint on x, giving y
HCL_UpperTriangularMatOp_d* Cholesky () const
Cholesky creates the linear operator which is represented by the (upper triangular) Cholesky factor of the underlying matrix
virtual ostream& Write ( ostream & str ) const
Debugging information.

Inherited from HCL_LinearOp_d:

Public Methods

int CheckAdj(int Display = 1, double tol = 1000 )
virtual void NormalImage( const HCL_Vector_d & x, HCL_Vector_d & z ) const
int CheckNormal( int display = 1, double tol = 100 )
virtual void ImageAdd(const HCL_Vector_d & x, const HCL_Vector_d & z, HCL_Vector_d & y, double a=1.0, double b=1.0) const
virtual void AdjImageAdd(const HCL_Vector_d & x, const HCL_Vector_d & z, HCL_Vector_d & y, double a=1.0, double b=1.0) const
virtual void NormalImageAdd(const HCL_Vector_d & x, const HCL_Vector_d & z, HCL_Vector_d & y, double a=1.0, double b=1.0) const
virtual void InvImageAdd(const HCL_Vector_d & x, const HCL_Vector_d & z, HCL_Vector_d & y, double a=1.0, double b=1.0) const
virtual void InvAdjImageAdd(const HCL_Vector_d & x, const HCL_Vector_d & z, HCL_Vector_d & y, double a=1.0, double b=1.0) const
virtual void ImageAdd(const HCL_Vector_d & x, HCL_Vector_d & y, double a=1.0, double b=1.0) const
virtual void AdjImageAdd(const HCL_Vector_d & x, HCL_Vector_d & y, double a=1.0, double b=1.0) const
virtual void NormalImageAdd(const HCL_Vector_d & x, HCL_Vector_d & y, double a=1.0, double b=1.0) const
virtual void InvImageAdd(const HCL_Vector_d & x, HCL_Vector_d & y, double a=1.0, double b=1.0) const
virtual void InvAdjImageAdd(const HCL_Vector_d & x, HCL_Vector_d & y, double a=1.0, double b=1.0) const

Inherited from HCL_Base:

Public Methods

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

Documentation

HCL_SymMatOp_d makes a symmetric matrix into a linear operator in the HCL sense. Note that the matrix is an instance of the class GenSymMatrix_d, and it must be provided to the constructor.

The methods of this class are the methods of the base class HCL_LinearOp_d, and the documentation for the base class can be consulted for more information.

GenSymMatrix_d* Matrix
Matrix is a pointer to the underlying GenSymMatrix_d, which is the matrix representing the linear operator. The matrix is public so that its methods are available. For instance, a GenSymMatrix_d knows how to compute its eigenvalues and eigenvectors through the method eig.

HCL_SymMatOp_d( GenSymMatrix_d * AA, int flag, HCL_VectorSpace_d * d )
Usual constructor; requires the matrix and the domain. (The range is assumed to equal the domain.) Also, a flag must be passed to indicate whether the matrix is to be deleted upon destruction of the operator (nonzero = delete, zero = no delete).

HCL_SymMatOp_d( GenSymMatrix_d * AA, int flag, HCL_VectorSpace_d * d, HCL_VectorSpace_d * r )
Usual constructor; requires the matrix, the domain, and the range. Note that the dimensions of the domain and range must agree. Also, a flag must be passed to indicate whether the matrix is to be deleted upon destruction of the operator (nonzero = delete, zero = no delete).

virtual HCL_VectorSpace_d& Domain() const
Domain space access. Returns a reference to the domain of the operator, which is an HCL_VectorSpace_d.

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

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

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

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

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

HCL_UpperTriangularMatOp_d* Cholesky() const
Cholesky creates the linear operator which is represented by the (upper triangular) Cholesky factor of the underlying matrix. The return value is NULL if the matrix is not positive definite and therefore does not have a Cholesky factorization.

virtual ostream& Write( ostream & str ) const
Debugging information.


This class has no child classes.

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