#include <alpaqa/config/config.hpp>
#include <alpaqa/export.hpp>
#include <cmath>
#include <limits>
#include <string>
#include <utility>
#include <vector>
Go to the source code of this file.
◆ alpaqa::LBFGSParams
struct alpaqa::LBFGSParams |
Class Members |
length_t |
memory = 10 |
Length of the history to keep. |
real_t |
min_div_fac = std::numeric_limits<real_t>::epsilon() |
Reject update if \( y^\top s \le \text{min_div_fac} \cdot s^\top s \). |
real_t |
min_abs_s |
Reject update if \( s^\top s \le \text{min_abs_s} \). |
CBFGSParams< config_t > |
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 \).
|
LBFGSStepSize |
stepsize = LBFGSStepSize::BasedOnCurvature |
- See also
- LBFGSStepSize
|