22template <Config Conf = DefaultConfig>
 
   31    std::chrono::nanoseconds 
max_time = std::chrono::minutes(5);
 
   52        10 * std::numeric_limits<real_t>::epsilon();
 
 
   98template <Config Conf = DefaultConfig>
 
  117template <Config Conf = DefaultConfig>
 
  150template <
class DirectionT>
 
  163        requires std::default_initializable<Direction>
 
 
  185        if (problem.get_m() != 0)
 
  186            throw std::invalid_argument(
"Missing arguments y, Σ, e");
 
  187        mvec y{
nullptr, 0}, Σ{
nullptr, 0}, e{
nullptr, 0};
 
 
  214    std::ostream *
os = &std::cout;
 
 
  217template <
class InnerSolverStats>
 
  220template <Config Conf>
 
  225    std::chrono::nanoseconds elapsed_time{};
 
  227    std::chrono::nanoseconds time_progress_callback{};
 
  229    unsigned iterations = 0;
 
  231    unsigned accelerated_step_rejected = 0;
 
  233    unsigned stepsize_backtracks = 0;
 
  235    unsigned direction_failures = 0;
 
  238    unsigned direction_update_rejected = 0;
 
 
  250template <Config Conf>
 
std::string get_name() const
 
Stats operator()(const P &problem, const SolveOptions &opts, rvec x, rvec y, crvec Σ, rvec e)
 
std::function< void(const ProgressInfo &)> progress_cb
 
Stats operator()(const Problem &problem, const SolveOptions &opts, rvec x, rvec y, crvec Σ, rvec err_z)
 
PANTRSolver(const Params ¶ms, Direction &&direction)
 
InnerSolveOptions< config_t > SolveOptions
 
PANTRSolver(const Params ¶ms, const Direction &direction)
 
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.
 
AtomicStopSignal stop_signal
 
const Params & get_params() const
 
PANTRStats< config_t > Stats
 
PANTRSolver(const Params ¶ms)
 
Stats operator()(const P &problem, const SolveOptions &opts, rvec x)
 
TypeErasedProblem< config_t > Problem
 
The main polymorphic minimization problem interface.
 
#define USING_ALPAQA_CONFIG(Conf)
 
#define ALPAQA_IF_QUADF(...)
 
#define ALPAQA_IF_LONGD(...)
 
#define ALPAQA_IF_FLOAT(...)
 
#define USING_ALPAQA_CONFIG_TEMPLATE(Conf)
 
#define ALPAQA_EXPORT_EXTERN_TEMPLATE(...)
 
LipschitzEstimateParams< config_t > Lipschitz
Parameters related to the Lipschitz constant estimate and step size.
 
real_t TR_tolerance_factor
 
real_t ratio_threshold_good
Minimal TR ratio to increase radius (very successful).
 
bool disable_acceleration
Don't compute accelerated steps, fall back to forward-backward splitting.
 
unsigned max_no_progress
Maximum number of iterations without any progress before giving up.
 
real_t L_max
Maximum Lipschitz constant estimate.
 
bool recompute_last_prox_step_after_direction_reset
 
bool update_direction_on_prox_step
 
real_t initial_radius
Initial trust radius.
 
std::chrono::nanoseconds max_time
Maximum duration.
 
bool ratio_approx_fbe_quadratic_model
Compute the trust-region ratio using an approximation of the quadratic model of the FBE,...
 
real_t quadratic_upperbound_tolerance_factor
Tolerance factor used in the quadratic upper bound condition that determines the step size.
 
real_t radius_factor_rejected
TR radius decrease coefficient when unsuccessful.
 
unsigned print_interval
When to print progress.
 
real_t ratio_threshold_acceptable
Minimal TR ratio to be accepted (successful).
 
int print_precision
The precision of the floating point values printed by the solver.
 
real_t min_radius
Minimum trust radius.
 
real_t L_min
Minimum Lipschitz constant estimate.
 
real_t radius_factor_good
TR radius increase coefficient when very successful.
 
bool compute_ratio_using_new_stepsize
Check the quadratic upperbound and update γ before computing the reduction of the TR step.
 
real_t radius_factor_acceptable
TR radius decrease coefficient when successful.
 
unsigned max_iter
Maximum number of inner PANTR iterations.
 
PANOCStopCrit stop_crit
What stopping criterion to use.
 
Parameters for the estimation of the Lipschitz constant of the gradient of the smooth term of the cos...
 
Tuning parameters for the PANTR algorithm.
 
unsigned stepsize_backtracks
 
unsigned direction_update_rejected
 
@ ApproxKKT
Find an ε-approximate KKT point in the ∞-norm:
 
unsigned accelerated_step_rejected
 
const TypeErasedProblem< config_t > * problem
 
SolverStatus
Exit status of a numerical solver such as ALM or PANOC.
 
std::chrono::nanoseconds time_progress_callback
 
std::chrono::nanoseconds elapsed_time
 
typename Conf::real_t real_t
 
unsigned direction_failures
 
InnerStatsAccumulator< FISTAStats< Conf > > & operator+=(InnerStatsAccumulator< FISTAStats< Conf > > &acc, const FISTAStats< Conf > &s)
 
const PANTRParams< config_t > * params
 
typename Conf::crvec crvec
 
real_t τ
1 if previous step accepted, 0 otherwise (PANOC compatibility)