21template <Config Conf = DefaultConfig>
30 std::chrono::nanoseconds
max_time = std::chrono::minutes(5);
47 10 * std::numeric_limits<real_t>::epsilon();
93template <Config Conf = DefaultConfig>
112template <Config Conf = DefaultConfig>
142template <
class DirectionT>
155 requires std::default_initializable<Direction>
172 return operator()(Problem::template make<P>(problem), opts, x, y, Σ, e);
177 if (problem.get_m() != 0)
178 throw std::invalid_argument(
"Missing arguments y, Σ, e");
179 mvec y{
nullptr, 0}, Σ{
nullptr, 0}, e{
nullptr, 0};
206 std::ostream *
os = &std::cout;
209template <
class InnerSolverStats>
212template <Config Conf>
217 std::chrono::nanoseconds elapsed_time{};
219 std::chrono::nanoseconds time_progress_callback{};
221 unsigned iterations = 0;
223 unsigned accelerated_step_rejected = 0;
225 unsigned stepsize_backtracks = 0;
227 unsigned direction_failures = 0;
230 unsigned direction_update_rejected = 0;
242template <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(...)
unsigned stepsize_backtracks
unsigned direction_update_rejected
@ ApproxKKT
Find an ε-approximate KKT point in the ∞-norm:
LipschitzEstimateParams< config_t > Lipschitz
Parameters related to the Lipschitz constant estimate and step size.
real_t TR_tolerance_factor
unsigned accelerated_step_rejected
const TypeErasedProblem< config_t > * problem
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.
InnerStatsAccumulator< PANOCOCPStats< Conf > > & operator+=(InnerStatsAccumulator< PANOCOCPStats< Conf > > &acc, const PANOCOCPStats< Conf > &s)
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
SolverStatus
Exit status of a numerical solver such as ALM or PANOC.
bool update_direction_on_prox_step
std::chrono::nanoseconds time_progress_callback
real_t initial_radius
Initial trust radius.
std::chrono::nanoseconds elapsed_time
typename Conf::real_t real_t
unsigned direction_failures
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
real_t radius_factor_rejected
TR radius decrease coefficient when unsuccessful.
const PANTRParams< config_t > * params
typename Conf::crvec crvec
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.
Tuning parameters for the PANTR algorithm.