22#include <Eigen/Cholesky>
49 typename HessianSolver =
50 Eigen::LLT<typename ObjectiveFunction::hessian_type>>
53 newton_optimizer<ObjectiveFunction, LineSearcher, HessianSolver>,
67 using hessian_type =
typename objective_function_type::hessian_type;
111 iteration_logger.template append<index_type>(
113 iteration_logger.template append<index_type>(
115 iteration_logger.template append<value_type>(
117 iteration_logger.template append<value_type>(
Definition of backtracking_line_searcher class.
Class to write logs of iterations.
Class of tags of logs without memory management.
Class to perform backtracking line search.
Base class of implementations of descent methods for optimization.
typename objective_function_type::value_type value_type
Type of function values.
auto gradient() const -> const variable_type &
Get gradient for current optimal variable.
auto iterations() const noexcept -> index_type
Get the number of iterations.
typename objective_function_type::variable_type variable_type
Type of variables.
auto evaluations() const noexcept -> index_type
Get the number of function evaluations.
typename line_searcher_type::objective_function_type objective_function_type
Type of the objective function.
auto gradient_norm() const -> value_type
Calculate norm of gradient.
auto opt_value() const -> const value_type &
Get current optimal value.
auto line_searcher() -> line_searcher_type &
Access object to perform line search.
Class of newton method for optimization.
hessian_solver_type solver_
Solver of linear equation of Hessian.
auto gradient() const -> const variable_type &
Get gradient for current optimal variable.
auto calc_direction() -> variable_type
Calculate search direction.
typename objective_function_type::variable_type variable_type
Type of variables.
auto hessian() const -> const hessian_type &
Get Hessian for current optimal variable.
typename line_searcher_type::objective_function_type objective_function_type
Type of the objective function.
HessianSolver hessian_solver_type
Type of solvers of linear equation of Hessian.
void configure_iteration_logger(logging::iterations::iteration_logger< this_type > &iteration_logger) const
Configure an iteration logger.
auto calc_direction_impl(const hessian_type &hessian) -> variable_type
Calculate search direction.
typename objective_function_type::hessian_type hessian_type
Type of Hessian.
newton_optimizer(const objective_function_type &obj_fun=objective_function_type())
Constructor.
auto line_searcher() -> line_searcher_type &
Access object to perform line search.
Concept of objects to perform line search in optimization.
Concept of multi-variate second-order differentiable objective functions in optimization.
Definition of descent_method_base class.
Definition of index_type type.
Definition of iteration_logger class.
Definition of line_searcher concept.
Definition of log_tag_view class.
Definition of multi_variate_twice_differentiable_objective_function concept.
Namespace of optimization algorithms.
constexpr auto newton_optimizer_tag
Tag of newton_optimizer.