alpaqa cmake-targets
Nonconvex constrained optimization
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
StructuredLBFGSDirection< Conf > Struct Template Reference

#include <alpaqa/inner/directions/panoc/structured-lbfgs.hpp>

Detailed Description

template<Config Conf = DefaultConfig>
struct alpaqa::StructuredLBFGSDirection< Conf >
Examples
C++/DLProblem/main.cpp, and C++/FortranProblem/main.cpp.

Definition at line 51 of file structured-lbfgs.hpp.

+ Collaboration diagram for StructuredLBFGSDirection< Conf >:

Classes

struct  Params
 

Public Types

using Problem = TypeErasedProblem< config_t >
 
using LBFGS = alpaqa::LBFGS< config_t >
 
using AcceleratorParams = typename LBFGS::Params
 
using DirectionParams = StructuredLBFGSDirectionParams< config_t >
 

Public Member Functions

 StructuredLBFGSDirection ()=default
 
 StructuredLBFGSDirection (const Params &params)
 
 StructuredLBFGSDirection (const typename LBFGS::Params &params, const DirectionParams &directionparams={})
 
 StructuredLBFGSDirection (const LBFGS &lbfgs, const DirectionParams &directionparams={})
 
 StructuredLBFGSDirection (LBFGS &&lbfgs, const DirectionParams &directionparams={})
 
void initialize (const Problem &problem, crvec y, crvec Σ, real_t γ_0, crvec x_0, crvec x̂_0, crvec p_0, crvec grad_ψx_0)
 
bool has_initial_direction () const
 
bool update (real_t γₖ, real_t γₙₑₓₜ, crvec xₖ, crvec xₙₑₓₜ, crvec pₖ, crvec pₙₑₓₜ, crvec grad_ψxₖ, crvec grad_ψxₙₑₓₜ)
 
bool apply (real_t γₖ, crvec xₖ, crvec x̂ₖ, crvec pₖ, crvec grad_ψxₖ, rvec qₖ) const
 
void changed_γ (real_t γₖ, real_t old_γₖ)
 
void reset ()
 
std::string get_name () const
 
auto get_params () const
 

Public Attributes

DirectionParams direction_params
 

Private Types

using Helpers = detail::PANOCHelpers< config_t >
 

Private Member Functions

void approximate_hessian_vec_term (crvec xₖ, crvec grad_ψxₖ, rvec qₖ, crindexvec J) const
 

Private Attributes

const Problemproblem = nullptr
 
std::optional< crvecy = std::nullopt
 
std::optional< crvecΣ = std::nullopt
 
LBFGS lbfgs
 
indexvec J_sto
 
vec HqK
 
vec work_n
 
vec work_n2
 
vec work_m
 

Class Documentation

◆ alpaqa::StructuredLBFGSDirection::Params

struct alpaqa::StructuredLBFGSDirection::Params
+ Collaboration diagram for StructuredLBFGSDirection< Conf >::Params:
Class Members
AcceleratorParams accelerator = {}
DirectionParams direction = {}

Member Typedef Documentation

◆ Problem

template<Config Conf = DefaultConfig>
using Problem = TypeErasedProblem<config_t>

Definition at line 53 of file structured-lbfgs.hpp.

◆ LBFGS

template<Config Conf = DefaultConfig>
using LBFGS = alpaqa::LBFGS<config_t>

Definition at line 54 of file structured-lbfgs.hpp.

◆ AcceleratorParams

template<Config Conf = DefaultConfig>
using AcceleratorParams = typename LBFGS::Params

Definition at line 55 of file structured-lbfgs.hpp.

◆ DirectionParams

template<Config Conf = DefaultConfig>
using DirectionParams = StructuredLBFGSDirectionParams<config_t>

Definition at line 56 of file structured-lbfgs.hpp.

◆ Helpers

template<Config Conf = DefaultConfig>
using Helpers = detail::PANOCHelpers<config_t>
private

Definition at line 116 of file structured-lbfgs.hpp.

Constructor & Destructor Documentation

◆ StructuredLBFGSDirection() [1/5]

template<Config Conf = DefaultConfig>
StructuredLBFGSDirection ( )
default

◆ StructuredLBFGSDirection() [2/5]

template<Config Conf = DefaultConfig>
StructuredLBFGSDirection ( const Params params)
inline

Definition at line 64 of file structured-lbfgs.hpp.

◆ StructuredLBFGSDirection() [3/5]

template<Config Conf = DefaultConfig>
StructuredLBFGSDirection ( const typename LBFGS::Params params,
const DirectionParams directionparams = {} 
)
inline

Definition at line 66 of file structured-lbfgs.hpp.

◆ StructuredLBFGSDirection() [4/5]

template<Config Conf = DefaultConfig>
StructuredLBFGSDirection ( const LBFGS lbfgs,
const DirectionParams directionparams = {} 
)
inline

Definition at line 69 of file structured-lbfgs.hpp.

◆ StructuredLBFGSDirection() [5/5]

template<Config Conf = DefaultConfig>
StructuredLBFGSDirection ( LBFGS &&  lbfgs,
const DirectionParams directionparams = {} 
)
inline

Definition at line 72 of file structured-lbfgs.hpp.

Member Function Documentation

◆ initialize()

template<Config Conf>
void initialize ( const Problem problem,
crvec  y,
crvec  Σ,
real_t  γ_0,
crvec  x_0,
crvec  x̂_0,
crvec  p_0,
crvec  grad_ψx_0 
)
See also
PANOCDirection::initialize

Definition at line 9 of file structured-lbfgs.tpp.

+ Here is the call graph for this function:

◆ has_initial_direction()

template<Config Conf = DefaultConfig>
bool has_initial_direction ( ) const
inline
See also
PANOCDirection::has_initial_direction

Definition at line 81 of file structured-lbfgs.hpp.

◆ update()

template<Config Conf = DefaultConfig>
bool update ( real_t  γₖ,
real_t  γₙₑₓₜ,
crvec  xₖ,
crvec  xₙₑₓₜ,
crvec  pₖ,
crvec  pₙₑₓₜ,
crvec  grad_ψxₖ,
crvec  grad_ψxₙₑₓₜ 
)
inline
See also
PANOCDirection::update

Definition at line 84 of file structured-lbfgs.hpp.

+ Here is the call graph for this function:

◆ apply()

template<Config Conf>
bool apply ( real_t  γₖ,
crvec  xₖ,
crvec  x̂ₖ,
crvec  pₖ,
crvec  grad_ψxₖ,
rvec  qₖ 
) const
See also
PANOCDirection::apply

Definition at line 63 of file structured-lbfgs.tpp.

◆ changed_γ()

template<Config Conf = DefaultConfig>
void changed_γ ( real_t  γₖ,
real_t  old_γₖ 
)
inline
See also
PANOCDirection::changed_γ

Definition at line 98 of file structured-lbfgs.hpp.

◆ reset()

template<Config Conf = DefaultConfig>
void reset ( )
inline
See also
PANOCDirection::reset

Definition at line 103 of file structured-lbfgs.hpp.

+ Here is the call graph for this function:

◆ get_name()

template<Config Conf = DefaultConfig>
std::string get_name ( ) const
inline
See also
PANOCDirection::get_name

Definition at line 106 of file structured-lbfgs.hpp.

◆ get_params()

template<Config Conf = DefaultConfig>
auto get_params ( ) const
inline

Definition at line 111 of file structured-lbfgs.hpp.

+ Here is the call graph for this function:

◆ approximate_hessian_vec_term()

template<Config Conf>
void approximate_hessian_vec_term ( crvec  xₖ,
crvec  grad_ψxₖ,
rvec  qₖ,
crindexvec  J 
) const
private

Definition at line 117 of file structured-lbfgs.tpp.

Member Data Documentation

◆ problem

template<Config Conf = DefaultConfig>
const Problem* problem = nullptr
private

Definition at line 118 of file structured-lbfgs.hpp.

◆ y

template<Config Conf = DefaultConfig>
std::optional<crvec> y = std::nullopt
private

Definition at line 120 of file structured-lbfgs.hpp.

◆ Σ

template<Config Conf = DefaultConfig>
std::optional<crvec> Σ = std::nullopt
private

Definition at line 121 of file structured-lbfgs.hpp.

◆ lbfgs

template<Config Conf = DefaultConfig>
LBFGS lbfgs
private

Definition at line 127 of file structured-lbfgs.hpp.

◆ J_sto

template<Config Conf = DefaultConfig>
indexvec J_sto
mutableprivate

Definition at line 128 of file structured-lbfgs.hpp.

◆ HqK

template<Config Conf = DefaultConfig>
vec HqK
mutableprivate

Definition at line 129 of file structured-lbfgs.hpp.

◆ work_n

template<Config Conf = DefaultConfig>
vec work_n
mutableprivate

Definition at line 130 of file structured-lbfgs.hpp.

◆ work_n2

template<Config Conf = DefaultConfig>
vec work_n2
mutableprivate

Definition at line 131 of file structured-lbfgs.hpp.

◆ work_m

template<Config Conf = DefaultConfig>
vec work_m
mutableprivate

Definition at line 132 of file structured-lbfgs.hpp.

◆ direction_params

template<Config Conf = DefaultConfig>
DirectionParams direction_params

Definition at line 138 of file structured-lbfgs.hpp.


The documentation for this struct was generated from the following files: