Jpp 20.0.0-27-g39925593c-D
the software that should make you happy
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
JMATH::JPow< ID_t, JF1_t > Struct Template Reference

Power of function. More...

#include <JMathlib.hh>

Inheritance diagram for JMATH::JPow< ID_t, JF1_t >:
JMATH::JMathlib< JF1_t >

Public Member Functions

 JPow ()
 Default constructor.
 
 JPow (const JF1_t &f1, const double alpha)
 Constructor.
 
double getValue (const double x) const
 Function value.
 
double getDerivative (const double x) const
 Derivative value.
 
const JPowgetGradient (const double x) const
 Get gradient.
 
template<class ... Args>
double operator() (const Args &...args) const
 Function value.
 

Public Attributes

double alpha
 f(x)^alpha
 

Static Public Attributes

static const int ID = ID_t
 
static const parameter_list< JPowparameters
 parameters
 

Detailed Description

template<int ID_t, class JF1_t = _vF>
struct JMATH::JPow< ID_t, JF1_t >

Power of function.

Definition at line 1798 of file JMathlib.hh.

Constructor & Destructor Documentation

◆ JPow() [1/2]

template<int ID_t, class JF1_t = _vF>
JMATH::JPow< ID_t, JF1_t >::JPow ( )
inline

Default constructor.

Definition at line 1810 of file JMathlib.hh.

1810 :
1811 JF1_t(),
1812 alpha(0.0)
1813 {}
double alpha
f(x)^alpha
Definition JMathlib.hh:1878

◆ JPow() [2/2]

template<int ID_t, class JF1_t = _vF>
JMATH::JPow< ID_t, JF1_t >::JPow ( const JF1_t & f1,
const double alpha )
inline

Constructor.

Parameters
f1function
alphavalue

Definition at line 1822 of file JMathlib.hh.

1822 :
1823 JF1_t(f1),
1824 alpha(alpha)
1825 {}

Member Function Documentation

◆ getValue()

template<int ID_t, class JF1_t = _vF>
double JMATH::JPow< ID_t, JF1_t >::getValue ( const double x) const
inline

Function value.

Parameters
xabscissa value
Returns
function value

Definition at line 1834 of file JMathlib.hh.

1835 {
1836 const double u = static_cast<const JF1_t&>(*this).getValue(x);
1837
1838 return pow(u, alpha);
1839 }
T pow(const T &x, const double y)
Power .
Definition JMath.hh:97

◆ getDerivative()

template<int ID_t, class JF1_t = _vF>
double JMATH::JPow< ID_t, JF1_t >::getDerivative ( const double x) const
inline

Derivative value.

Parameters
xabscissa value
Returns
derivative value

Definition at line 1848 of file JMathlib.hh.

1849 {
1850 const double u = static_cast<const JF1_t&>(*this).getValue(x);
1851 const double v = static_cast<const JF1_t&>(*this).getDerivative(x);
1852
1853 return alpha * pow(u, alpha - 1) * v;
1854 }

◆ getGradient()

template<int ID_t, class JF1_t = _vF>
const JPow & JMATH::JPow< ID_t, JF1_t >::getGradient ( const double x) const
inline

Get gradient.

Parameters
xabscissa value
Returns
gradient

Definition at line 1863 of file JMathlib.hh.

1864 {
1865 static JPow gradient; // d(f)/d(a)
1866
1867 const double u = static_cast<const JF1_t&>(*this).getValue(x);
1868 const double w = pow(u, alpha);
1869
1870 gradient.alpha = w * log(u);
1871
1872 static_cast<JF1_t&>(gradient) = static_cast<const JF1_t&>(*this).getGradient(x);
1873 static_cast<JF1_t&>(gradient) *= alpha * w / u;
1874
1875 return gradient;
1876 }
JPow()
Default constructor.
Definition JMathlib.hh:1810

◆ operator()()

template<class JF1_t >
template<class ... Args>
double JMATH::JMathlib< JF1_t >::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 }

Member Data Documentation

◆ ID

template<int ID_t, class JF1_t = _vF>
const int JMATH::JPow< ID_t, JF1_t >::ID = ID_t
static

Definition at line 1802 of file JMathlib.hh.

◆ alpha

template<int ID_t, class JF1_t = _vF>
double JMATH::JPow< ID_t, JF1_t >::alpha

f(x)^alpha

Definition at line 1878 of file JMathlib.hh.

◆ parameters

template<int ID_t, class JF1_t >
const parameter_list< JPow< ID_t, JF1_t > > JMATH::JPow< ID_t, JF1_t >::parameters
static

parameters

Set parameters.

Definition at line 1879 of file JMathlib.hh.


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