Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JMATH::JAdd< JF1_t, JF2_t > Struct Template Reference

forward declaration for negate of function. More...

#include <JMathlib.hh>

Inheritance diagram for JMATH::JAdd< JF1_t, JF2_t >:
JMATH::JMathlib< JAdd< JF1_t, JF2_t > > JMATH::JPair< JF1_t, JF2_t > JMATH::JCalculus< JPair< JF1_t, JF2_t > >

Public Member Functions

 JAdd ()
 Default constructor.
 
 JAdd (const JF1_t &f1, const JF2_t &f2)
 Constructor.
 
template<class ... Args>
double getValue (const Args &...args) const
 Function value.
 
double getDerivative (const double x) const
 Derivative value.
 
template<class ... Args>
const JAddgetGradient (const Args &...args) const
 Get gradient.
 
double operator() (const Args &...args) const
 Function value.
 
JF1_t & negate ()
 Negate function.
 
JF1_t & add (const JF1_t &f1)
 Add function.
 
JF1_t & sub (const JF1_t &f1)
 Subtract function.
 
JF1_t & mul (const double factor)
 Scale function.
 
JF1_t & div (const double factor)
 Scale function.
 

Static Public Attributes

static const parameter_list< JPairparameters
 parameters
 

Detailed Description

template<class JF1_t, class JF2_t>
struct JMATH::JAdd< JF1_t, JF2_t >

forward declaration for negate of function.

Addition of two functions.

Definition at line 979 of file JMathlib.hh.

Constructor & Destructor Documentation

◆ JAdd() [1/2]

template<class JF1_t , class JF2_t >
JMATH::JAdd< JF1_t, JF2_t >::JAdd ( )
inline

Default constructor.

Definition at line 989 of file JMathlib.hh.

990 {}

◆ JAdd() [2/2]

template<class JF1_t , class JF2_t >
JMATH::JAdd< JF1_t, JF2_t >::JAdd ( const JF1_t & f1,
const JF2_t & f2 )
inline

Constructor.

Parameters
f1first function
f2second function

Definition at line 999 of file JMathlib.hh.

999 :
1000 JPair<JF1_t, JF2_t>(f1, f2)
1001 {}
JPair()
Default constructor.
Definition JMathlib.hh:950

Member Function Documentation

◆ getValue()

template<class JF1_t , class JF2_t >
template<class ... Args>
double JMATH::JAdd< JF1_t, JF2_t >::getValue ( const Args &... args) const
inline

Function value.

Parameters
argsabscissa value(s)
Returns
function value

Definition at line 1011 of file JMathlib.hh.

1012 {
1013 return (static_cast<const JF1_t&>(*this).getValue(args...) +
1014 static_cast<const JF2_t&>(*this).getValue(args...));
1015 }

◆ getDerivative()

template<class JF1_t , class JF2_t >
double JMATH::JAdd< JF1_t, JF2_t >::getDerivative ( const double x) const
inline

Derivative value.

Parameters
xabscissa value
Returns
derivative value

Definition at line 1024 of file JMathlib.hh.

1025 {
1026 return (static_cast<const JF1_t&>(*this).getDerivative(x) +
1027 static_cast<const JF2_t&>(*this).getDerivative(x));
1028 }

◆ getGradient()

template<class JF1_t , class JF2_t >
template<class ... Args>
const JAdd & JMATH::JAdd< JF1_t, JF2_t >::getGradient ( const Args &... args) const
inline

Get gradient.

Parameters
argsabscissa value(s)
Returns
gradient

Definition at line 1038 of file JMathlib.hh.

1039 {
1040 static JAdd gradient;
1041
1042 static_cast<JF1_t&>(gradient) = static_cast<const JF1_t&>(*this).getGradient(args...);
1043 static_cast<JF2_t&>(gradient) = static_cast<const JF2_t&>(*this).getGradient(args...);
1044
1045 return gradient;
1046 }
JAdd()
Default constructor.
Definition JMathlib.hh:989

◆ operator()()

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 }

◆ negate()

JF1_t & JMATH::JCalculus< JF1_t >::negate ( )
inlineinherited

Negate function.

Returns
this function

Definition at line 203 of file JMathlib.hh.

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

◆ add()

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

Add function.

Parameters
f1function
Returns
this function

Definition at line 219 of file JMathlib.hh.

220 {
221 for (const auto& i : JF1_t::parameters) {
222 static_cast<JF1_t&>(*this).*i += f1.*i;
223 }
224
225 return static_cast<JF1_t&>(*this);
226 }
const JPolynome f1(1.0, 2.0, 3.0)
Function.

◆ sub()

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

Subtract function.

Parameters
f1function
Returns
this function

Definition at line 235 of file JMathlib.hh.

236 {
237 for (const auto& i : JF1_t::parameters) {
238 static_cast<JF1_t&>(*this).*i -= f1.*i;
239 }
240
241 return static_cast<JF1_t&>(*this);
242 }

◆ mul()

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

Scale function.

Parameters
factorfactor
Returns
this function

Definition at line 251 of file JMathlib.hh.

252 {
253 for (const auto& i : JF1_t::parameters) {
254 static_cast<JF1_t&>(*this).*i *= factor;
255 }
256
257 return static_cast<JF1_t&>(*this);
258 }

◆ div()

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

Scale function.

Parameters
factorfactor
Returns
this function

Definition at line 267 of file JMathlib.hh.

268 {
269 for (const auto& i : JF1_t::parameters) {
270 static_cast<JF1_t&>(*this).*i /= factor;
271 }
272
273 return static_cast<JF1_t&>(*this);
274 }

Member Data Documentation

◆ parameters

template<class JF1_t , class JF2_t >
const parameter_list< JPair< JF1_t, JF2_t > > JMATH::JPair< JF1_t, JF2_t >::parameters
staticinherited

parameters

Set parameters.

Definition at line 965 of file JMathlib.hh.


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