67template <
typename Scalar =
double>
194 throw std::invalid_argument(
"'m' must be positive");
196 throw std::invalid_argument(
"'epsilon' must be non-negative");
198 throw std::invalid_argument(
"'epsilon_rel' must be non-negative");
200 throw std::invalid_argument(
"'past' must be non-negative");
202 throw std::invalid_argument(
"'delta' must be non-negative");
204 throw std::invalid_argument(
"'max_iterations' must be non-negative");
207 throw std::invalid_argument(
"unsupported line search termination condition");
209 throw std::invalid_argument(
"'max_linesearch' must be positive");
211 throw std::invalid_argument(
"'min_step' must be positive");
213 throw std::invalid_argument(
"'max_step' must be greater than 'min_step'");
214 if (ftol <= 0 || ftol >= 0.5)
215 throw std::invalid_argument(
"'ftol' must satisfy 0 < ftol < 0.5");
216 if (wolfe <= ftol || wolfe >= 1)
217 throw std::invalid_argument(
"'wolfe' must satisfy ftol < wolfe < 1");
224template <
typename Scalar =
double>
334 delta = Scalar(1e-10);
353 throw std::invalid_argument(
"'m' must be positive");
355 throw std::invalid_argument(
"'epsilon' must be non-negative");
357 throw std::invalid_argument(
"'epsilon_rel' must be non-negative");
359 throw std::invalid_argument(
"'past' must be non-negative");
361 throw std::invalid_argument(
"'delta' must be non-negative");
363 throw std::invalid_argument(
"'max_iterations' must be non-negative");
365 throw std::invalid_argument(
"'max_submin' must be non-negative");
367 throw std::invalid_argument(
"'max_linesearch' must be positive");
369 throw std::invalid_argument(
"'min_step' must be positive");
371 throw std::invalid_argument(
"'max_step' must be greater than 'min_step'");
372 if (ftol <= 0 || ftol >= 0.5)
373 throw std::invalid_argument(
"'ftol' must satisfy 0 < ftol < 0.5");
374 if (wolfe <= ftol || wolfe >= 1)
375 throw std::invalid_argument(
"'wolfe' must satisfy ftol < wolfe < 1");
LINE_SEARCH_TERMINATION_CONDITION
@ LBFGS_LINESEARCH_BACKTRACKING_STRONG_WOLFE
@ LBFGS_LINESEARCH_BACKTRACKING_ARMIJO
@ LBFGS_LINESEARCH_BACKTRACKING
@ LBFGS_LINESEARCH_BACKTRACKING_WOLFE