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

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]

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.


  • s_bfgs->size() == y_bfgs->size() == rHL_k->rows() == rHL_k->cols() (throws ???)
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 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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Wed Apr 13 10:17:46 2011 for MOOCHO (Single Doxygen Collection) by  doxygen 1.6.3