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

Class container for the Brown badly scaled function. More...

#include <Brown.hh>

Inherits Optimist::VectorFunction< Real, 2, 3, Brown< Real > >.

Public Types

using InputVector = typename VectorFunction<Real, 2, 3, Brown<Real>>::InputVector
 
using OutputVector = typename VectorFunction<Real, 2, 3, Brown<Real>>::OutputVector
 
using Matrix = typename VectorFunction<Real, 2, 3, Brown<Real>>::Matrix
 
using Tensor = typename VectorFunction<Real, 2, 3, Brown<Real>>::Tensor
 
- Public Types inherited from Optimist::VectorFunction< Real, 2, 3, Brown< Real > >
using InputVector
 
using OutputVector
 
using Matrix
 
using Tensor
 
- Public Types inherited from Optimist::Function< Real, N, M, Brown< Real > >
using InputType
 
using OutputType
 
using FirstDerivativeType
 
using SecondDerivativeType
 

Public Member Functions

 Brown ()
 
std::string name_impl () const
 
void evaluate_impl (const InputVector &x, OutputVector &out) const
 
void first_derivative_impl (const InputVector &x, Matrix &out) const
 
void second_derivative_impl (const InputVector &, Tensor &out) const
 
- Public Member Functions inherited from Optimist::VectorFunction< Real, 2, 3, Brown< Real > >
 VectorFunction ()
 
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::Function< Real, N, M, Brown< Real > >
 Function ()
 
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
 

Private Attributes

Real m_a {1.0e-6}
 

Additional Inherited Members

- Public Attributes inherited from Optimist::VectorFunction< Real, 2, 3, Brown< Real > >
friend Function< Real, N, M, VectorFunction< Real, N, M, DerivedFunction > >
 
- Protected Attributes inherited from Optimist::Function< Real, N, M, Brown< Real > >
std::vector< InputTypem_solutions
 
std::vector< InputTypem_guesses
 

Detailed Description

template<typename Real>
class Optimist::TestSet::Brown< Real >

Class container for the Brown badly scaled function, which is defined as:

\[\mathbf{f}(\mathbf{x}) = \begin{bmatrix} x_1 - a \\ x_2 - 2a \\ x_1x_2 - 2 \end{bmatrix} \text{,} \]

where \(a = 10^{-6}\). The function has one solution at \(\mathbf{x} = [a, 2a]^\top\), with \(f(\mathbf{x}) = 0\). The initial guess is generated at \(\mathbf{x} = [1, 1]^\top\).

Template Parameters
RealScalar number type.

Member Typedef Documentation

◆ InputVector

template<typename Real>
using Optimist::TestSet::Brown< Real >::InputVector = typename VectorFunction<Real, 2, 3, Brown<Real>>::InputVector

< Basic constants.

◆ Matrix

template<typename Real>
using Optimist::TestSet::Brown< Real >::Matrix = typename VectorFunction<Real, 2, 3, Brown<Real>>::Matrix

◆ OutputVector

template<typename Real>
using Optimist::TestSet::Brown< Real >::OutputVector = typename VectorFunction<Real, 2, 3, Brown<Real>>::OutputVector

◆ Tensor

template<typename Real>
using Optimist::TestSet::Brown< Real >::Tensor = typename VectorFunction<Real, 2, 3, Brown<Real>>::Tensor

Constructor & Destructor Documentation

◆ Brown()

template<typename Real>
Optimist::TestSet::Brown< Real >::Brown ( )
inline

Class constructor for the Brown function.

Member Function Documentation

◆ evaluate_impl()

template<typename Real>
void Optimist::TestSet::Brown< Real >::evaluate_impl ( const InputVector & x,
OutputVector & 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>
void Optimist::TestSet::Brown< Real >::first_derivative_impl ( const InputVector & 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>
std::string Optimist::TestSet::Brown< Real >::name_impl ( ) const
inline

Get the function name.

Returns
The function name.

◆ second_derivative_impl()

template<typename Real>
void Optimist::TestSet::Brown< Real >::second_derivative_impl ( const InputVector & ,
Tensor & out ) const
inline

Compute the second derivative value at the input point.

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

Member Data Documentation

◆ m_a

template<typename Real>
Real Optimist::TestSet::Brown< Real >::m_a {1.0e-6}
private

Scaling value (keep it low to guarantee bad scaling).


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