class HCL_lmbfgsOp_d : public HCL_LinearOpAdj_d

HCL_lmbfgsOp_d implements the limited memory BFGS approximation to the inverse Hessian of a twice-differentiable function

Inheritance:


Public Methods

HCL_VectorSpace_d& Domain ()
Domain space access.
HCL_VectorSpace_d& Range ()
Range space access.

Public

Constructors and destructor
HCL_lmbfgsOp_d ()
Default constructor---disabled.
HCL_lmbfgsOp_d ( const HCL_lmbfgsOp_d & H )
Copy constructor---disabled.
HCL_lmbfgsOp_d ( HCL_ScaleLinearOp_d * h0, int maxnum, HCL_LinearOp_d * Pin = NULL, HCL_LinearSolver_d * ls = NULL )
Usual constructor
virtual ~HCL_lmbfgsOp_d ()
Destructor.
I/O
virtual ostream& Write ( ostream & str )
Write prints out some useful information about the object.
Image methods
virtual void Image ( const HCL_Vector_d & x, HCL_Vector_d & y )
Image computes the image of the operator on x, giving y.
virtual void AdjImage ( const HCL_Vector_d & y, HCL_Vector_d & x )
AdjImage computes the image of the adjoint on y, giving x.
Update methods
void Update ( HCL_Vector_d & s, HCL_Vector_d & y )
This version of Update requires the step $s$ in $x$ and the change $y$ in the gradient
void Update ( HCL_Vector_d & x, HCL_Vector_d & xnext, HCL_Vector_d & g, HCL_Vector_d & gnext )
This version of Update requires the current and next $x$ and the current and next gradient
void Reset ()
Reset sets the operator to the initial inverse Hessian approximation.

Inherited from HCL_LinearOpAdj_d:

Public Methods

virtual void AdjImage( const HCL_Vector_d & y, HCL_Vector_d & x )
virtual void Image( const HCL_Vector_d & x, HCL_Vector_d & y )
int TestAdj(int Display = 1, double tol = 1000 )
virtual ostream& Write( ostream & str )

Inherited from HCL_LinearOp_d:


Inherited from HCL_Base:

Public Methods

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

Private Fields

int ReferenceCount

Documentation

HCL_lmbfgsOp_d implements the limited memory BFGS approximation to the inverse Hessian of a twice-differentiable function. The algorithm is found in Byrd, Nocedal, and Schnabel, 1994.
Constructors and destructor

HCL_lmbfgsOp_d()
Default constructor---disabled.

HCL_lmbfgsOp_d( const HCL_lmbfgsOp_d & H )
Copy constructor---disabled.

HCL_lmbfgsOp_d( HCL_ScaleLinearOp_d * h0, int maxnum, HCL_LinearOp_d * Pin = NULL, HCL_LinearSolver_d * ls = NULL )
Usual constructor. Needs a multiple of the identity to use for the initial inverse Hessian approximation, the maximum number of updates, and, optionally, an operator to change the inner product.

virtual ~HCL_lmbfgsOp_d()
Destructor.

HCL_VectorSpace_d& Domain()
Domain space access.

HCL_VectorSpace_d& Range()
Range space access.

Update methods

void Update( HCL_Vector_d & s, HCL_Vector_d & y )
This version of Update requires the step $s$ in $x$ and the change $y$ in the gradient

void Update( HCL_Vector_d & x, HCL_Vector_d & xnext, HCL_Vector_d & g, HCL_Vector_d & gnext )
This version of Update requires the current and next $x$ and the current and next gradient

void Reset()
Reset sets the operator to the initial inverse Hessian approximation.

Image methods

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

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

I/O

virtual ostream& Write( ostream & str )
Write prints out some useful information about the object.


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