42 #ifndef BFGS_UPDATE_STRATEGY_H
43 #define BFGS_UPDATE_STRATEGY_H
45 #include "MoochoPack_Types.hpp"
46 #include "MoochoPack_QuasiNewtonStats.hpp"
49 namespace MoochoPack {
73 enum ESecantTesting { SECANT_TEST_DEFAULT, SECANT_TEST_ALWAYS, SECANT_NO_TEST };
94 bool rescale_init_identity =
true
95 ,
bool use_dampening =
true
97 ,value_type secant_warning_tol = 1e-6
98 ,value_type secant_error_tol = 1e-1
133 VectorMutable *s_bfgs
134 ,VectorMutable *y_bfgs
137 ,EJournalOutputLevel olevel
144 void print_step( std::ostream& out,
const std::string& leading_str )
const;
150 #endif // BFGS_UPDATE_STRATEGY_H
BFGSUpdate_Strategy(bool rescale_init_identity=true, bool use_dampening=true, ESecantTesting secant_testing=SECANT_TEST_DEFAULT, value_type secant_warning_tol=1e-6, value_type secant_error_tol=1e-1)
void print_step(std::ostream &out, const std::string &leading_str) const
Class for storing statistics about the Quasi-Newton updating.
void perform_update(VectorMutable *s_bfgs, VectorMutable *y_bfgs, bool first_update, std::ostream &out, EJournalOutputLevel olevel, bool check_results, MatrixSymOp *B, QuasiNewtonStats *quasi_newton_stats)
Perform the BFGS update.
Strategy interface which contains the guts for a dampened BFGS update.
STANDARD_MEMBER_COMPOSITION_MEMBERS(bool, rescale_init_identity)
<<std member="" comp>="">> members for whether to rescale the initial identity Hessian or not...