Jpp  18.6.0-rc.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
JMATH::JGauss2D< ID_t, normalise > Struct Template Reference

2D correlated Gauss function. More...

#include <JMathlib2D.hh>

Inheritance diagram for JMATH::JGauss2D< ID_t, normalise >:
JMATH::JMathlib< JGauss2D< ID_t, normalise > > JMATH::JGauss< ID_t, normalise > JMATH::JMathlib< JGauss< ID_t > > JMATH::JCalculus< JGauss< ID_t > > JMATH::JGauss_t JMATH::JMath< JGauss_t > JLANG::JEquals< JFirst_t, JSecond_t >

Public Types

typedef double JGauss::* parameter_type
 Type definition of fit parameter. More...
 

Public Member Functions

 JGauss2D ()
 Default constructor. More...
 
 JGauss2D (const double mean, const double sigma)
 Constructor. More...
 
double getValue (const double x, const double y) const
 Function value. More...
 
const JGauss2DgetGradient (const double x, const double y) const
 Get gradient. More...
 
double operator() (const Args &...args) const
 Function value. More...
 
double getValue (const double x) const
 Function value. More...
 
double getDerivative (const double x) const
 Derivative value. More...
 
double getDerivative (const double x) const
 Derivative value. More...
 
double operator() (const double x) const
 Function value. More...
 
double operator() (const Args &...args) const
 Function value. More...
 
const JGauss_tgetGradient (const double x) const
 Get gradient. More...
 
JGauss< ID_t > & negate ()
 Negate function. More...
 
JGauss< ID_t > & add (const JGauss< ID_t > &f1)
 Add function. More...
 
JGauss_tadd (const JGauss_t &gauss)
 Add gauss. More...
 
JGauss< ID_t > & sub (const JGauss< ID_t > &f1)
 Subtract function. More...
 
JGauss_tsub (const JGauss_t &gauss)
 Subtract gauss. More...
 
JGauss< ID_t > & mul (const double factor)
 Scale function. More...
 
JGauss_tmul (const double factor)
 Scale gauss. More...
 
JGauss_tmul (const JNullType &object)
 Multiply with object. More...
 
JGauss< ID_t > & div (const double factor)
 Scale function. More...
 
bool equals (const JGauss_t &gauss, const double eps=std::numeric_limits< double >::min()) const
 Equality. More...
 

Public Attributes

double center
 center More...
 
double sigma
 sigma More...
 
double mean
 
double signal
 
double background
 

Static Public Attributes

static const int ID
 
static const parameter_list
< JGauss
parameters
 parameters More...
 

Detailed Description

template<int ID_t, bool normalise = false>
struct JMATH::JGauss2D< ID_t, normalise >

2D correlated Gauss function.

Definition at line 182 of file JMathlib2D.hh.

Member Typedef Documentation

typedef double JGauss::* JMATH::JGauss< ID_t, normalised >::parameter_type
inherited

Type definition of fit parameter.

Definition at line 179 of file JGauss.hh.

Constructor & Destructor Documentation

template<int ID_t, bool normalise = false>
JMATH::JGauss2D< ID_t, normalise >::JGauss2D ( )
inline

Default constructor.

Definition at line 192 of file JMathlib2D.hh.

193  {}
template<int ID_t, bool normalise = false>
JMATH::JGauss2D< ID_t, normalise >::JGauss2D ( const double  mean,
const double  sigma 
)
inline

Constructor.

Parameters
meanmean
sigmasigma

Definition at line 202 of file JMathlib2D.hh.

Member Function Documentation

template<int ID_t, bool normalise = false>
double JMATH::JGauss2D< ID_t, normalise >::getValue ( const double  x,
const double  y 
) const
inline

Function value.

Parameters
xabscissa value
yabscissa value
Returns
function value

Definition at line 215 of file JMathlib2D.hh.

216  {
218 
219  return (static_cast<const JGauss_t&>(*this).getValue(x) *
220  static_cast<const JGauss_t&>(*this).getValue(y));
221  }
JGauss_t()
Default constructor.
Definition: JGauss.hh:36
template<int ID_t, bool normalise = false>
const JGauss2D& JMATH::JGauss2D< ID_t, normalise >::getGradient ( const double  x,
const double  y 
) const
inline

Get gradient.

Parameters
xabscissa value
yabscissa value
Returns
gradient

Definition at line 231 of file JMathlib2D.hh.

232  {
233  static JGauss2D gradient;
234 
236 
237  static_cast<JGauss_t&>(gradient) = JGauss_t(static_cast<const JGauss_t&>(*this).getGradient(x)).mul(static_cast<const JGauss_t&>(*this).getValue(y));
238  static_cast<JGauss_t&>(gradient) += JGauss_t(static_cast<const JGauss_t&>(*this).getGradient(y)).mul(static_cast<const JGauss_t&>(*this).getValue(x));
239 
240  return gradient;
241  }
2D correlated Gauss function.
Definition: JMathlib2D.hh:182
JGauss_t & mul(const double factor)
Scale gauss.
Definition: JGauss.hh:120
JGauss_t()
Default constructor.
Definition: JGauss.hh:36
double JMATH::JMathlib< JGauss2D< ID_t, normalise > >::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  }
double JMATH::JGauss< ID_t, normalised >::getValue ( const double  x) const
inlineinherited

Function value.

Parameters
xabscissa value
Returns
function value

Definition at line 222 of file JGauss.hh.

223  {
224  const double u = (x - mean) / sigma;
225 
226  return signal * get(u) + background;
227  }
double mean
Definition: JGauss.hh:161
double signal
Definition: JGauss.hh:163
double background
Definition: JGauss.hh:164
double u[N+1]
Definition: JPolint.hh:865
double JMATH::JGauss< ID_t, normalised >::getDerivative ( const double  x) const
inlineinherited

Derivative value.

Parameters
xabscissa value
Returns
derivative value

Definition at line 236 of file JGauss.hh.

237  {
238  const double u = (x - mean) / sigma;
239 
240  return signal * get(u) * -u / sigma;
241  }
double mean
Definition: JGauss.hh:161
double signal
Definition: JGauss.hh:163
double u[N+1]
Definition: JPolint.hh:865
double JMATH::JGauss< ID_t, normalised >::getDerivative ( const double  x) const
inlineinherited

Derivative value.

Parameters
xabscissa value
Returns
derivative value

Definition at line 1635 of file JMathlib.hh.

1636  {
1637  const double w = 1.0 / sigma;
1638  const double u = (x - center) / sigma;
1639 
1640  return get(u) * -u * w;
1641  }
data_type w[N+1][M+1]
Definition: JPolint.hh:867
double u[N+1]
Definition: JPolint.hh:865
double JMATH::JGauss< ID_t, normalised >::operator() ( const double  x) const
inlineinherited

Function value.

Parameters
xabscissa value
Returns
function value

Definition at line 250 of file JGauss.hh.

251  {
252  return getValue(x);
253  }
double getValue(const double x) const
Function value.
Definition: JGauss.hh:222
double JMATH::JMathlib< JGauss< ID_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  }
const JGauss_t& JMATH::JGauss< ID_t, normalised >::getGradient ( const double  x) const
inlineinherited

Get gradient.

Parameters
xabscissa value
Returns
gradient

Definition at line 262 of file JGauss.hh.

263  {
264  const double w = 1.0 / sigma;
265  const double u = (x - mean) * w;
266  const double f0 = get(u);
267  const double fs = signal * f0;
268 
269  gradient.mean = fs * (u) * w; // d(f)/d(mean)
270  gradient.sigma = fs * (u + 1.0) * (u - 1.0) * w; // d(f)/d(sigma)
271  gradient.signal = f0; // d(f)/d(signal)
272  gradient.background = 1.0; // d(f)/d(background)
273 
274  return gradient;
275  }
data_type w[N+1][M+1]
Definition: JPolint.hh:867
double mean
Definition: JGauss.hh:161
double signal
Definition: JGauss.hh:163
double background
Definition: JGauss.hh:164
double sigma
Definition: JGauss.hh:162
double u[N+1]
Definition: JPolint.hh:865
JGauss< ID_t > & JMATH::JCalculus< JGauss< ID_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
JGauss< ID_t > & JMATH::JCalculus< JGauss< ID_t > >::add ( const JGauss< ID_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
JGauss_t& JMATH::JGauss_t::add ( const JGauss_t gauss)
inlineinherited

Add gauss.

Parameters
gaussgauss
Returns
this gauss

Definition at line 86 of file JGauss.hh.

87  {
88  mean += gauss.mean;
89  sigma += gauss.sigma;
90  signal += gauss.signal;
91  background += gauss.background;
92 
93  return *this;
94  }
double mean
Definition: JGauss.hh:161
double signal
Definition: JGauss.hh:163
double background
Definition: JGauss.hh:164
double sigma
Definition: JGauss.hh:162
JGauss< ID_t > & JMATH::JCalculus< JGauss< ID_t > >::sub ( const JGauss< ID_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
JGauss_t& JMATH::JGauss_t::sub ( const JGauss_t gauss)
inlineinherited

Subtract gauss.

Parameters
gaussgauss
Returns
this gauss

Definition at line 103 of file JGauss.hh.

104  {
105  mean -= gauss.mean;
106  sigma -= gauss.sigma;
107  signal -= gauss.signal;
108  background -= gauss.background;
109 
110  return *this;
111  }
double mean
Definition: JGauss.hh:161
double signal
Definition: JGauss.hh:163
double background
Definition: JGauss.hh:164
double sigma
Definition: JGauss.hh:162
JGauss< ID_t > & JMATH::JCalculus< JGauss< ID_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
JGauss_t& JMATH::JGauss_t::mul ( const double  factor)
inlineinherited

Scale gauss.

Parameters
factormultiplication factor
Returns
this gauss

Definition at line 120 of file JGauss.hh.

121  {
122  mean *= factor;
123  sigma *= factor;
124  signal *= factor;
125  background *= factor;
126 
127  return *this;
128  }
double mean
Definition: JGauss.hh:161
double signal
Definition: JGauss.hh:163
double background
Definition: JGauss.hh:164
double sigma
Definition: JGauss.hh:162
JGauss_t & JMATH::JMath< JGauss_t , JNullType >::mul ( const JNullType object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 354 of file JMath.hh.

355  {
356  return static_cast<JFirst_t&>(*this) = JFirst_t().mul(static_cast<const JFirst_t&>(*this), object);
357  }
JGauss< ID_t > & JMATH::JCalculus< JGauss< ID_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
bool JMATH::JGauss_t::equals ( const JGauss_t gauss,
const double  eps = std::numeric_limits<double>::min() 
) const
inlineinherited

Equality.

Parameters
gaussgauss
epsnumerical precision
Returns
true if gauss's identical; else false

Definition at line 70 of file JGauss.hh.

72  {
73  return (fabs(mean - gauss.mean) <= eps &&
74  fabs(sigma - gauss.sigma) <= eps &&
75  fabs(signal - gauss.signal) <= eps &&
76  fabs(background - gauss.background) <= eps);
77  }
double mean
Definition: JGauss.hh:161
double signal
Definition: JGauss.hh:163
double background
Definition: JGauss.hh:164
double sigma
Definition: JGauss.hh:162

Member Data Documentation

const int JMATH::JGauss< ID_t, normalised >::ID
staticinherited

Definition at line 1590 of file JMathlib.hh.

double JMATH::JGauss< ID_t, normalised >::center
inherited

center

Definition at line 1664 of file JMathlib.hh.

double JMATH::JGauss< ID_t, normalised >::sigma
inherited

sigma

Definition at line 1665 of file JMathlib.hh.

const parameter_list<JGauss> JMATH::JGauss< ID_t, normalised >::parameters
staticinherited

parameters

Set parameters.

Definition at line 1666 of file JMathlib.hh.

double JMATH::JGauss_t::mean
inherited

Definition at line 161 of file JGauss.hh.

double JMATH::JGauss_t::signal
inherited

Definition at line 163 of file JGauss.hh.

double JMATH::JGauss_t::background
inherited

Definition at line 164 of file JGauss.hh.


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