Nonconvex constrained optimization
Loading...
Searching...
No Matches
WolfeSolver< DirectionT > Class Template Reference

#include <alpaqa/inner/wolfe.hpp>

Detailed Description

template<class DirectionT>
class alpaqa::WolfeSolver< DirectionT >

Unconstrained solver with Wolfe line search.

Definition at line 102 of file wolfe.hpp.

Collaboration diagram for WolfeSolver< DirectionT >:

Public Types

using Problem = TypeErasedProblem<config_t>
using Params = WolfeParams<config_t>
using Direction = DirectionT
using Stats = WolfeStats<config_t>
using ProgressInfo = WolfeProgressInfo<config_t>
using SolveOptions = InnerSolveOptions<config_t>

Public Member Functions

 WolfeSolver (const Params &params)
 WolfeSolver (const Params &params, Direction &&direction)
 WolfeSolver (const Params &params, const Direction &direction)
Stats operator() (const Problem &problem, const SolveOptions &opts, rvec x, rvec y, crvec Σ, rvec err_z)
template<class P>
Stats operator() (const P &problem, const SolveOptions &opts, rvec x, rvec y, crvec Σ, rvec e)
template<class P>
Stats operator() (const P &problem, const SolveOptions &opts, rvec x)
WolfeSolverset_progress_callback (std::function< void(const ProgressInfo &)> cb)
 Specify a callable that is invoked with some intermediate results on each iteration of the algorithm.
std::string get_name () const
void stop ()
const Paramsget_params () const

Public Attributes

Direction direction
std::ostream * os = &std::cout

Private Types

using Helpers = detail::PANOCHelpers<config_t>

Private Attributes

Params params
guanaqo::AtomicStopSignal stop_signal
std::function< void(const ProgressInfo &)> progress_cb

Member Typedef Documentation

◆ Problem

template<class DirectionT>
using Problem = TypeErasedProblem<config_t>

Definition at line 106 of file wolfe.hpp.

◆ Params

template<class DirectionT>
using Params = WolfeParams<config_t>

Definition at line 107 of file wolfe.hpp.

◆ Direction

template<class DirectionT>
using Direction = DirectionT

Definition at line 108 of file wolfe.hpp.

◆ Stats

template<class DirectionT>
using Stats = WolfeStats<config_t>

Definition at line 109 of file wolfe.hpp.

◆ ProgressInfo

template<class DirectionT>
using ProgressInfo = WolfeProgressInfo<config_t>

Definition at line 110 of file wolfe.hpp.

◆ SolveOptions

template<class DirectionT>
using SolveOptions = InnerSolveOptions<config_t>

Definition at line 111 of file wolfe.hpp.

◆ Helpers

template<class DirectionT>
using Helpers = detail::PANOCHelpers<config_t>
private

Definition at line 161 of file wolfe.hpp.

Constructor & Destructor Documentation

◆ WolfeSolver() [1/3]

template<class DirectionT>
WolfeSolver ( const Params & params)
inline

Definition at line 113 of file wolfe.hpp.

◆ WolfeSolver() [2/3]

template<class DirectionT>
WolfeSolver ( const Params & params,
Direction && direction )
inline

Definition at line 116 of file wolfe.hpp.

◆ WolfeSolver() [3/3]

template<class DirectionT>
WolfeSolver ( const Params & params,
const Direction & direction )
inline

Definition at line 118 of file wolfe.hpp.

Member Function Documentation

◆ operator()() [1/3]

template<class DirectionT>
Stats operator() ( const Problem & problem,
const SolveOptions & opts,
rvec x,
rvec y,
crvec Σ,
rvec err_z )
Here is the caller graph for this function:

◆ operator()() [2/3]

template<class DirectionT>
template<class P>
Stats operator() ( const P & problem,
const SolveOptions & opts,
rvec x,
rvec y,
crvec Σ,
rvec e )
inline

Definition at line 129 of file wolfe.hpp.

Here is the call graph for this function:

◆ operator()() [3/3]

template<class DirectionT>
template<class P>
Stats operator() ( const P & problem,
const SolveOptions & opts,
rvec x )
inline

Definition at line 135 of file wolfe.hpp.

Here is the call graph for this function:

◆ set_progress_callback()

template<class DirectionT>
WolfeSolver & set_progress_callback ( std::function< void(const ProgressInfo &)> cb)
inline

Specify a callable that is invoked with some intermediate results on each iteration of the algorithm.

See also
ProgressInfo

Definition at line 146 of file wolfe.hpp.

◆ get_name()

template<class DirectionT>
std::string get_name ( ) const
nodiscard

◆ stop()

template<class DirectionT>
void stop ( )
inline

Definition at line 153 of file wolfe.hpp.

◆ get_params()

template<class DirectionT>
const Params & get_params ( ) const
inline

Definition at line 155 of file wolfe.hpp.

Member Data Documentation

◆ params

template<class DirectionT>
Params params
private

Definition at line 158 of file wolfe.hpp.

◆ stop_signal

template<class DirectionT>
guanaqo::AtomicStopSignal stop_signal
private

Definition at line 159 of file wolfe.hpp.

◆ progress_cb

template<class DirectionT>
std::function<void(const ProgressInfo &)> progress_cb
private

Definition at line 160 of file wolfe.hpp.

◆ direction

template<class DirectionT>
Direction direction

Definition at line 164 of file wolfe.hpp.

◆ os

template<class DirectionT>
std::ostream* os = &std::cout

Definition at line 165 of file wolfe.hpp.


The documentation for this class was generated from the following file: