Jpp  18.2.0
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 | Private Member Functions | Private Attributes | List of all members
JMATH::JGauss Struct Reference

Gauss function object. More...

#include <JGauss.hh>

Inheritance diagram for JMATH::JGauss:
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

 JGauss ()
 Default constructor. More...
 
 JGauss (const JGauss_t &gauss)
 Copy constructor. More...
 
 JGauss (const double mean, const double sigma, const double signal=1.0, const double background=0.0)
 Constructor. More...
 
double getValue (const double x) const
 Function value. More...
 
double getDerivative (const double x) const
 Derivative value. More...
 
double operator() (const double x) const
 Function value. More...
 
const JGauss_tgetGradient (const double x) const
 Get gradient. More...
 
bool equals (const JGauss_t &gauss, const double eps=std::numeric_limits< double >::min()) const
 Equality. More...
 
JGauss_tadd (const JGauss_t &gauss)
 Add gauss. More...
 
JGauss_tsub (const JGauss_t &gauss)
 Subtract gauss. More...
 
JGauss_tmul (const double factor)
 Scale gauss. More...
 
JGauss_tmul (const JNullType &object)
 Multiply with object. More...
 

Public Attributes

double mean
 
double sigma
 
double signal
 
double background
 

Private Member Functions

double get (const double u) const
 Get ordinate value. More...
 

Private Attributes

JGauss_t gradient
 

Detailed Description

Gauss function object.

Evaluates function, derivative and gradient values.

Definition at line 173 of file JGauss.hh.

Member Typedef Documentation

typedef double JGauss::* JMATH::JGauss::parameter_type

Type definition of fit parameter.

Definition at line 179 of file JGauss.hh.

Constructor & Destructor Documentation

JMATH::JGauss::JGauss ( )
inline

Default constructor.

Definition at line 185 of file JGauss.hh.

185  :
186  JGauss_t()
187  {}
JGauss_t()
Default constructor.
Definition: JGauss.hh:36
JMATH::JGauss::JGauss ( const JGauss_t gauss)
inline

Copy constructor.

Parameters
gaussgauss

Definition at line 195 of file JGauss.hh.

195  :
196  JGauss_t(gauss)
197  {}
JGauss_t()
Default constructor.
Definition: JGauss.hh:36
JMATH::JGauss::JGauss ( const double  mean,
const double  sigma,
const double  signal = 1.0,
const double  background = 0.0 
)
inline

Constructor.

Parameters
meanmean
sigmasigma
signalsignal
backgroundbackground

Definition at line 208 of file JGauss.hh.

211  :
213  {}
double mean
Definition: JGauss.hh:161
JGauss_t()
Default constructor.
Definition: JGauss.hh:36
double signal
Definition: JGauss.hh:163
double background
Definition: JGauss.hh:164
double sigma
Definition: JGauss.hh:162

Member Function Documentation

double JMATH::JGauss::getValue ( const double  x) const
inline

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 sigma
Definition: JGauss.hh:162
double u[N+1]
Definition: JPolint.hh:821
double JMATH::JGauss::getDerivative ( const double  x) const
inline

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;
241  }
double mean
Definition: JGauss.hh:161
double signal
Definition: JGauss.hh:163
double sigma
Definition: JGauss.hh:162
double u[N+1]
Definition: JPolint.hh:821
double JMATH::JGauss::operator() ( const double  x) const
inline

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
const JGauss_t& JMATH::JGauss::getGradient ( const double  x) const
inline

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:823
double mean
Definition: JGauss.hh:161
JGauss_t gradient
Definition: JGauss.hh:289
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:821
double JMATH::JGauss::get ( const double  u) const
inlineprivate

Get ordinate value.

Parameters
uabscissa value
Returns
ordinate value

Definition at line 284 of file JGauss.hh.

285  {
286  return exp(-0.5*u*u) / (sqrt(2.0*PI) * sigma);
287  }
static const double PI
Mathematical constants.
double sigma
Definition: JGauss.hh:162
double u[N+1]
Definition: JPolint.hh:821
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
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
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_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_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  }

Member Data Documentation

JGauss_t JMATH::JGauss::gradient
mutableprivate

Definition at line 289 of file JGauss.hh.

double JMATH::JGauss_t::mean
inherited

Definition at line 161 of file JGauss.hh.

double JMATH::JGauss_t::sigma
inherited

Definition at line 162 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: