ROOT 6.13/01 Reference Guide |
Classes | |
struct | Limits |
Functions | |
Double_t | ACos (Double_t) |
Double_t | ACosH (Double_t) |
Bool_t | AreEqualAbs (Double_t af, Double_t bf, Double_t epsilon) |
Bool_t | AreEqualRel (Double_t af, Double_t bf, Double_t relPrec) |
Double_t | ASin (Double_t) |
Double_t | ASinH (Double_t) |
Double_t | ATan (Double_t) |
Double_t | ATan2 (Double_t, Double_t) |
Double_t | ATanH (Double_t) |
Double_t | BesselI (Int_t n, Double_t x) |
Compute the Integer Order Modified Bessel function I_n(x) for n=0,1,2,... More... | |
Double_t | BesselI0 (Double_t x) |
integer order modified Bessel function K_n(x) More... | |
Double_t | BesselI1 (Double_t x) |
modified Bessel function K_0(x) More... | |
Double_t | BesselJ0 (Double_t x) |
modified Bessel function K_1(x) More... | |
Double_t | BesselJ1 (Double_t x) |
Bessel function J0(x) for any real x. More... | |
Double_t | BesselK (Int_t n, Double_t x) |
integer order modified Bessel function I_n(x) More... | |
Double_t | BesselK0 (Double_t x) |
modified Bessel function I_0(x) More... | |
Double_t | BesselK1 (Double_t x) |
modified Bessel function I_1(x) More... | |
Double_t | BesselY0 (Double_t x) |
Bessel function J1(x) for any real x. More... | |
Double_t | BesselY1 (Double_t x) |
Bessel function Y0(x) for positive x. More... | |
Double_t | Beta (Double_t p, Double_t q) |
Calculates Beta-function Gamma(p)*Gamma(q)/Gamma(p+q). More... | |
Double_t | BetaCf (Double_t x, Double_t a, Double_t b) |
Continued fraction evaluation by modified Lentz's method used in calculation of incomplete Beta function. More... | |
Double_t | BetaDist (Double_t x, Double_t p, Double_t q) |
Computes the probability density function of the Beta distribution (the distribution function is computed in BetaDistI). More... | |
Double_t | BetaDistI (Double_t x, Double_t p, Double_t q) |
Computes the distribution function of the Beta distribution. More... | |
Double_t | BetaIncomplete (Double_t x, Double_t a, Double_t b) |
Calculates the incomplete Beta-function. More... | |
template<typename T > | |
Long64_t | BinarySearch (Long64_t n, const T *array, T value) |
Binary search in an array of n values to locate value. More... | |
template<typename T > | |
Long64_t | BinarySearch (Long64_t n, const T **array, T value) |
Binary search in an array of n values to locate value. More... | |
template<typename Iterator , typename Element > | |
Iterator | BinarySearch (Iterator first, Iterator last, Element value) |
Binary search in an array defined by its iterators. More... | |
Double_t | Binomial (Int_t n, Int_t k) |
Calculate the binomial coefficient n over k. More... | |
Double_t | BinomialI (Double_t p, Int_t n, Int_t k) |
Suppose an event occurs with probability p per trial Then the probability P of its occurring k or more times in n trials is termed a cumulative binomial probability the formula is P = sum_from_j=k_to_n(TMath::Binomial(n, j)* *TMath::Power(p, j)*TMathPower(1-p, n-j) For n larger than 12 BetaIncomplete is a much better way to evaluate the sum than would be the straightforward sum calculation for n smaller than 12 either method is acceptable ("Numerical Recipes") –implementation by Anna Kreshuk. More... | |
Double_t | BreitWigner (Double_t x, Double_t mean=0, Double_t gamma=1) |
Calculate a Breit Wigner function with mean and gamma. More... | |
void | BubbleHigh (Int_t Narr, Double_t *arr1, Int_t *arr2) |
Bubble sort variant to obtain the order of an array's elements into an index in order to do more useful things than the standard built in functions. More... | |
void | BubbleLow (Int_t Narr, Double_t *arr1, Int_t *arr2) |
Opposite ordering of the array arr2[] to that of BubbleHigh. More... | |
constexpr Double_t | C () |
Velocity of light in \( m s^{-1} \). More... | |
Double_t | CauchyDist (Double_t x, Double_t t=0, Double_t s=1) |
Computes the density of Cauchy distribution at point x by default, standard Cauchy distribution is used (t=0, s=1) More... | |
constexpr Double_t | Ccgs () |
\( cm s^{-1} \) More... | |
Double_t | Ceil (Double_t x) |
Int_t | CeilNint (Double_t x) |
Double_t | ChisquareQuantile (Double_t p, Double_t ndf) |
Evaluate the quantiles of the chi-squared probability distribution function. More... | |
Double_t | Cos (Double_t) |
Double_t | CosH (Double_t) |
template<typename T > | |
T * | Cross (const T v1[3], const T v2[3], T out[3]) |
Calculate the Cross Product of two vectors: out = [v1 x v2]. More... | |
constexpr Double_t | CUncertainty () |
Speed of light uncertainty. More... | |
constexpr Double_t | DegToRad () |
Conversion from degree to radian: \[ \frac{\pi}{180} \] . More... | |
Double_t | DiLog (Double_t x) |
Modified Struve functions of order 1. More... | |
constexpr Double_t | E () |
Base of natural log: \[ e \] . More... | |
Double_t | Erf (Double_t x) |
Computation of the error function erf(x). More... | |
Double_t | Erfc (Double_t x) |
Compute the complementary error function erfc(x). More... | |
Double_t | ErfcInverse (Double_t x) |
returns the inverse of the complementary error function x must be 0<x<2 implement using the quantile of the normal distribution instead of ErfInverse for better numerical precision for large x More... | |
Double_t | ErfInverse (Double_t x) |
returns the inverse error function x must be <-1<x<1 More... | |
constexpr Double_t | EulerGamma () |
Euler-Mascheroni Constant. More... | |
Double_t | Exp (Double_t x) |
Double_t | Factorial (Int_t i) |
Compute factorial(n). More... | |
Double_t | FDist (Double_t F, Double_t N, Double_t M) |
Computes the density function of F-distribution (probability function, integral of density, is computed in FDistI). More... | |
Double_t | FDistI (Double_t F, Double_t N, Double_t M) |
Calculates the cumulative distribution function of F-distribution, this function occurs in the statistical test of whether two observed samples have the same variance. More... | |
Int_t | Finite (Double_t x) |
Check if it is finite with a mask in order to be consistent in presence of fast math. More... | |
Int_t | Finite (Float_t x) |
Check if it is finite with a mask in order to be consistent in presence of fast math. More... | |
Double_t | Floor (Double_t x) |
Int_t | FloorNint (Double_t x) |
Double_t | Freq (Double_t x) |
Computation of the normal frequency function freq(x). More... | |
constexpr Double_t | G () |
Gravitational constant in: \( m^{3} kg^{-1} s^{-2} \). More... | |
Double_t | GamCf (Double_t a, Double_t x) |
Computation of the incomplete gamma function P(a,x) via its continued fraction representation. More... | |
Double_t | Gamma (Double_t z) |
Computation of gamma(z) for all z. More... | |
Double_t | Gamma (Double_t a, Double_t x) |
Computation of the normalized lower incomplete gamma function P(a,x) as defined in the Handbook of Mathematical Functions by Abramowitz and Stegun, formula 6.5.1 on page 260 . More... | |
Double_t | GammaDist (Double_t x, Double_t gamma, Double_t mu=0, Double_t beta=1) |
Computes the density function of Gamma distribution at point x. More... | |
Double_t | GamSer (Double_t a, Double_t x) |
Computation of the incomplete gamma function P(a,x) via its series representation. More... | |
Double_t | Gaus (Double_t x, Double_t mean=0, Double_t sigma=1, Bool_t norm=kFALSE) |
Calculate a gaussian function with mean and sigma. More... | |
constexpr Double_t | Gcgs () |
\( cm^{3} g^{-1} s^{-2} \) More... | |
template<typename T > | |
Double_t | GeomMean (Long64_t n, const T *a) |
Return the geometric mean of an array a of size n. More... | |
template<typename Iterator > | |
Double_t | GeomMean (Iterator first, Iterator last) |
Return the geometric mean of an array defined by the iterators. More... | |
constexpr Double_t | GhbarC () |
\( \frac{G}{\hbar C} \) in \( (GeV/c^{2})^{-2} \) More... | |
constexpr Double_t | GhbarCUncertainty () |
\( \frac{G}{\hbar C} \) uncertainty. More... | |
constexpr Double_t | Gn () |
Standard acceleration of gravity in \( m s^{-2} \). More... | |
constexpr Double_t | GnUncertainty () |
Standard acceleration of gravity uncertainty. More... | |
constexpr Double_t | GUncertainty () |
Gravitational constant uncertainty. More... | |
constexpr Double_t | H () |
Planck's constant in \( J s \) \[ h \] . More... | |
ULong_t | Hash (const void *txt, Int_t ntxt) |
Calculates hash index from any char string. More... | |
ULong_t | Hash (const char *str) |
constexpr Double_t | Hbar () |
\( \hbar \) in \( J s \) \[ \hbar = \frac{h}{2\pi} \] More... | |
constexpr Double_t | Hbarcgs () |
\( erg s \) More... | |
constexpr Double_t | HbarUncertainty () |
\( \hbar \) uncertainty. More... | |
constexpr Double_t | HC () |
\( hc \) in \( J m \) More... | |
constexpr Double_t | HCcgs () |
\( erg cm \) More... | |
constexpr Double_t | Hcgs () |
\( erg s \) More... | |
constexpr Double_t | HUncertainty () |
Planck's constant uncertainty. More... | |
Double_t | Hypot (Double_t x, Double_t y) |
Long_t | Hypot (Long_t x, Long_t y) |
Double_t | Infinity () |
Returns an infinity as defined by the IEEE standard. More... | |
constexpr Double_t | InvPi () |
\( \frac{1.}{\pi}\) More... | |
template<typename T > | |
Bool_t | IsInside (T xp, T yp, Int_t np, T *x, T *y) |
Function which returns kTRUE if point xp,yp lies inside the polygon defined by the np points in arrays x and y, kFALSE otherwise. More... | |
Bool_t | IsNaN (Double_t x) |
Bool_t | IsNaN (Float_t x) |
constexpr Double_t | K () |
Boltzmann's constant in \( J K^{-1} \) \[ k \] . More... | |
constexpr Double_t | Kcgs () |
\( erg K^{-1} \) More... | |
Double_t | KolmogorovProb (Double_t z) |
Calculates the Kolmogorov distribution function,. More... | |
Double_t | KolmogorovTest (Int_t na, const Double_t *a, Int_t nb, const Double_t *b, Option_t *option) |
Statistical test whether two one-dimensional sets of points are compatible with coming from the same parent distribution, using the Kolmogorov test. More... | |
template<class Element , typename Size > | |
Element | KOrdStat (Size n, const Element *a, Size k, Size *work=0) |
Returns k_th order statistic of the array a of size n (k_th smallest element out of n elements). More... | |
constexpr Double_t | KUncertainty () |
Boltzmann's constant uncertainty. More... | |
Double_t | Landau (Double_t x, Double_t mpv=0, Double_t sigma=1, Bool_t norm=kFALSE) |
The LANDAU function. More... | |
Double_t | LandauI (Double_t x) |
Returns the value of the Landau distribution function at point x. More... | |
Double_t | LaplaceDist (Double_t x, Double_t alpha=0, Double_t beta=1) |
Computes the probability density function of Laplace distribution at point x, with location parameter alpha and shape parameter beta. More... | |
Double_t | LaplaceDistI (Double_t x, Double_t alpha=0, Double_t beta=1) |
Computes the distribution function of Laplace distribution at point x, with location parameter alpha and shape parameter beta. More... | |
Double_t | Ldexp (Double_t x, Int_t exp) |
constexpr Double_t | Ln10 () |
Natural log of 10 (to convert log to ln) More... | |
Double_t | LnGamma (Double_t z) |
Computation of ln[gamma(z)] for all z. More... | |
template<typename T > | |
Long64_t | LocMax (Long64_t n, const T *a) |
Return index of array with the maximum element. More... | |
template<typename Iterator > | |
Iterator | LocMax (Iterator first, Iterator last) |
Return index of array with the maximum element. More... | |
template<typename T > | |
Long64_t | LocMin (Long64_t n, const T *a) |
Return index of array with the minimum element. More... | |
template<typename Iterator > | |
Iterator | LocMin (Iterator first, Iterator last) |
Return index of array with the minimum element. More... | |
Double_t | Log (Double_t x) |
Double_t | Log10 (Double_t x) |
Double_t | Log2 (Double_t x) |
constexpr Double_t | LogE () |
Base-10 log of e (to convert ln to log) More... | |
Double_t | LogNormal (Double_t x, Double_t sigma, Double_t theta=0, Double_t m=1) |
Computes the density of LogNormal distribution at point x. More... | |
template<typename T > | |
T | MaxElement (Long64_t n, const T *a) |
Return maximum of array a of length n. More... | |
template<typename T > | |
Double_t | Mean (Long64_t n, const T *a, const Double_t *w=0) |
Return the weighted mean of an array a with length n. More... | |
template<typename Iterator > | |
Double_t | Mean (Iterator first, Iterator last) |
Return the weighted mean of an array defined by the iterators. More... | |
template<typename Iterator , typename WeightIterator > | |
Double_t | Mean (Iterator first, Iterator last, WeightIterator wfirst) |
Return the weighted mean of an array defined by the first and last iterators. More... | |
template<typename T > | |
Double_t | Median (Long64_t n, const T *a, const Double_t *w=0, Long64_t *work=0) |
Return the median of the array a where each entry i has weight w[i] . More... | |
template<typename T > | |
T | MinElement (Long64_t n, const T *a) |
Return minimum of array a of length n. More... | |
constexpr Double_t | MWair () |
Molecular weight of dry air 1976 US Standard Atmosphere in \( kg kmol^{-1} \) or \( gm mol^{-1} \) More... | |
constexpr Double_t | Na () |
Avogadro constant (Avogadro's Number) in \( mol^{-1} \). More... | |
constexpr Double_t | NaUncertainty () |
Avogadro constant (Avogadro's Number) uncertainty. More... | |
template<typename T > | |
Int_t | Nint (T x) |
Round to nearest integer. Rounds half integers to the nearest even integer. More... | |
template<typename T > | |
T * | Normal2Plane (const T v1[3], const T v2[3], const T v3[3], T normal[3]) |
Calculate a normal vector of a plane. More... | |
Float_t | Normalize (Float_t v[3]) |
Normalize a vector v in place. More... | |
Double_t | Normalize (Double_t v[3]) |
Normalize a vector v in place. More... | |
template<typename T > | |
T | NormCross (const T v1[3], const T v2[3], T out[3]) |
Calculate the Normalized Cross Product of two vectors. More... | |
Double_t | NormQuantile (Double_t p) |
Computes quantiles for standard normal distribution N(0, 1) at probability p. More... | |
Bool_t | Permute (Int_t n, Int_t *a) |
Simple recursive algorithm to find the permutations of n natural numbers, not necessarily all distinct adapted from CERNLIB routine PERMU. More... | |
constexpr Double_t | Pi () |
\[ \pi\] More... | |
constexpr Double_t | PiOver2 () |
\[ \frac{\pi}{2} \] More... | |
constexpr Double_t | PiOver4 () |
\[ \frac{\pi}{4} \] More... | |
Double_t | Poisson (Double_t x, Double_t par) |
Compute the Poisson distribution function for (x,par) The Poisson PDF is implemented by means of Euler's Gamma-function (for the factorial), so for any x integer argument it is correct. More... | |
Double_t | PoissonI (Double_t x, Double_t par) |
Compute the Poisson distribution function for (x,par) This is a non-smooth function. More... | |
LongDouble_t | Power (LongDouble_t x, LongDouble_t y) |
LongDouble_t | Power (LongDouble_t x, Long64_t y) |
LongDouble_t | Power (Long64_t x, Long64_t y) |
Double_t | Power (Double_t x, Double_t y) |
Double_t | Power (Double_t x, Int_t y) |
Double_t | Prob (Double_t chi2, Int_t ndf) |
Computation of the probability for a certain Chi-squared (chi2) and number of degrees of freedom (ndf). More... | |
constexpr Double_t | Qe () |
Elementary charge in \( C \) . More... | |
constexpr Double_t | QeUncertainty () |
Elementary charge uncertainty. More... | |
void | Quantiles (Int_t n, Int_t nprob, Double_t *x, Double_t *quantiles, Double_t *prob, Bool_t isSorted=kTRUE, Int_t *index=0, Int_t type=7) |
Computes sample quantiles, corresponding to the given probabilities. More... | |
Double_t | QuietNaN () |
Returns a quiet NaN as defined by IEEE 754 More... | |
constexpr Double_t | R () |
Universal gas constant ( \( Na K \)) in \( J K^{-1} mol^{-1} \) More... | |
constexpr Double_t | RadToDeg () |
Conversion from radian to degree: \[ \frac{180}{\pi} \] . More... | |
constexpr Double_t | Rgair () |
Dry Air Gas Constant (R / MWair) in \( J kg^{-1} K^{-1} \) More... | |
template<typename T > | |
Double_t | RMS (Long64_t n, const T *a, const Double_t *w=0) |
Return the Standard Deviation of an array a with length n. More... | |
template<typename Iterator > | |
Double_t | RMS (Iterator first, Iterator last) |
Return the Standard Deviation of an array defined by the iterators. More... | |
template<typename Iterator , typename WeightIterator > | |
Double_t | RMS (Iterator first, Iterator last, WeightIterator wfirst) |
Return the weighted Standard Deviation of an array defined by the iterators. More... | |
Bool_t | RootsCubic (const Double_t coef[4], Double_t &a, Double_t &b, Double_t &c) |
Calculates roots of polynomial of 3rd order a*x^3 + b*x^2 + c*x + d, where. More... | |
constexpr Double_t | RUncertainty () |
Universal gas constant uncertainty. More... | |
constexpr Double_t | Sigma () |
Stefan-Boltzmann constant in \( W m^{-2} K^{-4}\) \[ \sigma \] . More... | |
constexpr Double_t | SigmaUncertainty () |
Stefan-Boltzmann constant uncertainty. More... | |
Double_t | SignalingNaN () |
Returns a signaling NaN as defined by IEEE 754](http://en.wikipedia.org/wiki/NaN#Signaling_NaN) More... | |
Double_t | Sin (Double_t) |
Double_t | SinH (Double_t) |
template<typename Element , typename Index > | |
void | Sort (Index n, const Element *a, Index *index, Bool_t down=kTRUE) |
Sort the n elements of the array a of generic templated type Element. More... | |
template<typename Iterator , typename IndexIterator > | |
void | SortItr (Iterator first, Iterator last, IndexIterator index, Bool_t down=kTRUE) |
Sort the n1 elements of the Short_t array defined by its iterators. More... | |
Double_t | Sq (Double_t x) |
Double_t | Sqrt (Double_t x) |
constexpr Double_t | Sqrt2 () |
\[ \sqrt{2} \] More... | |
template<typename T > | |
Double_t | StdDev (Long64_t n, const T *a, const Double_t *w=0) |
template<typename Iterator > | |
Double_t | StdDev (Iterator first, Iterator last) |
template<typename Iterator , typename WeightIterator > | |
Double_t | StdDev (Iterator first, Iterator last, WeightIterator wfirst) |
Double_t | StruveH0 (Double_t x) |
Bessel function Y1(x) for positive x. More... | |
Double_t | StruveH1 (Double_t x) |
Struve functions of order 0. More... | |
Double_t | StruveL0 (Double_t x) |
Struve functions of order 1. More... | |
Double_t | StruveL1 (Double_t x) |
Modified Struve functions of order 0. More... | |
Double_t | Student (Double_t T, Double_t ndf) |
Computes density function for Student's t- distribution (the probability function (integral of density) is computed in StudentI). More... | |
Double_t | StudentI (Double_t T, Double_t ndf) |
Calculates the cumulative distribution function of Student's t-distribution second parameter stands for number of degrees of freedom, not for the number of samples if x has Student's t-distribution, the function returns the probability of x being less than T. More... | |
Double_t | StudentQuantile (Double_t p, Double_t ndf, Bool_t lower_tail=kTRUE) |
Computes quantiles of the Student's t-distribution 1st argument is the probability, at which the quantile is computed 2nd argument - the number of degrees of freedom of the Student distribution When the 3rd argument lower_tail is kTRUE (default)- the algorithm returns such x0, that. More... | |
Double_t | Tan (Double_t) |
Double_t | TanH (Double_t) |
constexpr Double_t | TwoPi () |
\[ 2\pi\] More... | |
Double_t | Vavilov (Double_t x, Double_t kappa, Double_t beta2) |
Returns the value of the Vavilov density function. More... | |
Double_t | VavilovDenEval (Double_t rlam, Double_t *AC, Double_t *HC, Int_t itype) |
Internal function, called by Vavilov and VavilovSet. More... | |
Double_t | VavilovI (Double_t x, Double_t kappa, Double_t beta2) |
Returns the value of the Vavilov distribution function. More... | |
void | VavilovSet (Double_t rkappa, Double_t beta2, Bool_t mode, Double_t *WCM, Double_t *AC, Double_t *HC, Int_t &itype, Int_t &npt) |
Internal function, called by Vavilov and VavilovI. More... | |
Double_t | Voigt (Double_t x, Double_t sigma, Double_t lg, Int_t r=4) |
Computation of Voigt function (normalised). More... | |
Encapsulate most frequently used Math functions. NB. The basic functions Min, Max, Abs and Sign are defined in TMathBase.
|
inline |
|
inline |
Double_t TMath::BesselI | ( | Int_t | n, |
Double_t | x | ||
) |
Double_t TMath::BesselI0 | ( | Double_t | x | ) |
Double_t TMath::BesselI1 | ( | Double_t | x | ) |
Double_t TMath::BesselJ0 | ( | Double_t | x | ) |
Double_t TMath::BesselJ1 | ( | Double_t | x | ) |
Double_t TMath::BesselK | ( | Int_t | n, |
Double_t | x | ||
) |
Double_t TMath::BesselK0 | ( | Double_t | x | ) |
Double_t TMath::BesselK1 | ( | Double_t | x | ) |
Double_t TMath::BesselY0 | ( | Double_t | x | ) |
Double_t TMath::BesselY1 | ( | Double_t | x | ) |
Double_t TMath::Beta | ( | Double_t | p, |
Double_t | q | ||
) |
Double_t TMath::BetaCf | ( | Double_t | x, |
Double_t | a, | ||
Double_t | b | ||
) |
Double_t TMath::BetaDist | ( | Double_t | x, |
Double_t | p, | ||
Double_t | q | ||
) |
Computes the probability density function of the Beta distribution (the distribution function is computed in BetaDistI).
The first argument is the point, where the function will be computed, second and third are the function parameters. Since the Beta distribution is bounded on both sides, it's often used to represent processes with natural lower and upper limits.
Double_t TMath::BetaDistI | ( | Double_t | x, |
Double_t | p, | ||
Double_t | q | ||
) |
Computes the distribution function of the Beta distribution.
The first argument is the point, where the function will be computed, second and third are the function parameters. Since the Beta distribution is bounded on both sides, it's often used to represent processes with natural lower and upper limits.
Double_t TMath::BetaIncomplete | ( | Double_t | x, |
Double_t | a, | ||
Double_t | b | ||
) |
Long64_t TMath::BinarySearch | ( | Long64_t | n, |
const T * | array, | ||
T | value | ||
) |
Long64_t TMath::BinarySearch | ( | Long64_t | n, |
const T ** | array, | ||
T | value | ||
) |
Iterator TMath::BinarySearch | ( | Iterator | first, |
Iterator | last, | ||
Element | value | ||
) |
Double_t TMath::Binomial | ( | Int_t | n, |
Int_t | k | ||
) |
Double_t TMath::BinomialI | ( | Double_t | p, |
Int_t | n, | ||
Int_t | k | ||
) |
Suppose an event occurs with probability p per trial Then the probability P of its occurring k or more times in n trials is termed a cumulative binomial probability the formula is P = sum_from_j=k_to_n(TMath::Binomial(n, j)* *TMath::Power(p, j)*TMathPower(1-p, n-j) For n larger than 12 BetaIncomplete is a much better way to evaluate the sum than would be the straightforward sum calculation for n smaller than 12 either method is acceptable ("Numerical Recipes") –implementation by Anna Kreshuk.
Double_t TMath::BreitWigner | ( | Double_t | x, |
Double_t | mean = 0 , |
||
Double_t | gamma = 1 |
||
) |
void TMath::BubbleHigh | ( | Int_t | Narr, |
Double_t * | arr1, | ||
Int_t * | arr2 | ||
) |
Bubble sort variant to obtain the order of an array's elements into an index in order to do more useful things than the standard built in functions.
[in] | *arr1 | is unchanged; |
[in] | *arr2 | is the array of indicies corresponding to the descending value of arr1 with arr2[0] corresponding to the largest arr1 value and arr2[Narr] the smallest. |
void TMath::BubbleLow | ( | Int_t | Narr, |
Double_t * | arr1, | ||
Int_t * | arr2 | ||
) |
constexpr Double_t TMath::C | ( | ) |
Double_t TMath::CauchyDist | ( | Double_t | x, |
Double_t | t = 0 , |
||
Double_t | s = 1 |
||
) |
Computes the density of Cauchy distribution at point x by default, standard Cauchy distribution is used (t=0, s=1)
The Cauchy distribution, also called Lorentzian distribution, is a continuous distribution describing resonance behavior The mean and standard deviation of the Cauchy distribution are undefined. The practical meaning of this is that collecting 1,000 data points gives no more accurate an estimate of the mean and standard deviation than does a single point. The formula was taken from "Engineering Statistics Handbook" on site http://www.itl.nist.gov/div898/handbook/eda/section3/eda3663.htm Implementation by Anna Kreshuk.
Example:
Double_t TMath::ChisquareQuantile | ( | Double_t | p, |
Double_t | ndf | ||
) |
Evaluate the quantiles of the chi-squared probability distribution function.
Algorithm AS 91 Appl. Statist. (1975) Vol.24, P.35 implemented by Anna Kreshuk. Incorporates the suggested changes in AS R85 (vol.40(1), pp.233-5, 1991)
[in] | p | the probability value, at which the quantile is computed |
[in] | ndf | number of degrees of freedom |
T * TMath::Cross | ( | const T | v1[3], |
const T | v2[3], | ||
T | out[3] | ||
) |
constexpr Double_t TMath::CUncertainty | ( | ) |
constexpr Double_t TMath::DegToRad | ( | ) |
Double_t TMath::DiLog | ( | Double_t | x | ) |
constexpr Double_t TMath::E | ( | ) |
Double_t TMath::Erf | ( | Double_t | x | ) |
Double_t TMath::Erfc | ( | Double_t | x | ) |
Double_t TMath::ErfcInverse | ( | Double_t | x | ) |
Double_t TMath::ErfInverse | ( | Double_t | x | ) |
constexpr Double_t TMath::EulerGamma | ( | ) |
Double_t TMath::Factorial | ( | Int_t | i | ) |
Double_t TMath::FDist | ( | Double_t | F, |
Double_t | N, | ||
Double_t | M | ||
) |
Computes the density function of F-distribution (probability function, integral of density, is computed in FDistI).
Parameters N and M stand for degrees of freedom of chi-squares mentioned above parameter F is the actual variable x of the density function p(x) and the point at which the density function is calculated.
F-distribution arises in testing whether two random samples have the same variance. It is the ratio of two chi-square distributions, with N and M degrees of freedom respectively, where each chi-square is first divided by it's number of degrees of freedom. Implementation by Anna Kreshuk.
Double_t TMath::FDistI | ( | Double_t | F, |
Double_t | N, | ||
Double_t | M | ||
) |
Calculates the cumulative distribution function of F-distribution, this function occurs in the statistical test of whether two observed samples have the same variance.
For this test a certain statistic F, the ratio of observed dispersion of the first sample to that of the second sample, is calculated. N and M stand for numbers of degrees of freedom in the samples 1-FDistI() is the significance level at which the hypothesis "1 has smaller variance than 2" can be rejected. A small numerical value of 1 - FDistI() implies a very significant rejection, in turn implying high confidence in the hypothesis "1 has variance greater than 2".
Implementation by Anna Kreshuk.
|
inline |
|
inline |
Double_t TMath::Freq | ( | Double_t | x | ) |
constexpr Double_t TMath::G | ( | ) |
Double_t TMath::GamCf | ( | Double_t | a, |
Double_t | x | ||
) |
Double_t TMath::Gamma | ( | Double_t | z | ) |
Double_t TMath::Gamma | ( | Double_t | a, |
Double_t | x | ||
) |
Computation of the normalized lower incomplete gamma function P(a,x) as defined in the Handbook of Mathematical Functions by Abramowitz and Stegun, formula 6.5.1 on page 260 .
Its normalization is such that TMath::Gamma(a,+infinity) = 1 .
\[ P(a, x) = \frac{1}{\Gamma(a)} \int_{0}^{x} t^{a-1} e^{-t} dt \]
Double_t TMath::GammaDist | ( | Double_t | x, |
Double_t | gamma, | ||
Double_t | mu = 0 , |
||
Double_t | beta = 1 |
||
) |
Computes the density function of Gamma distribution at point x.
[in] | gamma | shape parameter |
[in] | mu | location parameter |
[in] | beta | scale parameter |
The definition can be found in "Engineering Statistics Handbook" on site http://www.itl.nist.gov/div898/handbook/eda/section3/eda366b.htm use now implementation in ROOT::Math::gamma_pdf
Double_t TMath::GamSer | ( | Double_t | a, |
Double_t | x | ||
) |
Double_t TMath::Gaus | ( | Double_t | x, |
Double_t | mean = 0 , |
||
Double_t | sigma = 1 , |
||
Bool_t | norm = kFALSE |
||
) |
constexpr Double_t TMath::Gcgs | ( | ) |
Double_t TMath::GeomMean | ( | Long64_t | n, |
const T * | a | ||
) |
Double_t TMath::GeomMean | ( | Iterator | first, |
Iterator | last | ||
) |
constexpr Double_t TMath::GhbarC | ( | ) |
constexpr Double_t TMath::GhbarCUncertainty | ( | ) |
constexpr Double_t TMath::Gn | ( | ) |
constexpr Double_t TMath::GnUncertainty | ( | ) |
constexpr Double_t TMath::GUncertainty | ( | ) |
constexpr Double_t TMath::H | ( | ) |
ULong_t TMath::Hash | ( | const void * | txt, |
Int_t | ntxt | ||
) |
Calculates hash index from any char string.
Based on pre-calculated table of 256 specially selected numbers. These numbers are selected in such a way, that for string length == 4 (integer number) the hash is unambiguous, i.e. from hash value we can recalculate input (no degeneration).
The quality of hash method is good enough, that "random" numbers made as R = Hash(1), Hash(2), ...Hash(N) tested by <R>, <R*R>, <Ri*Ri+1> gives the same result as for libc rand().
V.PerevThis function is kept for back compatibility. The code previously in this function has been moved to the static function TString::Hash
constexpr Double_t TMath::Hbar | ( | ) |
constexpr Double_t TMath::HbarUncertainty | ( | ) |
constexpr Double_t TMath::HUncertainty | ( | ) |
|
inline |
Bool_t TMath::IsInside | ( | T | xp, |
T | yp, | ||
Int_t | np, | ||
T * | x, | ||
T * | y | ||
) |
constexpr Double_t TMath::K | ( | ) |
Double_t TMath::KolmogorovProb | ( | Double_t | z | ) |
Calculates the Kolmogorov distribution function,.
\[ P(z) = 2 \sum_{j=1}^{\infty} (-1)^{j-1} e^{-2 j^2 z^2} \]
which gives the probability that Kolmogorov's test statistic will exceed the value z assuming the null hypothesis. This gives a very powerful test for comparing two one-dimensional distributions. see, for example, Eadie et al, "statistical Methods in Experimental Physics', pp 269-270).
This function returns the confidence level for the null hypothesis, where:
NOTE: To compare two experimental distributions with m and n events, use \( z = \sqrt{m n/(m+n)) dn} \)
Accuracy: The function is far too accurate for any imaginable application. Probabilities less than \( 10^{-15} \) are returned as zero. However, remember that the formula is only valid for "large" n.
Theta function inversion formula is used for z <= 1
This function was translated by Rene Brun from PROBKL in CERNLIB.
Double_t TMath::KolmogorovTest | ( | Int_t | na, |
const Double_t * | a, | ||
Int_t | nb, | ||
const Double_t * | b, | ||
Option_t * | option | ||
) |
Statistical test whether two one-dimensional sets of points are compatible with coming from the same parent distribution, using the Kolmogorov test.
That is, it is used to compare two experimental distributions of unbinned data.
a,b: One-dimensional arrays of length na, nb, respectively. The elements of a and b must be given in ascending order. option is a character string to specify options "D" Put out a line of "Debug" printout "M" Return the Maximum Kolmogorov distance instead of prob
The returned value prob is a calculated confidence level which gives a statistical test for compatibility of a and b. Values of prob close to zero are taken as indicating a small probability of compatibility. For two point sets drawn randomly from the same parent distribution, the value of prob should be uniformly distributed between zero and one. in case of error the function return -1 If the 2 sets have a different number of points, the minimum of the two sets is used.
The Kolmogorov test is used. The test statistic is the maximum deviation between the two integrated distribution functions, multiplied by the normalizing factor (rdmax*sqrt(na*nb/(na+nb)).
Code adapted by Rene Brun from CERNLIB routine TKOLMO (Fred James) (W.T. Eadie, D. Drijard, F.E. James, M. Roos and B. Sadoulet, Statistical Methods in Experimental Physics, (North-Holland, Amsterdam 1971) 269-271)
The nuts-and-bolts of the TMath::KolmogorovTest() algorithm is a for-loop over the two sorted arrays a and b representing empirical distribution functions. The for-loop handles 3 cases: when the next points to be evaluated satisfy a>b, a<b, or a=b:
For the last case, a=b, the algorithm advances each array by one index in an attempt to move through the equality. However, this is incorrect when one or the other of a or b (or both) have a repeated value, call it x. For the KS statistic to be computed properly, rdiff needs to be calculated after all of the a and b at x have been tallied (this is due to the definition of the empirical distribution function; another way to convince yourself that the old CERNLIB method is wrong is that it implies that the function defined as the difference between a and b is multi-valued at x – besides being ugly, this would invalidate Kolmogorov's theorem).
The solution is to just add while-loops into the equality-case handling to perform the tally:
A good description of the Kolmogorov test can be seen at: http://www.itl.nist.gov/div898/handbook/eda/section3/eda35g.htm
Element TMath::KOrdStat | ( | Size | n, |
const Element * | a, | ||
Size | k, | ||
Size * | work = 0 |
||
) |
Returns k_th order statistic of the array a of size n (k_th smallest element out of n elements).
C-convention is used for array indexing, so if you want the second smallest element, call KOrdStat(n, a, 1).
If work is supplied, it is used to store the sorting index and assumed to be >= n. If work=0, local storage is used, either on the stack if n < kWorkMax or on the heap for n >= kWorkMax. Note that the work index array will not contain the sorted indices but all indices of the smaller element in arbitrary order in work[0,...,k-1] and all indices of the larger element in arbitrary order in work[k+1,..,n-1] work[k] will contain instead the index of the returned element.
Taken from "Numerical Recipes in C++" without the index array implemented by Anna Khreshuk.
See also the declarations at the top of this file
constexpr Double_t TMath::KUncertainty | ( | ) |
Double_t TMath::Landau | ( | Double_t | x, |
Double_t | mu = 0 , |
||
Double_t | sigma = 1 , |
||
Bool_t | norm = kFALSE |
||
) |
The LANDAU function.
mu is a location parameter and correspond approximately to the most probable value and sigma is a scale parameter (not the sigma of the full distribution which is not defined) Note that for mu=0 and sigma=1 (default values) the exact location of the maximum of the distribution (most proper value) is at x = -0.22278 This function has been adapted from the CERNLIB routine G110 denlan. If norm=kTRUE (default is kFALSE) the result is divided by sigma
Double_t TMath::LandauI | ( | Double_t | x | ) |
Double_t TMath::LaplaceDist | ( | Double_t | x, |
Double_t | alpha = 0 , |
||
Double_t | beta = 1 |
||
) |
Computes the probability density function of Laplace distribution at point x, with location parameter alpha and shape parameter beta.
By default, alpha=0, beta=1 This distribution is known under different names, most common is double exponential distribution, but it also appears as the two-tailed exponential or the bilateral exponential distribution
Double_t TMath::LaplaceDistI | ( | Double_t | x, |
Double_t | alpha = 0 , |
||
Double_t | beta = 1 |
||
) |
Computes the distribution function of Laplace distribution at point x, with location parameter alpha and shape parameter beta.
By default, alpha=0, beta=1 This distribution is known under different names, most common is double exponential distribution, but it also appears as the two-tailed exponential or the bilateral exponential distribution
constexpr Double_t TMath::Ln10 | ( | ) |
Double_t TMath::LnGamma | ( | Double_t | z | ) |
Long64_t TMath::LocMax | ( | Long64_t | n, |
const T * | a | ||
) |
Iterator TMath::LocMax | ( | Iterator | first, |
Iterator | last | ||
) |
Long64_t TMath::LocMin | ( | Long64_t | n, |
const T * | a | ||
) |
Return index of array with the minimum element.
If more than one element is minimum returns first found.
Implement here since this one is found to be faster (mainly on 64 bit machines) than stl generic implementation. When performing the comparison, the STL implementation needs to de-reference both the array iterator and the iterator pointing to the resulting minimum location
Iterator TMath::LocMin | ( | Iterator | first, |
Iterator | last | ||
) |
constexpr Double_t TMath::LogE | ( | ) |
Double_t TMath::LogNormal | ( | Double_t | x, |
Double_t | sigma, | ||
Double_t | theta = 0 , |
||
Double_t | m = 1 |
||
) |
Computes the density of LogNormal distribution at point x.
Variable X has lognormal distribution if Y=Ln(X) has normal distribution
[in] | sigma | is the shape parameter |
[in] | theta | is the location parameter |
[in] | m | is the scale parameter |
The formula was taken from "Engineering Statistics Handbook" on site http://www.itl.nist.gov/div898/handbook/eda/section3/eda3669.htm Implementation using ROOT::Math::lognormal_pdf
T TMath::MaxElement | ( | Long64_t | n, |
const T * | a | ||
) |
Double_t TMath::Mean | ( | Long64_t | n, |
const T * | a, | ||
const Double_t * | w = 0 |
||
) |
Double_t TMath::Mean | ( | Iterator | first, |
Iterator | last | ||
) |
Double_t TMath::Mean | ( | Iterator | first, |
Iterator | last, | ||
WeightIterator | w | ||
) |
Double_t TMath::Median | ( | Long64_t | n, |
const T * | a, | ||
const Double_t * | w = 0 , |
||
Long64_t * | work = 0 |
||
) |
Return the median of the array a where each entry i has weight w[i] .
Both arrays have a length of at least n . The median is a number obtained from the sorted array a through
median = (a[jl]+a[jh])/2. where (using also the sorted index on the array w)
sum_i=0,jl w[i] <= sumTot/2 sum_i=0,jh w[i] >= sumTot/2 sumTot = sum_i=0,n w[i]
If w=0, the algorithm defaults to the median definition where it is a number that divides the sorted sequence into 2 halves. When n is odd or n > 1000, the median is kth element k = (n + 1) / 2. when n is even and n < 1000the median is a mean of the elements k = n/2 and k = n/2 + 1.
If the weights are supplied (w not 0) all weights must be >= 0
If work is supplied, it is used to store the sorting index and assumed to be >= n . If work=0, local storage is used, either on the stack if n < kWorkMax or on the heap for n >= kWorkMax .
T TMath::MinElement | ( | Long64_t | n, |
const T * | a | ||
) |
constexpr Double_t TMath::MWair | ( | ) |
Molecular weight of dry air 1976 US Standard Atmosphere in \( kg kmol^{-1} \) or \( gm mol^{-1} \)
constexpr Double_t TMath::Na | ( | ) |
constexpr Double_t TMath::NaUncertainty | ( | ) |
|
inline |
T * TMath::Normal2Plane | ( | const T | p1[3], |
const T | p2[3], | ||
const T | p3[3], | ||
T | normal[3] | ||
) |
Float_t TMath::Normalize | ( | Float_t | v[3] | ) |
Double_t TMath::Normalize | ( | Double_t | v[3] | ) |
|
inline |
Double_t TMath::NormQuantile | ( | Double_t | p | ) |
Bool_t TMath::Permute | ( | Int_t | n, |
Int_t * | a | ||
) |
Simple recursive algorithm to find the permutations of n natural numbers, not necessarily all distinct adapted from CERNLIB routine PERMU.
The input array has to be initialised with a non descending sequence. The method returns kFALSE when all combinations are exhausted.
Double_t TMath::Poisson | ( | Double_t | x, |
Double_t | par | ||
) |
Compute the Poisson distribution function for (x,par) The Poisson PDF is implemented by means of Euler's Gamma-function (for the factorial), so for any x integer argument it is correct.
BUT for non-integer x values, it IS NOT equal to the Poisson distribution. see TMath::PoissonI to get a non-smooth function. Note that for large values of par, it is better to call
TMath::Gaus(x,par,sqrt(par),kTRUE)
Double_t TMath::PoissonI | ( | Double_t | x, |
Double_t | par | ||
) |
Compute the Poisson distribution function for (x,par) This is a non-smooth function.
This function is equivalent to ROOT::Math::poisson_pdf
|
inline |
|
inline |
Double_t TMath::Prob | ( | Double_t | chi2, |
Int_t | ndf | ||
) |
Computation of the probability for a certain Chi-squared (chi2) and number of degrees of freedom (ndf).
Calculations are based on the incomplete gamma function P(a,x), where a=ndf/2 and x=chi2/2.
P(a,x) represents the probability that the observed Chi-squared for a correct model should be less than the value chi2.
The returned probability corresponds to 1-P(a,x), which denotes the probability that an observed Chi-squared exceeds the value chi2 by chance, even for a correct model.
constexpr Double_t TMath::Qe | ( | ) |
constexpr Double_t TMath::QeUncertainty | ( | ) |
void TMath::Quantiles | ( | Int_t | n, |
Int_t | nprob, | ||
Double_t * | x, | ||
Double_t * | quantiles, | ||
Double_t * | prob, | ||
Bool_t | isSorted = kTRUE , |
||
Int_t * | index = 0 , |
||
Int_t | type = 7 |
||
) |
Computes sample quantiles, corresponding to the given probabilities.
[in] | x | the data sample |
[in] | n | its size |
[out] | quantiles | computed quantiles are returned in there |
[in] | prob | probabilities where to compute quantiles |
[in] | nprob | size of prob array |
[in] | isSorted | is the input array x sorted ? |
[in] | type | method to compute (from 1 to 9). |
When the input is not sorted, an array of integers of size n needs to be allocated. It can be passed by the user in parameter index, or, if not passed, it will be allocated inside the function
Piecewise linear continuous:
default type = 7
|
inline |
Returns a quiet NaN as defined by IEEE 754
constexpr Double_t TMath::R | ( | ) |
Universal gas constant ( \( Na K \)) in \( J K^{-1} mol^{-1} \)
constexpr Double_t TMath::RadToDeg | ( | ) |
constexpr Double_t TMath::Rgair | ( | ) |
Dry Air Gas Constant (R / MWair) in \( J kg^{-1} K^{-1} \)
Double_t TMath::RMS | ( | Long64_t | n, |
const T * | a, | ||
const Double_t * | w = 0 |
||
) |
Double_t TMath::RMS | ( | Iterator | first, |
Iterator | last | ||
) |
Return the Standard Deviation of an array defined by the iterators.
Note that this function returns the sigma(standard deviation) and not the root mean square of the array.
Use the two pass algorithm, which is slower (! a factor of 2) but much more precise. Since we have a vector the 2 pass algorithm is still faster than the Welford algorithm. (See also ROOT-5545)
Double_t TMath::RMS | ( | Iterator | first, |
Iterator | last, | ||
WeightIterator | w | ||
) |
Bool_t TMath::RootsCubic | ( | const Double_t | coef[4], |
Double_t & | a, | ||
Double_t & | b, | ||
Double_t & | c | ||
) |
Calculates roots of polynomial of 3rd order a*x^3 + b*x^2 + c*x + d, where.
coef[3] must be different from 0
If the boolean returned by the method is false: ==> there are 3 real roots a,b,c If the boolean returned by the method is true: ==> there is one real root a and 2 complex conjugates roots (b+i*c,b-i*c)
constexpr Double_t TMath::RUncertainty | ( | ) |
constexpr Double_t TMath::Sigma | ( | ) |
constexpr Double_t TMath::SigmaUncertainty | ( | ) |
|
inline |
Returns a signaling NaN as defined by IEEE 754](http://en.wikipedia.org/wiki/NaN#Signaling_NaN)
void TMath::Sort | ( | Index | n, |
const Element * | a, | ||
Index * | index, | ||
Bool_t | down = kTRUE |
||
) |
Sort the n elements of the array a of generic templated type Element.
In output the array index of type Index contains the indices of the sorted array. If down is false sort in increasing order (default is decreasing order).
NOTE that the array index must be created with a length >= n before calling this function. NOTE also that the size type for n must be the same type used for the index array (templated type Index)
void TMath::SortItr | ( | Iterator | first, |
Iterator | last, | ||
IndexIterator | index, | ||
Bool_t | down = kTRUE |
||
) |
Sort the n1 elements of the Short_t array defined by its iterators.
In output the array index contains the indices of the sorted array. If down is false sort in increasing order (default is decreasing order).
NOTE that the array index must be created with a length bigger or equal than the main array before calling this function.
Double_t TMath::StdDev | ( | Long64_t | n, |
const T * | a, | ||
const Double_t * | w = 0 |
||
) |
Double_t TMath::StdDev | ( | Iterator | first, |
Iterator | last | ||
) |
Double_t TMath::StdDev | ( | Iterator | first, |
Iterator | last, | ||
WeightIterator | wfirst | ||
) |
Double_t TMath::StruveH0 | ( | Double_t | x | ) |
Double_t TMath::StruveH1 | ( | Double_t | x | ) |
Double_t TMath::StruveL0 | ( | Double_t | x | ) |
Double_t TMath::StruveL1 | ( | Double_t | x | ) |
Double_t TMath::Student | ( | Double_t | T, |
Double_t | ndf | ||
) |
Computes density function for Student's t- distribution (the probability function (integral of density) is computed in StudentI).
First parameter stands for x - the actual variable of the density function p(x) and the point at which the density is calculated. Second parameter stands for number of degrees of freedom.
About Student distribution: Student's t-distribution is used for many significance tests, for example, for the Student's t-tests for the statistical significance of difference between two sample means and for confidence intervals for the difference between two population means.
Example: suppose we have a random sample of size n drawn from normal distribution with mean Mu and st.deviation Sigma. Then the variable
t = (sample_mean - Mu)/(sample_deviation / sqrt(n))
has Student's t-distribution with n-1 degrees of freedom.
NOTE that this function's second argument is number of degrees of freedom, not the sample size.
As the number of degrees of freedom grows, t-distribution approaches Normal(0,1) distribution.
Implementation by Anna Kreshuk.
Double_t TMath::StudentI | ( | Double_t | T, |
Double_t | ndf | ||
) |
Calculates the cumulative distribution function of Student's t-distribution second parameter stands for number of degrees of freedom, not for the number of samples if x has Student's t-distribution, the function returns the probability of x being less than T.
Implementation by Anna Kreshuk.
Double_t TMath::StudentQuantile | ( | Double_t | p, |
Double_t | ndf, | ||
Bool_t | lower_tail = kTRUE |
||
) |
Computes quantiles of the Student's t-distribution 1st argument is the probability, at which the quantile is computed 2nd argument - the number of degrees of freedom of the Student distribution When the 3rd argument lower_tail is kTRUE (default)- the algorithm returns such x0, that.
P(x < x0)=p
upper tail (lower_tail is kFALSE)- the algorithm returns such x0, that
P(x > x0)=p
the algorithm was taken from: G.W.Hill, "Algorithm 396, Student's t-quantiles" "Communications of the ACM", 13(10), October 1970
Double_t TMath::Vavilov | ( | Double_t | x, |
Double_t | kappa, | ||
Double_t | beta2 | ||
) |
Returns the value of the Vavilov density function.
[in] | x | the point were the density function is evaluated |
[in] | kappa | value of kappa (distribution parameter) |
[in] | beta2 | value of beta2 (distribution parameter) |
The algorithm was taken from the CernLib function vavden(G115) Reference: A.Rotondi and P.Montagna, Fast Calculation of Vavilov distribution Nucl.Instr. and Meth. B47(1990), 215-224
Accuracy: quote from the reference above:
"The results of our code have been compared with the values of the Vavilov density function computed numerically in an accurate way: our approximation shows a difference of less than 3% around the peak of the density function, slowly increasing going towards the extreme tails to the right and to the left"
Double_t TMath::VavilovDenEval | ( | Double_t | rlam, |
Double_t * | AC, | ||
Double_t * | HC, | ||
Int_t | itype | ||
) |
Double_t TMath::VavilovI | ( | Double_t | x, |
Double_t | kappa, | ||
Double_t | beta2 | ||
) |
Returns the value of the Vavilov distribution function.
[in] | x | the point were the density function is evaluated |
[in] | kappa | value of kappa (distribution parameter) |
[in] | beta2 | value of beta2 (distribution parameter) |
The algorithm was taken from the CernLib function vavden(G115)
Reference: A.Rotondi and P.Montagna, Fast Calculation of Vavilov distribution Nucl.Instr. and Meth. B47(1990), 215-224
Accuracy: quote from the reference above:
"The results of our code have been compared with the values of the Vavilov density function computed numerically in an accurate way: our approximation shows a difference of less than 3% around the peak of the density function, slowly increasing going towards the extreme tails to the right and to the left"
void TMath::VavilovSet | ( | Double_t | rkappa, |
Double_t | beta2, | ||
Bool_t | mode, | ||
Double_t * | WCM, | ||
Double_t * | AC, | ||
Double_t * | HC, | ||
Int_t & | itype, | ||
Int_t & | npt | ||
) |
Double_t TMath::Voigt | ( | Double_t | xx, |
Double_t | sigma, | ||
Double_t | lg, | ||
Int_t | r = 4 |
||
) |
Computation of Voigt function (normalised).
Voigt is a convolution of the two functions:
\[ gauss(xx) = \frac{1}{(\sqrt{2\pi} sigma)} e^{\frac{xx^{2}}{(2 sigma{^2})}} \]
and
\[ lorentz(xx) = \frac{ \frac{1}{\pi} \frac{lg}{2} }{ (xx^{2} + \frac{lg^{2}}{4}) } \]
The Voigt function is known to be the real part of Faddeeva function also called complex error function [2].
The algoritm was developed by J. Humlicek [1]. This code is based on fortran code presented by R. J. Wells [2]. Translated and adapted by Miha D. Puc
To calculate the Faddeeva function with relative error less than 10^(-r). r can be set by the the user subject to the constraints 2 <= r <= 5.