Jpp 21.0.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JMATH::JXn< N > Struct Template Reference

Function object for x;. More...

#include <JMathlib.hh>

Inheritance diagram for JMATH::JXn< N >:
JMATH::JMathlib< JXn< N > > JMATH::JCalculus< JXn< N > >

Public Member Functions

 JXn ()
 Default constructor.
 
double getValue (const double x) const
 Function value.
 
double getDerivative (const double x) const
 Derivative value.
 
JXn getGradient (const double x) const
 Get gradient.
 
double operator() (const Args &...args) const
 Function value.
 
double operator[] (const size_t i) const
 Get value of parameter at given index.
 
double & operator[] (const size_t i)
 Get value of parameter at given index.
 
JXn< N > & negate ()
 Negate function.
 
JXn< N > & add (const JXn< N > &f1)
 Add function.
 
JXn< N > & sub (const JXn< N > &f1)
 Subtract function.
 
JXn< N > & mul (const double factor)
 Scale function.
 
JXn< N > & div (const double factor)
 Scale function.
 

Static Public Attributes

static constexpr parameter_list< JXn, 0 > parameters {}
 

Detailed Description

template<int N>
struct JMATH::JXn< N >

Function object for x;.

Fixed power of x.

Definition at line 1558 of file JMathlib.hh.

Constructor & Destructor Documentation

◆ JXn()

template<int N>
JMATH::JXn< N >::JXn ( )
inline

Default constructor.

Definition at line 1565 of file JMathlib.hh.

1566 {}

Member Function Documentation

◆ getValue()

template<int N>
double JMATH::JXn< N >::getValue ( const double x) const
inline

Function value.

Parameters
xabscissa value
Returns
function value

Definition at line 1575 of file JMathlib.hh.

1576 {
1577 return pow(x, N);
1578 }
T pow(const T &x, const double y)
Power .
Definition JMath.hh:97

◆ getDerivative()

template<int N>
double JMATH::JXn< N >::getDerivative ( const double x) const
inline

Derivative value.

Parameters
xabscissa value
Returns
derivative value

Definition at line 1587 of file JMathlib.hh.

1588 {
1589 return N * pow(x, N - 1);
1590 }

◆ getGradient()

template<int N>
JXn JMATH::JXn< N >::getGradient ( const double x) const
inline

Get gradient.

Parameters
xabscissa value
Returns
gradient

Definition at line 1599 of file JMathlib.hh.

1600 {
1601 JXn gradient;
1602
1603 return gradient;
1604 }
JXn()
Default constructor.
Definition JMathlib.hh:1565

◆ operator()()

double JMATH::JMathlib< JXn< N > >::operator() ( const Args &... args) const
inlineinherited

Function value.

Parameters
argsabscissa value(s)
Returns
function value

Definition at line 331 of file JMathlib.hh.

332 {
333 return static_cast<const JF1_t&>(*this).getValue(args...);
334 }

◆ operator[]() [1/2]

double JMATH::JMathlib< JXn< N > >::operator[] ( const size_t i) const
inlineinherited

Get value of parameter at given index.

Parameters
iindex
Returns
value

Definition at line 539 of file JMathlib.hh.

540 {
541 return static_cast<const JF1_t&>(*this).*JF1_t::parameters[i];
542 }

◆ operator[]() [2/2]

double & JMATH::JMathlib< JXn< N > >::operator[] ( const size_t i)
inlineinherited

Get value of parameter at given index.

Parameters
iindex
Returns
value

Definition at line 551 of file JMathlib.hh.

552 {
553 return static_cast<JF1_t&>(*this).*JF1_t::parameters[i];
554 }

◆ negate()

JXn< N > & JMATH::JCalculus< JXn< N > >::negate ( )
inlineinherited

Negate function.

Returns
this function

Definition at line 169 of file JMathlib.hh.

170 {
171 for (const auto& i : JF1_t::parameters) {
172 static_cast<JF1_t&>(*this).*i = -(static_cast<JF1_t&>(*this).*i);
173 }
174
175 return static_cast<JF1_t&>(*this);
176 }

◆ add()

JXn< N > & JMATH::JCalculus< JXn< N > >::add ( const JXn< N > & f1)
inlineinherited

Add function.

Parameters
f1function
Returns
this function

Definition at line 185 of file JMathlib.hh.

186 {
187 for (const auto& i : JF1_t::parameters) {
188 static_cast<JF1_t&>(*this).*i += f1.*i;
189 }
190
191 return static_cast<JF1_t&>(*this);
192 }

◆ sub()

JXn< N > & JMATH::JCalculus< JXn< N > >::sub ( const JXn< N > & f1)
inlineinherited

Subtract function.

Parameters
f1function
Returns
this function

Definition at line 201 of file JMathlib.hh.

202 {
203 for (const auto& i : JF1_t::parameters) {
204 static_cast<JF1_t&>(*this).*i -= f1.*i;
205 }
206
207 return static_cast<JF1_t&>(*this);
208 }

◆ mul()

JXn< N > & JMATH::JCalculus< JXn< N > >::mul ( const double factor)
inlineinherited

Scale function.

Parameters
factorfactor
Returns
this function

Definition at line 217 of file JMathlib.hh.

218 {
219 for (const auto& i : JF1_t::parameters) {
220 static_cast<JF1_t&>(*this).*i *= factor;
221 }
222
223 return static_cast<JF1_t&>(*this);
224 }

◆ div()

JXn< N > & JMATH::JCalculus< JXn< N > >::div ( const double factor)
inlineinherited

Scale function.

Parameters
factorfactor
Returns
this function

Definition at line 233 of file JMathlib.hh.

234 {
235 for (const auto& i : JF1_t::parameters) {
236 static_cast<JF1_t&>(*this).*i /= factor;
237 }
238
239 return static_cast<JF1_t&>(*this);
240 }

Member Data Documentation

◆ parameters

template<int N>
parameter_list<JXn, 0> JMATH::JXn< N >::parameters {}
staticconstexpr

Definition at line 1606 of file JMathlib.hh.

1606{};

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