Jpp  18.0.0-rc.3
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 | 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...
 
JGauss_t getGradient (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_signal (const double u) const
 Get signal. More...
 

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 get_signal(u) + background;
227  }
double mean
Definition: JGauss.hh:161
double get_signal(const double u) const
Get signal.
Definition: JGauss.hh:284
double background
Definition: JGauss.hh:164
double sigma
Definition: JGauss.hh:162
double u[N+1]
Definition: JPolint.hh:776
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 get_signal(u) * -u;
241  }
double mean
Definition: JGauss.hh:161
double get_signal(const double u) const
Get signal.
Definition: JGauss.hh:284
double sigma
Definition: JGauss.hh:162
double u[N+1]
Definition: JPolint.hh:776
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
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  JGauss_t gradient;
265 
266  const double u = (x - mean) / sigma;
267  const double fs = get_signal(u);
268 
269  gradient.mean = fs * u / sigma; // d(f)/d(mean)
270  gradient.sigma = fs * u*u / sigma - fs / sigma; // d(f)/d(sigma)
271  gradient.signal = fs / signal; // d(f)/d(signal)
272  gradient.background = 1.0; // d(f)/d(background)
273 
274  return gradient;
275  }
double mean
Definition: JGauss.hh:161
double get_signal(const double u) const
Get signal.
Definition: JGauss.hh:284
Gauss model.
Definition: JGauss.hh:29
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:776
double JMATH::JGauss::get_signal ( const double  u) const
inlineprivate

Get signal.

Parameters
uvalue
Returns
signal

Definition at line 284 of file JGauss.hh.

285  {
286  return signal * exp(-0.5*u*u) / (sqrt(2.0*PI) * sigma);
287  }
static const double PI
Mathematical constants.
double signal
Definition: JGauss.hh:163
double sigma
Definition: JGauss.hh:162
double u[N+1]
Definition: JPolint.hh:776
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

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: