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

Class container for the paraboloid function. More...

#include <EllipticParaboloid.hh>

Inherits Optimist::Function< Vector, Vector::Scalar, EllipticParaboloid< Vector > >.

Public Types

using VectorTrait = TypeTrait<Vector>
using Scalar = typename Vector::Scalar
Public Types inherited from Optimist::FunctionBase< Vector, Vector::Scalar, EllipticParaboloid< Vector > >
using InputTrait
using OutputTrait
using Scalar
using FirstDerivative
using SecondDerivative

Public Member Functions

 EllipticParaboloid ()
constexpr std::string name_impl () const
bool evaluate_impl (const Vector &x, Scalar &out) const
bool first_derivative_impl (const Vector &x, FirstDerivative &out) const
bool second_derivative_impl (const Vector &, SecondDerivative &out) const
Public Member Functions inherited from Optimist::Function< Vector, Vector::Scalar, EllipticParaboloid< Vector > >
 Function ()
constexpr std::string name () const
bool evaluate (const Vector &x, Vector::Scalar &out) const
bool jacobian (const Vector &x, FirstDerivative &out) const
bool hessian (const Vector &x, SecondDerivative &out) const
Public Member Functions inherited from Optimist::FunctionBase< Vector, Vector::Scalar, EllipticParaboloid< Vector > >
 FunctionBase ()
constexpr std::string name () const
bool evaluate (const Vector &x, Vector::Scalar &out) const
bool first_derivative (const Vector &x, FirstDerivative &out) const
bool second_derivative (const Vector &x, SecondDerivative &out) const
constexpr Integer input_dimension () const
constexpr Integer output_dimension () const
const std::vector< Vector > & solutions () const
const std::vector< Vector > & guesses () const
const Vector & solution (const Integer i) const
const Vector & guess (const Integer i) const
bool is_solution (const Vector &x, const Scalar tol=FunctionBase::SQRT_EPSILON) const

Private Attributes

Scalar m_a {1.0}
Scalar m_b {1.0}

Additional Inherited Members

Protected Attributes inherited from Optimist::FunctionBase< Vector, Vector::Scalar, EllipticParaboloid< Vector > >
std::vector< Vector > m_solutions
std::vector< Vector > m_guesses

Detailed Description

template<typename Vector>
requires TypeTrait<Vector>::IsEigen && (!TypeTrait<Vector>::IsFixed || TypeTrait<Vector>::Dimension == 2)
class Optimist::TestSet::EllipticParaboloid< Vector >

Class container for the paraboloid function, which is defined as:

\[f(\mathbf{x}) = ax^2 + by^2 \text{.} \]

The function has global minima at \(\mathbf{x} = (0, 0)\), with \(f(\mathbf{x}) = 0\). The initial guesses are generated on the square \(x_i \in \left[-100, 100\right]\).

Template Parameters
ScalarFloating-point number type.

Member Typedef Documentation

◆ Scalar

template<typename Vector>
using Optimist::TestSet::EllipticParaboloid< Vector >::Scalar = typename Vector::Scalar

◆ VectorTrait

template<typename Vector>
using Optimist::TestSet::EllipticParaboloid< Vector >::VectorTrait = TypeTrait<Vector>

Constructor & Destructor Documentation

◆ EllipticParaboloid()

template<typename Vector>
Optimist::TestSet::EllipticParaboloid< Vector >::EllipticParaboloid ( )
inline

Class constructor for the paraboloid function.

Member Function Documentation

◆ evaluate_impl()

template<typename Vector>
bool Optimist::TestSet::EllipticParaboloid< Vector >::evaluate_impl ( const Vector & x,
Scalar & out ) const
inline

Compute the function value at the input point.

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

◆ first_derivative_impl()

template<typename Vector>
bool Optimist::TestSet::EllipticParaboloid< Vector >::first_derivative_impl ( const Vector & x,
FirstDerivative & 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 Vector>
std::string Optimist::TestSet::EllipticParaboloid< Vector >::name_impl ( ) const
inlineconstexpr

Get the function name.

Returns
The function name.

◆ second_derivative_impl()

template<typename Vector>
bool Optimist::TestSet::EllipticParaboloid< Vector >::second_derivative_impl ( const Vector & ,
SecondDerivative & 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 Vector>
Scalar Optimist::TestSet::EllipticParaboloid< Vector >::m_a {1.0}
private

Coefficient \( a \).

◆ m_b

template<typename Vector>
Scalar Optimist::TestSet::EllipticParaboloid< Vector >::m_b {1.0}
private

Coefficient \( b \).


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