24template <
class LoadedProblem>
27 if (!direction.empty())
28 throw std::invalid_argument(
29 "FISTA solver does not support any directions");
34 return std::make_shared<SolverWrapper>(
35 [solver{std::move(solver)}, N_exp](
46 return make_fista_driver_impl<LoadedProblem>(direction, opts);
SolverResults run_alm_solver(LoadedProblem &problem, Solver &solver, std::ostream &os, unsigned N_exp)
auto make_alm_solver(InnerSolver &&inner_solver, Options &opts)
Augmented Lagrangian Method solver.
#define USING_ALPAQA_CONFIG(Conf)
SharedSolverWrapper make_fista_driver(std::string_view direction, Options &opts)
unsigned print_interval
When to print progress.
unsigned max_iter
Maximum number of inner FISTA iterations.
PANOCStopCrit stop_crit
What stopping criterion to use.
@ FPRNorm
∞-norm of fixed point residual:
auto attach_cancellation(Solver &solver)
Attach SIGINT and SIGTERM handlers to stop the given solver.
SharedSolverWrapper make_fista_driver_impl(std::string_view direction, Options &opts)
auto make_inner_fista_solver(Options &opts)
decltype(auto) set_params(T &t, std::string_view prefix, Options &opts)
std::shared_ptr< SolverWrapper > SharedSolverWrapper