Optimist  0.0.0
A C++ library for optimization
Loading...
Searching...
No Matches
Optimist::TestSet::Rosenbrock< Real, N > Class Template Reference

Class container for the extended Rosenbrock function. More...

#include <Rosenbrock.hh>

Inherits Optimist::Function< Real, N, N, Rosenbrock< Real, N > >.

Public Types

using Vector = typename Function<Real, N, N, Rosenbrock<Real, N>>::InputVector
using Matrix = typename Function<Real, N, N, Rosenbrock<Real, N>>::Matrix
using Tensor = typename Function<Real, N, N, Rosenbrock<Real, N>>::Tensor
Public Types inherited from Optimist::Function< Real, N, N, Rosenbrock< Real, N > >
using InputVector
using OutputVector
using Matrix
using Tensor
Public Types inherited from Optimist::FunctionBase< Real, N, M, Rosenbrock< Real, N >, false >
using InputType
using OutputType
using FirstDerivativeType
using SecondDerivativeType

Public Member Functions

 Rosenbrock ()
std::string name_impl () const
void evaluate_impl (const Vector &x, Vector &out) const
void first_derivative_impl (const Vector &x, Matrix &out) const
void second_derivative_impl (const Vector &, Tensor &out) const
Public Member Functions inherited from Optimist::Function< Real, N, N, Rosenbrock< Real, N > >
 Function ()
std::string name () const
void evaluate (const InputVector &x, OutputVector &out) const
void jacobian (const InputVector &x, Matrix &out) const
void hessian (const InputVector &x, Tensor &out) const
Public Member Functions inherited from Optimist::FunctionBase< Real, N, M, Rosenbrock< Real, N >, false >
 FunctionBase ()
std::string name () const
void evaluate (const InputType &x, OutputType &out) const
void first_derivative (const InputType &x, FirstDerivativeType &out) const
void second_derivative (const InputType &x, SecondDerivativeType &out) const
constexpr Integer input_dimension () const
constexpr Integer output_dimension () const
const std::vector< InputType > & solutions () const
const std::vector< InputType > & guesses () const
const InputTypesolution (const Integer i) const
const InputTypeguess (const Integer i) const
bool is_solution (const InputType &x, const Real tol=EPSILON_LOW) const

Additional Inherited Members

Protected Attributes inherited from Optimist::FunctionBase< Real, N, M, Rosenbrock< Real, N >, false >
std::vector< InputTypem_solutions
std::vector< InputTypem_guesses

Detailed Description

template<typename Real, Integer N>
class Optimist::TestSet::Rosenbrock< Real, N >

Class container for the extended Rosenbrock function, which defined as:

\[\mathbf{f}(\mathbf{x}) = \begin{bmatrix} 10(x_2 - x_1^2) \\ 1 - x_1 \\ 10(x_4 - x_3^2) \\ 1 - x_3 \\ \vdots \\ 10(x_N - x_{N-1}^2) \\ 1 - x_{N-1} \end{bmatrix} \text{.} \]

The function has one solution at \(\mathbf{x} = [1, \dots 1]^\top\), with \(f(\mathbf{x}) = 0\). The initial guess is \(x_i = [-1.2, 1, -1.2, 1, \dots, -1.2, 1]^\top\).

Template Parameters
RealScalar number type.
NDimension of the function.

Member Typedef Documentation

◆ Matrix

template<typename Real, Integer N>
using Optimist::TestSet::Rosenbrock< Real, N >::Matrix = typename Function<Real, N, N, Rosenbrock<Real, N>>::Matrix

◆ Tensor

template<typename Real, Integer N>
using Optimist::TestSet::Rosenbrock< Real, N >::Tensor = typename Function<Real, N, N, Rosenbrock<Real, N>>::Tensor

◆ Vector

template<typename Real, Integer N>
using Optimist::TestSet::Rosenbrock< Real, N >::Vector = typename Function<Real, N, N, Rosenbrock<Real, N>>::InputVector

< Basic constants.

Constructor & Destructor Documentation

◆ Rosenbrock()

template<typename Real, Integer N>
Optimist::TestSet::Rosenbrock< Real, N >::Rosenbrock ( )
inline

Class constructor for the extended Rosenbrock function.

Member Function Documentation

◆ evaluate_impl()

template<typename Real, Integer N>
void Optimist::TestSet::Rosenbrock< Real, N >::evaluate_impl ( const Vector & x,
Vector & out ) const
inline

Compute the function value at the input point.

Parameters
[in]xInput point.
[out]outThe function value.

◆ first_derivative_impl()

template<typename Real, Integer N>
void Optimist::TestSet::Rosenbrock< Real, N >::first_derivative_impl ( const Vector & x,
Matrix & out ) const
inline

Compute the first derivative value at the input point.

Parameters
[in]xInput point.
[out]outThe first derivative value.

◆ name_impl()

template<typename Real, Integer N>
std::string Optimist::TestSet::Rosenbrock< Real, N >::name_impl ( ) const
inline

Get the function name.

Returns
The function name.

◆ second_derivative_impl()

template<typename Real, Integer N>
void Optimist::TestSet::Rosenbrock< Real, N >::second_derivative_impl ( const Vector & ,
Tensor & out ) const
inline

Compute the second derivative value at the input point.

Parameters
[in]xInput point.
[out]outThe second derivative value.

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