Jpp  19.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Attributes | List of all members
JMATH::JDiv< JF1_t, JF2_t > Struct Template Reference

forward declaration for multiplication of fuction. More...

#include <JMathlib.hh>

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

Public Member Functions

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

Static Public Attributes

static const parameter_list
< JPair
parameters
 parameters More...
 

Detailed Description

template<class JF1_t, class JF2_t = double>
struct JMATH::JDiv< JF1_t, JF2_t >

forward declaration for multiplication of fuction.

Division of two functions.

Definition at line 343 of file JMathlib.hh.

Constructor & Destructor Documentation

template<class JF1_t, class JF2_t = double>
JMATH::JDiv< JF1_t, JF2_t >::JDiv ( )
inline

Default constructor.

Definition at line 1217 of file JMathlib.hh.

1218  {}
template<class JF1_t, class JF2_t = double>
JMATH::JDiv< JF1_t, JF2_t >::JDiv ( const JF1_t &  f1,
const JF2_t &  f2 
)
inline

Constructor.

Parameters
f1first function
f2second function

Definition at line 1227 of file JMathlib.hh.

1227  :
1228  JPair<JF1_t, JF2_t>(f1, f2)
1229  {}
Auxiliary data structure for pair of functions.
Definition: JMathlib.hh:935
const JPolynome f1(1.0, 2.0, 3.0)
Function.

Member Function Documentation

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

Function value.

Parameters
argsabscissa value(s)
Returns
function value

Definition at line 1239 of file JMathlib.hh.

1240  {
1241  return (static_cast<const JF1_t&>(*this).getValue(args...) /
1242  static_cast<const JF2_t&>(*this).getValue(args...));
1243  }
template<class JF1_t, class JF2_t = double>
double JMATH::JDiv< JF1_t, JF2_t >::getDerivative ( const double  x) const
inline

Derivative value.

Parameters
xabscissa value
Returns
derivative value

Definition at line 1252 of file JMathlib.hh.

1253  {
1254  const double v = static_cast<const JF1_t&>(*this).getValue(x);
1255  const double w = static_cast<const JF2_t&>(*this).getValue(x);
1256 
1257  return (static_cast<const JF1_t&>(*this).getDerivative(x) * w -
1258  v * static_cast<const JF2_t&>(*this).getDerivative(x)) / (w*w);
1259  }
data_type w[N+1][M+1]
Definition: JPolint.hh:867
data_type v[N+1][M+1]
Definition: JPolint.hh:866
template<class JF1_t, class JF2_t = double>
template<class... Args>
const JDiv& JMATH::JDiv< JF1_t, JF2_t >::getGradient ( const Args &...  args) const
inline

Get gradient.

Parameters
argsabscissa value(s)
Returns
gradient

Definition at line 1269 of file JMathlib.hh.

1270  {
1271  static JDiv gradient;
1272 
1273  const double v = static_cast<const JF1_t&>(*this).getValue(args...);
1274  const double w = static_cast<const JF2_t&>(*this).getValue(args...);
1275 
1276  static_cast<JF1_t&>(gradient) = static_cast<const JF1_t&>(*this).getGradient(args...);
1277  static_cast<JF1_t&>(gradient) *= 1.0/w;
1278  static_cast<JF2_t&>(gradient) = static_cast<const JF2_t&>(*this).getGradient(args...);
1279  static_cast<JF2_t&>(gradient) *= -v/(w*w);
1280 
1281  return gradient;
1282  }
data_type w[N+1][M+1]
Definition: JPolint.hh:867
forward declaration for multiplication of fuction.
Definition: JMathlib.hh:343
data_type v[N+1][M+1]
Definition: JPolint.hh:866
double JMATH::JMathlib< JDiv< JF1_t, JF2_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  }
JPair< JF1_t, JF2_t > & JMATH::JCalculus< JPair< JF1_t, JF2_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  }
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
JPair< JF1_t, JF2_t > & JMATH::JCalculus< JPair< JF1_t, JF2_t > >::add ( const JPair< JF1_t, JF2_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  }
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
JPair< JF1_t, JF2_t > & JMATH::JCalculus< JPair< JF1_t, JF2_t > >::sub ( const JPair< JF1_t, JF2_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  }
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
JPair< JF1_t, JF2_t > & JMATH::JCalculus< JPair< JF1_t, JF2_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  }
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
JPair< JF1_t, JF2_t > & JMATH::JCalculus< JPair< JF1_t, JF2_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  }
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38

Member Data Documentation

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: