#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 
  
 |