quala main
Quasi-Newton and other accelerators
Loading...
Searching...
No Matches
Classes | Namespaces
decl/lbfgs.hpp File Reference
#include <quala/decl/lbfgs-fwd.hpp>
#include <quala/util/vec.hpp>
+ Include dependency graph for decl/lbfgs.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  LBFGSParams
 Parameters for the LBFGS class. More...
 
struct  LBFGSParams::CBFGSParams
 Cautious BFGS update. More...
 
struct  LBFGSStorage
 Layout: More...
 
class  LBFGS
 Limited memory Broyden–Fletcher–Goldfarb–Shanno (L-BFGS) algorithm. More...
 

Namespaces

namespace  quala
 

Class Documentation

◆ quala::LBFGSParams

struct quala::LBFGSParams
+ Collaboration diagram for LBFGSParams:
Class Members
length_t memory = 10 Length of the history to keep.
real_t min_div_fac = 1e-10 Reject update if \( y^\top s \le \text{min_div_fac} \cdot s^\top s \).
real_t min_abs_s = 1e-32 Reject update if \( s^\top s \le \text{min_abs_s} \).
CBFGSParams cbfgs Parameters in the cautious BFGS update condition.

\[ \frac{y^\top s}{s^\top s} \ge \epsilon \| g \|^\alpha \]

See also
https://epubs.siam.org/doi/10.1137/S1052623499354242
bool force_pos_def = true If set to true, the inverse Hessian estimate should remain definite, i.e.

a check is performed that rejects the update if \( y^\top s \le \text{min_div_fac} \cdot s^\top s \). If set to false, just try to prevent a singular Hessian by rejecting the update if \( \left| y^\top s \right| \le \text{min_div_fac} \cdot s^\top s \).