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

Class container for the quadratic function. More...

#include <Quadratic.hh>

Inherits Optimist::ScalarFunction< Real, Quadratic< Real > >.

Public Member Functions

 Quadratic ()
 
std::string name_impl () const
 
void evaluate_impl (Real x, Real &out) const
 
void first_derivative_impl (Real x, Real &out) const
 
void second_derivative_impl (Real, Real &out) const
 
- Public Member Functions inherited from Optimist::ScalarFunction< Real, Quadratic< Real > >
 ScalarFunction ()
 
std::string name () const
 
void evaluate (Real x, Real &out) const
 
void first_derivative (Real x, Real &out) const
 
void second_derivative (Real x, Real &out) const
 
- Public Member Functions inherited from Optimist::Function< Real, 1, 1, Quadratic< 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.0}
 
Real m_b {1.0}
 
Real m_c {-1.0}
 

Additional Inherited Members

- Public Types inherited from Optimist::Function< Real, 1, 1, Quadratic< Real > >
using InputType
 
using OutputType
 
using FirstDerivativeType
 
using SecondDerivativeType
 
- Public Attributes inherited from Optimist::ScalarFunction< Real, Quadratic< Real > >
friend Function< Real, 1, 1, ScalarFunction< Real, DerivedFunction > >
 
- Protected Attributes inherited from Optimist::Function< Real, 1, 1, Quadratic< Real > >
std::vector< InputTypem_solutions
 
std::vector< InputTypem_guesses
 

Detailed Description

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

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

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

The function has roots at

\[x = \sqrt{\displaystyle\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}} \text{,} \]

and a minimum at

\[x = -\displaystyle\frac{b}{2a} \text{.} \]

The default coefficients are \(a = 1\), \(b = 1\), and \(c = -1\), and the function initial guess is \(x = 0\).

Template Parameters
RealScalar number type.

Constructor & Destructor Documentation

◆ Quadratic()

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

< Basic constants. Class constructor for the quadratic function.

Member Function Documentation

◆ evaluate_impl()

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

Get the function name.

Returns
The function name.

◆ second_derivative_impl()

template<typename Real>
void Optimist::TestSet::Quadratic< Real >::second_derivative_impl ( Real ,
Real & 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::Quadratic< Real >::m_a {1.0}
private

Coefficient \(a\).

◆ m_b

template<typename Real>
Real Optimist::TestSet::Quadratic< Real >::m_b {1.0}
private

Coefficient \(b\).

◆ m_c

template<typename Real>
Real Optimist::TestSet::Quadratic< Real >::m_c {-1.0}
private

Coefficient \(c\).


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