Optimist  0.0.0
A C++ library for optimization
Loading...
Searching...
No Matches
Optimist::RootFinder::Varona< Real > Class Template Reference

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}
using FunctionWrapper = typename RootFinder<Real, 1, Varona<Real>>::FunctionWrapper
using FirstDerivativeWrapper = typename RootFinder<Real, 1, Varona<Real>>::FirstDerivativeWrapper
using SecondDerivativeWrapper = typename RootFinder<Real, 1, Varona<Real>>::SecondDerivativeWrapper
Public Types inherited from Optimist::RootFinder::RootFinder< Real, 1, Varona< Real > >
using Vector
using Matrix
using Tensor
using FunctionWrapper
using JacobianWrapper
using HessianWrapper

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)
bool solve_impl (FunctionWrapper function, FirstDerivativeWrapper 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 (FunctionWrapper function, Vector const &x_ini, Vector &x_sol)
Public Member Functions inherited from Optimist::SolverBase< Real, N, N, Varona< Real >, false >
 SolverBase ()
const InputTypelower_bound () const
const InputTypeupper_bound () const
void bounds (const InputType &t_lower_bound, const InputType &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 TraceTypetrace () const
std::ostream & ostream () const
bool solve (FunctionWrapper function, const InputType &x_ini, InputType &x_sol)
bool rootfind (FunctionBase< Real, FunInDim, FunOutDim, DerivedFunction, ForceEigen &&FunOutDim==1 > const &function, const InputType &x_ini, InputType &x_sol)
bool optimize (FunctionBase< Real, FunInDim, FunOutDim, DerivedFunction, ForceEigen &&FunOutDim==1 > const &function, const InputType &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
static constexpr bool requires_function
static constexpr bool requires_first_derivative
static constexpr bool requires_second_derivative

Protected Member Functions

void compute_step (FunctionWrapper 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 > >
void evaluate_jacobian (JacobianWrapper jacobian, const Vector &x, Matrix &out)
void evaluate_hessian (HessianWrapper hessian, const Vector &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 ()
void evaluate_function (FunctionWrapper function, const InputType &x, OutputType &out)
void evaluate_first_derivative (FirstDerivativeWrapper function, const InputType &x, FirstDerivativeType &out)
void evaluate_second_derivative (SecondDerivativeWrapper function, const InputType &x, SecondDerivativeType &out)
void store_trace (const InputType &x)
bool damp (FunctionWrapper 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 &notes="-")

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 Types inherited from Optimist::SolverBase< Real, N, N, Varona< Real >, false >
using InputType
using OutputType
using TraceType
using FirstDerivativeType
using SecondDerivativeType
using FunctionWrapper
using FirstDerivativeWrapper
using SecondDerivativeWrapper
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

Detailed Description

template<typename Real>
class Optimist::RootFinder::Varona< Real >
Template Parameters
RealScalar number type.

Member Typedef Documentation

◆ FirstDerivativeWrapper

template<typename Real>
using Optimist::RootFinder::Varona< Real >::FirstDerivativeWrapper = typename RootFinder<Real, 1, Varona<Real>>::FirstDerivativeWrapper

◆ FunctionWrapper

template<typename Real>
using Optimist::RootFinder::Varona< Real >::FunctionWrapper = typename RootFinder<Real, 1, Varona<Real>>::FunctionWrapper

◆ Method

template<typename Real>
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.

◆ SecondDerivativeWrapper

template<typename Real>
using Optimist::RootFinder::Varona< Real >::SecondDerivativeWrapper = typename RootFinder<Real, 1, Varona<Real>>::SecondDerivativeWrapper

Constructor & Destructor Documentation

◆ Varona()

template<typename Real>
Optimist::RootFinder::Varona< Real >::Varona ( )
inline

Class constructor for the Varona's solvers.

Member Function Documentation

◆ compute_step()

template<typename Real>
void Optimist::RootFinder::Varona< Real >::compute_step ( FunctionWrapper function,
Real x_old,
Real function_old,
Real first_derivative_old,
Real & step_old )
inlineprotected

Compute the step using the Varona's methods.

Parameters
[in]functionFunction wrapper.
[in]x_oldOld point.
[in]function_oldOld function value.
[in]first_derivative_oldOld first derivative value.
[out]step_oldOld step.

◆ enable_16th_order_method()

template<typename Real>
void Optimist::RootFinder::Varona< Real >::enable_16th_order_method ( )
inline

Enable the Varona's 16-th order method.

◆ enable_32th_order_method()

template<typename Real>
void Optimist::RootFinder::Varona< Real >::enable_32th_order_method ( )
inline

Enable the Varona's 32-th order method.

◆ enable_4th_order_method()

template<typename Real>
void Optimist::RootFinder::Varona< Real >::enable_4th_order_method ( )
inline

Enable the Varona's 4-th order method.

◆ enable_8th_order_method()

template<typename Real>
void Optimist::RootFinder::Varona< Real >::enable_8th_order_method ( )
inline

Enable the Varona's 8-th order method.

◆ H()

template<typename Real>
Real Optimist::RootFinder::Varona< Real >::H ( Real t,
Real s,
Real u )
inlinestaticprotected

Compute the \( H \) function for the Varona's methods.

Parameters
[in]tInput value.
[in]sInput value.
[in]uInput value.
Returns
The \( H \) function value.

◆ J()

template<typename Real>
Real Optimist::RootFinder::Varona< Real >::J ( Real t,
Real s,
Real u,
Real v )
inlinestaticprotected

Compute the \( J \) function for the Varona's methods.

Parameters
[in]tInput value.
[in]sInput value.
[in]uInput value.
[in]vInput value.
Returns
The \( J \) function value.

◆ method() [1/2]

template<typename Real>
Method Optimist::RootFinder::Varona< Real >::method ( ) const
inline

Get the enumeration type of the Varona solver method.

Returns
The Varona solver enumeration type.

◆ method() [2/2]

template<typename Real>
void Optimist::RootFinder::Varona< Real >::method ( Method t_method)
inline

Set the enumeration type of the Varona solver method.

Parameters
[in]t_methodThe Varona solver enumeration type.

◆ name_impl()

template<typename Real>
std::string Optimist::RootFinder::Varona< Real >::name_impl ( ) const
inline

Get the Varona solver name.

Returns
The Varona solver name.

◆ Q()

template<typename Real>
Real Optimist::RootFinder::Varona< Real >::Q ( Real t)
inlinestaticprotected

Compute the \( Q \) function for the Varona's methods.

Parameters
[in]tInput value.
Returns
The \( Q \) function value.

◆ set_method()

template<typename Real>
void Optimist::RootFinder::Varona< Real >::set_method ( Method t_method)
inline

Set the Varona solver type.

Parameters
[in]t_methodThe Varona solver type enumeration.

◆ solve_impl()

template<typename Real>
bool Optimist::RootFinder::Varona< Real >::solve_impl ( FunctionWrapper function,
FirstDerivativeWrapper first_derivative,
Real x_ini,
Real & x_sol )
inline

Solve the nonlinear equation \( f(x) = 0 \), with \( f: \mathbb{R} \rightarrow \mathbb{R} \).

Parameters
[in]functionFunction wrapper.
[in]first_derivativeFirst derivative wrapper.
[in]x_iniInitialization point.
[out]x_solSolution point.
Returns
The convergence boolean flag.

◆ W()

template<typename Real>
Real Optimist::RootFinder::Varona< Real >::W ( Real t,
Real s )
inlinestaticprotected

Compute the \( W \) function for the Varona's methods.

Parameters
[in]tInput value.
[in]sInput value.
Returns
The \( W \) function value.

Member Data Documentation

◆ m_method

template<typename Real>
Method Optimist::RootFinder::Varona< Real >::m_method {Method::ORDER_4}
private

Varona solver type.

◆ requires_first_derivative

template<typename Real>
bool Optimist::RootFinder::Varona< Real >::requires_first_derivative {true}
staticconstexpr

◆ requires_function

template<typename Real>
bool Optimist::RootFinder::Varona< Real >::requires_function {true}
staticconstexpr

◆ requires_second_derivative

template<typename Real>
bool Optimist::RootFinder::Varona< Real >::requires_second_derivative {false}
staticconstexpr

Basic constants.


The documentation for this class was generated from the following file: