Jpp  19.1.0
the software that should make you happy
Public Member Functions | List of all members
JMATH::JSqrt< JF1_t > Struct Template Reference

Square root of function. More...

#include <JMathlib.hh>

Inheritance diagram for JMATH::JSqrt< JF1_t >:
JMATH::JMathlib< JSqrt< _vF > >

Public Member Functions

 JSqrt ()
 Default constructor. More...
 
 JSqrt (const JF1_t &f1)
 Constructor. More...
 
double getValue (const double x) const
 Function value. More...
 
double getDerivative (const double x) const
 Derivative value. More...
 
const JSqrt & getGradient (const double x) const
 Get gradient. More...
 
double operator() (const Args &...args) const
 Function value. More...
 

Detailed Description

template<class JF1_t = _vF>
struct JMATH::JSqrt< JF1_t >

Square root of function.

Definition at line 2055 of file JMathlib.hh.

Constructor & Destructor Documentation

◆ JSqrt() [1/2]

template<class JF1_t = _vF>
JMATH::JSqrt< JF1_t >::JSqrt ( )
inline

Default constructor.

Definition at line 2065 of file JMathlib.hh.

2065  :
2066  JF1_t()
2067  {}

◆ JSqrt() [2/2]

template<class JF1_t = _vF>
JMATH::JSqrt< JF1_t >::JSqrt ( const JF1_t &  f1)
inline

Constructor.

Parameters
f1function

Definition at line 2075 of file JMathlib.hh.

2075  :
2076  JF1_t(f1)
2077  {}
const JPolynome f1(1.0, 2.0, 3.0)
Function.

Member Function Documentation

◆ getValue()

template<class JF1_t = _vF>
double JMATH::JSqrt< JF1_t >::getValue ( const double  x) const
inline

Function value.

Parameters
xabscissa value
Returns
function value

Definition at line 2086 of file JMathlib.hh.

2087  {
2088  const double u = static_cast<const JF1_t&>(*this).getValue(x);
2089 
2090  return sqrt(u);
2091  }
double u[N+1]
Definition: JPolint.hh:865

◆ getDerivative()

template<class JF1_t = _vF>
double JMATH::JSqrt< JF1_t >::getDerivative ( const double  x) const
inline

Derivative value.

Parameters
xabscissa value
Returns
derivative value

Definition at line 2100 of file JMathlib.hh.

2101  {
2102  const double u = static_cast<const JF1_t&>(*this).getValue(x);
2103  const double v = static_cast<const JF1_t&>(*this).getDerivative(x);
2104 
2105  return 0.5 * v / sqrt(u);
2106  }
data_type v[N+1][M+1]
Definition: JPolint.hh:866

◆ getGradient()

template<class JF1_t = _vF>
const JSqrt& JMATH::JSqrt< JF1_t >::getGradient ( const double  x) const
inline

Get gradient.

Parameters
xabscissa value
Returns
gradient

Definition at line 2115 of file JMathlib.hh.

2116  {
2117  static JSqrt gradient; // d(f)/d(a)
2118 
2119  const double u = static_cast<const JF1_t&>(*this).getValue(x);
2120 
2121  static_cast<JF1_t&>(gradient) = static_cast<const JF1_t&>(*this).getGradient(x);
2122  static_cast<JF1_t&>(gradient) *= 0.5 / sqrt(u);
2123 
2124  return gradient;
2125  }
Square root of function.
Definition: JMathlib.hh:2058

◆ operator()()

double JMATH::JMathlib< JSqrt< _vF > >::operator() ( const Args &...  args) const
inlineinherited

Function value.

Parameters
argsabscissa value(s)
Returns
function value

Definition at line 362 of file JMathlib.hh.

363  {
364  return static_cast<const JF1_t&>(*this).getValue(args...);
365  }

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