alpaqa 1.0.0a10
Nonconvex constrained optimization
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
Classes | Namespaces | Enumerations
lbfgs.hpp File Reference
#include <alpaqa/config/config.hpp>
#include <alpaqa/export.hpp>
#include <cmath>
#include <limits>
#include <string>
#include <utility>
#include <vector>
+ Include dependency graph for lbfgs.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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

Namespaces

namespace  alpaqa
 

Enumerations

enum class  LBFGSStepSize { BasedOnExternalStepSize = 0 , BasedOnCurvature = 1 , BasedOnGradientStepSize }
 Which method to use to select the L-BFGS step size. More...
 

Class Documentation

◆ alpaqa::LBFGSParams

struct alpaqa::LBFGSParams
+ Collaboration diagram for LBFGSParams< Conf >:
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 ysmin_div_facss.
real_t min_abs_s Reject update if ssmin_abs_s.
CBFGSParams< config_t > cbfgs = {} Parameters in the cautious BFGS update condition.

ysssϵgα

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 ysmin_div_facss. If set to false, just try to prevent a singular Hessian by rejecting the update if |ys|min_div_facss.

LBFGSStepSize stepsize = LBFGSStepSize::BasedOnCurvature
See also
LBFGSStepSize