MoochoPack::ReducedHessianSecantUpdate_Strategy Class Reference

Strategy interface for performing secant updates {abstract}. More...

#include <MoochoPack_ReducedHessianSecantUpdate_Strategy.hpp>

Inheritance diagram for MoochoPack::ReducedHessianSecantUpdate_Strategy:

Inheritance graph
[legend]
List of all members.

Public Member Functions

virtual ~ReducedHessianSecantUpdate_Strategy ()
 
virtual bool perform_update (VectorMutable *s_bfgs, VectorMutable *y_bfgs, bool first_update, std::ostream &out, EJournalOutputLevel olevel, NLPAlgo *algo, NLPAlgoState *s, MatrixSymOp *rHL_k)=0
 Perform the secant update.
virtual void print_step (std::ostream &out, const std::string &leading_str) const =0
 This function will print a description of the computations and logic used in the update.

Detailed Description

Strategy interface for performing secant updates {abstract}.

This interface is used by the class ReducedHessianSecantUpdateStd_Step to actually perform the secant updates.

Definition at line 41 of file MoochoPack_ReducedHessianSecantUpdate_Strategy.hpp.


Constructor & Destructor Documentation

virtual MoochoPack::ReducedHessianSecantUpdate_Strategy::~ReducedHessianSecantUpdate_Strategy (  )  [inline, virtual]

Definition at line 45 of file MoochoPack_ReducedHessianSecantUpdate_Strategy.hpp.


Member Function Documentation

virtual bool MoochoPack::ReducedHessianSecantUpdate_Strategy::perform_update ( VectorMutable *  s_bfgs,
VectorMutable *  y_bfgs,
bool  first_update,
std::ostream &  out,
EJournalOutputLevel  olevel,
NLPAlgo algo,
NLPAlgoState s,
MatrixSymOp *  rHL_k 
) [pure virtual]

Perform the secant update.

The function will update rHL_k so that rHL_k * s_bfgs y_bfgs. Note that this post conditions for this function do not strictly require that the secant property rHL_k * s_bfgs = y_bfgs be satisfied. This allows for more flexibility in how the update is perform.

Preconditions:

Parameters:
s_bfgs [in/work] Secant change vector on input. May be modified as modified as workspace.
y_bfgs [in/work] Secant change vector on input. May be modified as modified as workspace.
first_update [in] If true then this is the first update after rHL was initialized to identity. This is information that may be used in order to deliver a beter initial update.
out [out] Output stream journal data is written to.
olevel [in] Output level for printing to out
algo [in/out] The NLPAlgo object. This object can be queryed for information and also be called to redirect control (in which case this function should probably return false).
s [in/out] NLPAlgoState object. May be queried or modified if needed.
rHL_k [in/out] The matrix to be updated. Note that rHL_k was already set to rHL_km1 before this call was made. Also, rHL_k will probably have to support the MatrixSymSecant interface or an exception will be thrown.
Returns:
Returns false if the algorithms path has been redirected through algo. Ohterwise, this function should return true.

Implemented in MoochoPack::ReducedHessianSecantUpdateBFGSFull_Strategy.

virtual void MoochoPack::ReducedHessianSecantUpdate_Strategy::print_step ( std::ostream &  out,
const std::string &  leading_str 
) const [pure virtual]

This function will print a description of the computations and logic used in the update.

Implemented in MoochoPack::ReducedHessianSecantUpdateBFGSFull_Strategy, MoochoPack::ReducedHessianSecantUpdateBFGSProjected_Strategy, and MoochoPack::ReducedHessianSecantUpdateLPBFGS_Strategy.


The documentation for this class was generated from the following file:
Generated on Wed May 12 21:32:21 2010 for MoochoPack : Framework for Large-Scale Optimization Algorithms by  doxygen 1.4.7