#include <alpaqa/inner/directions/decl/specialized-lbfgs.hpp>
Limited memory Broyden–Fletcher–Goldfarb–Shanno (L-BFGS) algorithm that can handle updates of the γ parameter.
Definition at line 10 of file decl/specialized-lbfgs.hpp.
|
| SpecializedLBFGS (Params params) |
|
| SpecializedLBFGS (Params params, size_t n, size_t history) |
|
bool | standard_update (crvec xₖ, crvec xₖ₊₁, crvec pₖ, crvec pₖ₊₁, crvec gradₖ₊₁) |
| Standard L-BFGS update without changing the step size γ. More...
|
|
bool | full_update (crvec xₖ, crvec xₖ₊₁, crvec pₖ_old_γ, crvec pₖ₊₁, crvec gradₖ₊₁, const Box &C, real_t γ) |
| L-BFGS update when changing the step size γ, recomputing everything. More...
|
|
bool | update (crvec xₖ, crvec xₖ₊₁, crvec pₖ, crvec pₖ₊₁, crvec gradₖ₊₁, const Box &C, real_t γ) |
| Update the inverse Hessian approximation using the new vectors xₖ₊₁ and pₖ₊₁. More...
|
|
template<class Vec > |
void | apply (Vec &&q) |
| Apply the inverse Hessian approximation to the given vector q. More...
|
|
void | initialize (crvec x₀, crvec grad₀) |
| Initialize with the starting point x₀ and the gradient in that point. More...
|
|
void | reset () |
| Throw away the approximation and all previous vectors s and y. More...
|
|
void | resize (size_t n, size_t history) |
| Re-allocate storage for a problem with a different size. More...
|
|
std::string | get_name () const |
|
size_t | n () const |
| Get the size of the s, y, x and g vectors in the buffer. More...
|
|
size_t | history () const |
| Get the number of previous vectors s, y, x and g stored in the buffer. More...
|
|
size_t | succ (size_t i) const |
| Get the next index in the circular buffer of previous s, y, x and g vectors. More...
|
|
size_t | pred (size_t i) const |
| Get the previous index in the circular buffer of previous s, y, x and g vectors. More...
|
|
auto | s (size_t i) |
|
auto | s (size_t i) const |
|
auto | y (size_t i) |
|
auto | y (size_t i) const |
|
auto | x (size_t i) |
|
auto | x (size_t i) const |
|
auto | g (size_t i) |
|
auto | g (size_t i) const |
|
auto | p () |
|
auto | p () const |
|
auto | w () |
|
auto | w () const |
|
real_t & | ρ (size_t i) |
|
const real_t & | ρ (size_t i) const |
|
real_t & | α (size_t i) |
|
const real_t & | α (size_t i) const |
|
◆ Params
◆ storage_t
◆ SpecializedLBFGS() [1/2]
◆ SpecializedLBFGS() [2/2]
◆ standard_update()
◆ full_update()
L-BFGS update when changing the step size γ, recomputing everything.
Definition at line 50 of file specialized-lbfgs.hpp.
◆ update()
Update the inverse Hessian approximation using the new vectors xₖ₊₁ and pₖ₊₁.
Definition at line 97 of file specialized-lbfgs.hpp.
◆ apply()
◆ initialize()
Initialize with the starting point x₀ and the gradient in that point.
Definition at line 11 of file specialized-lbfgs.hpp.
◆ reset()
◆ resize()
void resize |
( |
size_t |
n, |
|
|
size_t |
history |
|
) |
| |
|
inline |
◆ get_name()
std::string get_name |
( |
| ) |
const |
|
inline |
◆ n()
◆ history()
◆ succ()
size_t succ |
( |
size_t |
i | ) |
const |
|
inline |
◆ pred()
size_t pred |
( |
size_t |
i | ) |
const |
|
inline |
◆ s() [1/2]
◆ s() [2/2]
◆ y() [1/2]
◆ y() [2/2]
◆ x() [1/2]
◆ x() [2/2]
◆ g() [1/2]
◆ g() [2/2]
◆ p() [1/2]
◆ p() [2/2]
◆ w() [1/2]
◆ w() [2/2]
◆ ρ() [1/2]
◆ ρ() [2/2]
const real_t & ρ |
( |
size_t |
i | ) |
const |
|
inline |
◆ α() [1/2]
◆ α() [2/2]
const real_t & α |
( |
size_t |
i | ) |
const |
|
inline |
◆ sto
◆ idx
◆ full
◆ old_γ
◆ params
The documentation for this class was generated from the following files: