|
Optimist
0.0.0
A C++ library for optimization
|
Class container for the Varona's methods. More...
#include <Varona.hh>
Inherits Optimist::RootFinder::RootFinder< Real, 1, Varona< Real > >.
Public Types | |
| using | Method = enum class Method : Integer {ORDER_4 = 41, ORDER_8 = 8, ORDER_16 = 16, ORDER_32 = 32} |
| Public Types inherited from Optimist::RootFinder::RootFinder< Real, 1, Varona< Real > > | |
| using | Vector |
| using | Matrix |
| using | Tensor |
| Public Types inherited from Optimist::SolverBase< Real, N, N, Varona< Real >, false > | |
| using | InputType |
| using | OutputType |
| using | TraceType |
| using | FirstDerivativeType |
| using | SecondDerivativeType |
Public Member Functions | |
| Varona () | |
| std::string | name_impl () const |
| Method | method () const |
| void | method (Method t_method) |
| void | enable_4th_order_method () |
| void | enable_8th_order_method () |
| void | enable_16th_order_method () |
| void | enable_32th_order_method () |
| void | set_method (Method t_method) |
| template<typename FunctionLambda, typename FirstDerivativeLambda> | |
| bool | solve_impl (FunctionLambda &&function, FirstDerivativeLambda &&first_derivative, Real x_ini, Real &x_sol) |
| Public Member Functions inherited from Optimist::RootFinder::RootFinder< Real, 1, Varona< Real > > | |
| RootFinder () | |
| std::string | name () const |
| Integer | jacobian_evaluations () const |
| Integer | max_jacobian_evaluations () const |
| Integer | hessian_evaluations () const |
| Integer | max_hessian_evaluations () const |
| bool | solve (FunctionLambda &&function, Vector const &x_ini, Vector &x_sol) |
| Public Member Functions inherited from Optimist::SolverBase< Real, N, N, Varona< Real >, false > | |
| SolverBase () | |
| InputType const & | lower_bound () const |
| InputType const & | upper_bound () const |
| void | bounds (InputType const &t_lower_bound, InputType const &t_upper_bound) |
| constexpr Integer | input_dimension () const |
| constexpr Integer | output_dimension () const |
| Integer | function_evaluations () const |
| void | max_function_evaluations (Integer t_max_function_evaluations) |
| Integer | iterations () const |
| Integer | max_iterations () const |
| Real | alpha () const |
| Integer | relaxations () const |
| Integer | max_relaxations () const |
| Real | tolerance () const |
| void | verbose_mode (bool t_verbose) |
| void | enable_verbose_mode () |
| void | disable_verbose_mode () |
| void | damped_mode (bool t_damped) |
| void | enable_damped_mode () |
| void | disable_damped_mode () |
| std::string | task () const |
| bool | converged () const |
| const TraceType & | trace () const |
| std::ostream & | ostream () const |
| bool | solve (FunctionLambda &&function, InputType const &x_ini, InputType &x_sol) |
| bool | rootfind (FunctionBase< Real, FunInDim, FunOutDim, DerivedFunction, ForceEigen &&FunOutDim==1 > const &function, InputType const &x_ini, InputType &x_sol) |
| bool | optimize (FunctionBase< Real, FunInDim, FunOutDim, DerivedFunction, ForceEigen &&FunOutDim==1 > const &function, InputType const &x_ini, InputType &x_sol) |
| std::string | name () const |
Static Public Attributes | |
| static constexpr bool | requires_function {true} |
| static constexpr bool | requires_first_derivative {true} |
| static constexpr bool | requires_second_derivative {false} |
| Static Public Attributes inherited from Optimist::RootFinder::RootFinder< Real, 1, Varona< Real > > | |
| static constexpr bool | is_rootfinder |
| static constexpr bool | is_optimizer |
Protected Member Functions | |
| template<typename FunctionLambda> | |
| void | compute_step (FunctionLambda &&function, Real x_old, Real function_old, Real first_derivative_old, Real &step_old) |
| Protected Member Functions inherited from Optimist::RootFinder::RootFinder< Real, 1, Varona< Real > > | |
| bool | evaluate_jacobian (JacobianLambda &&jacobian, Vector const &x, Matrix &out) |
| bool | evaluate_hessian (HessianLambda &&hessian, Vector const &x, Matrix &out) |
| Protected Member Functions inherited from Optimist::SolverBase< Real, N, N, Varona< Real >, false > | |
| Integer | first_derivative_evaluations () const |
| Integer | max_first_derivative_evaluations () const |
| Integer | second_derivative_evaluations () const |
| Integer | max_second_derivative_evaluations () const |
| void | reset () |
| bool | evaluate_function (FunctionLambda &&function, InputType const &x, OutputType &out) |
| bool | evaluate_first_derivative (FirstDerivativeLambda &&function, InputType const &x, FirstDerivativeType &out) |
| bool | evaluate_second_derivative (SecondDerivativeLambda &&function, InputType const &x, SecondDerivativeType &out) |
| void | store_trace (InputType const &x) |
| bool | damp (FunctionLambda &&function, InputType const &x_old, InputType const &function_old, InputType const &step_old, InputType &x_new, InputType &function_new, InputType &step_new) |
| void | header () |
| void | bottom () |
| void | info (Real residuals, std::string const ¬es="-") |
Static Protected Member Functions | |
| static Real | Q (Real t) |
| static Real | W (Real t, Real s) |
| static Real | H (Real t, Real s, Real u) |
| static Real | J (Real t, Real s, Real u, Real v) |
Private Attributes | |
| Method | m_method {Method::ORDER_4} |
Additional Inherited Members | |
| Protected Attributes inherited from Optimist::SolverBase< Real, N, N, Varona< Real >, false > | |
| InputType | m_lower_bound |
| InputType | m_upper_bound |
| Integer | m_function_evaluations |
| Integer | m_first_derivative_evaluations |
| Integer | m_second_derivative_evaluations |
| Integer | m_max_function_evaluations |
| Integer | m_max_first_derivative_evaluations |
| Integer | m_max_second_derivative_evaluations |
| Integer | m_iterations |
| Integer | m_max_iterations |
| Real | m_alpha |
| Integer | m_relaxations |
| Integer | m_max_relaxations |
| Real | m_tolerance |
| bool | m_verbose |
| bool | m_damped |
| std::ostream * | m_ostream |
| std::string | m_task |
| bool | m_converged |
| TraceType | m_trace |
| Real | Scalar number type. |
| using Optimist::RootFinder::Varona< Real >::Method = enum class Method : Integer {ORDER_4 = 41, ORDER_8 = 8, ORDER_16 = 16, ORDER_32 = 32} |
Varona solver type enumeration.
|
inline |
Class constructor for the Varona's solvers.
|
inlineprotected |
|
inline |
Enable the Varona's 16-th order method.
|
inline |
Enable the Varona's 32-th order method.
|
inline |
Enable the Varona's 4-th order method.
|
inline |
Enable the Varona's 8-th order method.
|
inlinestaticprotected |
Compute the \( H \) function for the Varona's methods.
| [in] | t | Input value. |
| [in] | s | Input value. |
| [in] | u | Input value. |
|
inlinestaticprotected |
Compute the \( J \) function for the Varona's methods.
| [in] | t | Input value. |
| [in] | s | Input value. |
| [in] | u | Input value. |
| [in] | v | Input value. |
|
inline |
|
inline |
|
inline |
|
inlinestaticprotected |
Compute the \( Q \) function for the Varona's methods.
| [in] | t | Input value. |
|
inline |
|
inline |
Solve the nonlinear equation \( f(x) = 0 \), with \( f: \mathbb{R} \rightarrow \mathbb{R} \).
| FunctionLambda | Function lambda type. |
| FirstDerivativeLambda | First derivative lambda type. |
| [in] | function | Function lambda. |
| [in] | first_derivative | First derivative lambda. |
| [in] | x_ini | Initialization point. |
| [out] | x_sol | Solution point. |
|
inlinestaticprotected |
Compute the \( W \) function for the Varona's methods.
| [in] | t | Input value. |
| [in] | s | Input value. |
|
private |
Varona solver type.
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |