Inner solvers#

group grp_InnerSolvers

Solvers for the inner problem, such as PANOC.

template<class DirectionT>
class PANOCSolver#
#include <alpaqa/inner/panoc.hpp>

PANOC solver for ALM.

Public Types

using Problem = TypeErasedProblem<config_t>#
using Params = PANOCParams<config_t>#
using Direction = DirectionT#
using Stats = PANOCStats<config_t>#
using ProgressInfo = PANOCProgressInfo<config_t>#
using SolveOptions = InnerSolveOptions<config_t>#

Public Functions

inline PANOCSolver(const Params &params)#
inline PANOCSolver(const Params &params, Direction &&direction)#
inline PANOCSolver(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>
inline Stats operator()(const P &problem, const SolveOptions &opts, rvec x, rvec y, crvec Σ, rvec e)#
template<class P>
inline Stats operator()(const P &problem, const SolveOptions &opts, rvec x)#
inline PANOCSolver &set_progress_callback(std::function<void(const ProgressInfo&)> cb)#

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

See also

ProgressInfo

std::string get_name() const#
inline void stop()#
inline const Params &get_params() const#

Public Members

Direction direction#
std::ostream *os = &std::cout#
template<class DirectionT>
class PANTRSolver#
#include <alpaqa/inner/pantr.hpp>

PANTR solver for ALM.

Public Types

using Problem = TypeErasedProblem<config_t>#
using Params = PANTRParams<config_t>#
using Direction = DirectionT#
using Stats = PANTRStats<config_t>#
using ProgressInfo = PANTRProgressInfo<config_t>#
using SolveOptions = InnerSolveOptions<config_t>#

Public Functions

inline PANTRSolver(const Params &params)#
inline PANTRSolver(const Params &params, Direction &&direction)#
inline PANTRSolver(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>
inline Stats operator()(const P &problem, const SolveOptions &opts, rvec x, rvec y, crvec Σ, rvec e)#
template<class P>
inline Stats operator()(const P &problem, const SolveOptions &opts, rvec x)#
inline PANTRSolver &set_progress_callback(std::function<void(const ProgressInfo&)> cb)#

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

See also

ProgressInfo

std::string get_name() const#
inline void stop()#
inline const Params &get_params() const#

Public Members

Direction direction#
std::ostream *os = &std::cout#
template<class DirectionT>
class ZeroFPRSolver#
#include <alpaqa/inner/zerofpr.hpp>

ZeroFPR solver for ALM.

Public Types

using Problem = TypeErasedProblem<config_t>#
using Params = ZeroFPRParams<config_t>#
using Direction = DirectionT#
using Stats = ZeroFPRStats<config_t>#
using ProgressInfo = ZeroFPRProgressInfo<config_t>#
using SolveOptions = InnerSolveOptions<config_t>#

Public Functions

inline ZeroFPRSolver(const Params &params)#
inline ZeroFPRSolver(const Params &params, Direction &&direction)#
inline ZeroFPRSolver(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>
inline Stats operator()(const P &problem, const SolveOptions &opts, rvec x, rvec y, crvec Σ, rvec e)#
template<class P>
inline Stats operator()(const P &problem, const SolveOptions &opts, rvec x)#
inline ZeroFPRSolver &set_progress_callback(std::function<void(const ProgressInfo&)> cb)#

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

See also

ProgressInfo

std::string get_name() const#
inline void stop()#
inline const Params &get_params() const#

Public Members

Direction direction#
std::ostream *os = &std::cout#
class LBFGSBSolver#
#include <alpaqa/lbfgsb/lbfgsb-adapter.hpp>

L-BFGS-B solver for ALM.

Public Types

using Problem = TypeErasedProblem<config_t>#
using Params = LBFGSBParams#
using Stats = LBFGSBStats#
using SolveOptions = InnerSolveOptions<config_t>#

Public Functions

inline LBFGSBSolver(const Params &params)#
Stats operator()(const Problem &problem, const SolveOptions &opts, rvec x, rvec y, crvec Σ, rvec err_z)#
Parameters:
  • problem – [in] Problem description

  • opts – [in] Solve options

  • x – [inout] Decision variable \( x \)

  • y – [inout] Lagrange multipliers \( y \)

  • Σ – [in] Constraint weights \( \Sigma \)

  • err_z – [out] Slack variable error \( g(x) - \Pi_D(g(x) + \Sigma^{-1} y) \)

template<class P>
inline Stats operator()(const P &problem, const SolveOptions &opts, rvec u, rvec y, crvec Σ, rvec e)#
std::string get_name() const#
inline void stop()#
inline const Params &get_params() const#

Public Members

std::ostream *os = &std::cout#
template<Config Conf>
class LBFGSBSolver#
#include <alpaqa/lbfgsb-adapter.hpp>

L-BFGS-B solver for ALM.

Public Types

using Problem = TypeErasedProblem<config_t>#
using Params = ::LBFGSpp::LBFGSBParam<real_t>#
using Stats = LBFGSBStats<config_t>#
using SolveOptions = InnerSolveOptions<config_t>#

Public Functions

inline LBFGSBSolver(const Params &params)#
Stats operator()(const Problem &problem, const SolveOptions &opts, rvec x, rvec y, crvec Σ, rvec err_z)#
template<class P>
inline Stats operator()(const P &problem, const SolveOptions &opts, rvec u, rvec y, crvec Σ, rvec e)#
std::string get_name() const#
inline void stop()#
inline const Params &get_params() const#

Public Members

std::ostream *os = &std::cout#