7#include <alpaqa/lbfgsb-adapter-export.h>
22 unsigned max_iter = 1000;
23 std::chrono::nanoseconds max_time = std::chrono::minutes(5);
26 unsigned print_interval = 0;
27 int print_precision = std::numeric_limits<real_t>::max_digits10 / 2;
35 std::chrono::nanoseconds elapsed_time{};
36 std::chrono::nanoseconds time_progress_callback{};
37 unsigned iterations = 0;
39 unsigned lbfgs_rejected = 0;
74 Stats operator()(
const Problem &problem,
75 const SolveOptions &opts,
84 return operator()(
Problem{&problem}, opts, u, y, Σ, e);
92 this->progress_cb = cb;
96 std::string get_name()
const;
98 void stop() { stop_signal.stop(); }
108 std::ostream *os = &std::cout;
115template <
class InnerSolverStats>
123 std::chrono::nanoseconds elapsed_time{};
125 std::chrono::nanoseconds time_progress_callback{};
127 unsigned iterations = 0;
132 unsigned lbfgs_rejected = 0;
The main polymorphic minimization problem interface.
Stats operator()(const P &problem, const SolveOptions &opts, rvec u, rvec y, crvec Σ, rvec e)
std::function< void(const ProgressInfo &)> progress_cb
LBFGSBSolver & 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.
LBFGSBSolver(const Params ¶ms)
AtomicStopSignal stop_signal
const Params & get_params() const
#define USING_ALPAQA_CONFIG(Conf)
Tuning parameters for the L-BFGS-B solver LBFGSBSolver.
const TypeErasedProblem< config_t > * problem
std::chrono::nanoseconds time_progress_callback
std::chrono::nanoseconds elapsed_time
const LBFGSBParams * params
SolverStatus
Exit status of a numerical solver such as ALM or PANOC.
typename Conf::real_t real_t
InnerStatsAccumulator< FISTAStats< Conf > > & operator+=(InnerStatsAccumulator< FISTAStats< Conf > > &acc, const FISTAStats< Conf > &s)
typename Conf::crvec crvec
unsigned iterations
Total number of inner FISTA iterations.
Double-precision double configuration.