MoochoPack : Framework for Large-Scale Optimization Algorithms  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | List of all members
MoochoPack::ReducedHessianSecantUpdate_Strategy Class Referenceabstract

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

#include <MoochoPack_ReducedHessianSecantUpdate_Strategy.hpp>

Inheritance diagram for MoochoPack::ReducedHessianSecantUpdate_Strategy:
Inheritance graph
[legend]

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. More...
 
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. More...
 

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 54 of file MoochoPack_ReducedHessianSecantUpdate_Strategy.hpp.

Constructor & Destructor Documentation

virtual MoochoPack::ReducedHessianSecantUpdate_Strategy::~ReducedHessianSecantUpdate_Strategy ( )
inlinevirtual

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:

  • s_bfgs->size() == y_bfgs->size() == rHL_k->rows() == rHL_k->cols() (throws ???)
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::ReducedHessianSecantUpdateLPBFGS_Strategy, MoochoPack::ReducedHessianSecantUpdateBFGSProjected_Strategy, and MoochoPack::ReducedHessianSecantUpdateBFGSFull_Strategy.


The documentation for this class was generated from the following file: