24template <Config Conf = DefaultConfig>
 
   33    std::chrono::nanoseconds 
max_time = std::chrono::minutes(5);
 
   54        10 * std::numeric_limits<real_t>::epsilon();
 
 
   61template <Config Conf = DefaultConfig>
 
   76template <Config Conf = DefaultConfig>
 
  105template <Config Conf>
 
  133        if (problem.get_m() != 0)
 
  134            throw std::invalid_argument(
"Missing arguments y, Σ, e");
 
  135        mvec y{
nullptr, 0}, Σ{
nullptr, 0}, e{
nullptr, 0};
 
 
  161    std::ostream *
os = &std::cout;
 
 
  164template <
class InnerSolverStats>
 
  167template <Config Conf>
 
  172    std::chrono::nanoseconds elapsed_time{};
 
  174    std::chrono::nanoseconds time_progress_callback{};
 
  176    unsigned iterations = 0;
 
  178    unsigned stepsize_backtracks = 0;
 
 
  187template <Config Conf>
 
std::string get_name() const
 
FISTASolver & 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.
 
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)
 
InnerSolveOptions< config_t > SolveOptions
 
AtomicStopSignal stop_signal
 
const Params & get_params() const
 
FISTAStats< config_t > Stats
 
Stats operator()(const P &problem, const SolveOptions &opts, rvec x)
 
FISTASolver(const Params ¶ms)
 
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 ALPAQA_EXPORT_EXTERN_TEMPLATE(...)
 
LipschitzEstimateParams< config_t > Lipschitz
Parameters related to the Lipschitz constant estimate and step size.
 
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.
 
std::chrono::nanoseconds max_time
Maximum duration.
 
real_t quadratic_upperbound_tolerance_factor
Tolerance factor used in the quadratic upper bound condition that determines the step size.
 
unsigned print_interval
When to print progress.
 
int print_precision
The precision of the floating point values printed by the solver.
 
real_t L_min
Minimum Lipschitz constant estimate.
 
unsigned max_iter
Maximum number of inner FISTA iterations.
 
PANOCStopCrit stop_crit
What stopping criterion to use.
 
Tuning parameters for the FISTA algorithm.
 
Parameters for the estimation of the Lipschitz constant of the gradient of the smooth term of the cos...
 
unsigned stepsize_backtracks
 
@ ApproxKKT
Find an ε-approximate KKT point in the ∞-norm:
 
const FISTAParams< config_t > * params
 
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
 
InnerStatsAccumulator< FISTAStats< Conf > > & operator+=(InnerStatsAccumulator< FISTAStats< Conf > > &acc, const FISTAStats< Conf > &s)
 
typename Conf::crvec crvec