20 : armijo_c1(1e-4), wolfe_c2(0.9), dphi_thresh(1e-13), alpha_min(1e-6),
21 max_num_steps(20), interp_type(LSInterpolation::CUBIC),
22 contraction_min(0.5), contraction_max(0.8) {}
27 std::size_t max_num_steps;
28 LSInterpolation interp_type;
31 friend std::ostream &operator<<(std::ostream &oss,
const Options &self) {
33 oss << fmt::format(
"armijo_c1 = {:.3e}", self.armijo_c1);
35 << fmt::format(
"contraction_min = {:.3e}", self.contraction_min);
37 << fmt::format(
"contraction_max = {:.3e}", self.contraction_max);
45 struct FunctionSample {
50 FunctionSample() : alpha(0.), phi(0.), dphi(0.), valid(
false) {}
51 FunctionSample(
T a,
T v) : alpha(a), phi(v), dphi(0.), valid(
true) {}
52 FunctionSample(
T a,
T v,
T g) : alpha(a), phi(v), dphi(g), valid(
true) {}