39   return 3.14159265358979323846;
 
   90   return 1.4142135623730950488016887242097;
 
   98   return 2.71828182845904523536;
 
  105   return 2.30258509299404568402;
 
  112   return 0.43429448190325182765;
 
  194   return 6.62607015e-34;
 
  218   return 1.054571817e-34;
 
  225   return 1.0e7 * 
Hbar();
 
  293   return 6.02214076e+23;
 
  334   return (1000.0 * 
R()) / 
MWair();
 
  341   return 0.577215664901532860606512090082402431042;
 
  348   return 1.602176634e-19;
 
  415   inline static T 
Min();
 
  416   inline static T 
Max();
 
  445   template <
typename Iterator> Iterator 
LocMin(Iterator 
first, Iterator last);
 
  447   template <
typename Iterator> Iterator 
LocMax(Iterator 
first, Iterator last);
 
  469   template <
typename T> T *
Cross(
const T 
v1[3],
const T 
v2[3], T out[3]);
 
  475   template <
typename T> 
inline T 
NormCross(
const T 
v1[3],
const T 
v2[3],T out[3]);
 
  478   template <
typename T> T *
Normal2Plane(
const T 
v1[3],
const T 
v2[3],
const T 
v3[3], T normal[3]);
 
  521   template <
typename Iterator, 
typename WeightIterator> 
Double_t Mean(Iterator 
first, Iterator last, WeightIterator wfirst);
 
  528   template <
typename Iterator, 
typename WeightIterator> 
Double_t RMS(Iterator 
first, Iterator last, WeightIterator wfirst);
 
  532   template <
typename Iterator, 
typename WeightIterator> 
Double_t StdDev(Iterator 
first, Iterator last, WeightIterator wfirst) { 
return RMS<Iterator,WeightIterator>(
first,last,wfirst); }
 
  537   template <
class Element, 
typename Size> Element 
KOrdStat(Size 
n, 
const Element *
a, Size k, Size *work = 0);
 
  582#if defined(R__WIN32) && !defined(__CINT__) 
  584#      define finite _finite 
  630   { 
if (
x != 0) 
return  atan2(
y, 
x);
 
  631     if (
y == 0) 
return  0;
 
  632     if (
y >  0) 
return  Pi()/2;
 
  668      if ( i & 1 && 
x + 0.5 == T(i) ) i--;
 
  671      if ( i & 1 && 
x - 0.5 == T(i) ) i++;
 
  682   { 
return ldexp(
x, exp); }
 
  686   { 
return std::pow(
x,
y); }
 
  694   { 
return std::pow(
x,
y); }
 
  698   { 
return pow(
x, 
y); }
 
  703   return std::pow(
x, 
y);
 
  722#if defined(R__FAST_MATH) 
  725   const unsigned long long mask = 0x7FF0000000000000LL;
 
  726   union { 
unsigned long long l; 
double d;} 
v;
 
  728   return (
v.l&mask)!=mask;
 
  731#  if defined(R__HPUX11) 
  732   { 
return isfinite(
x); }
 
  733#  elif defined(R__MACOSX) 
  736   { 
return isfinite(
x); }
 
  739   { 
return std::isfinite(
x); }
 
  742   { 
return finite(
x); }
 
  751#if defined(R__FAST_MATH) 
  754   const unsigned int mask =  0x7f800000;
 
  755   union { 
unsigned int l; 
float d;} 
v;
 
  757   return (
v.l&mask)!=mask;
 
  760{ 
return std::isfinite(
x); }
 
  768#if defined (R__FAST_MATH) 
  795   } ieee_double_shape_type;
 
  797#define EXTRACT_WORDS(ix0,ix1,d)                                    \ 
  799      ieee_double_shape_type ew_u;                                  \ 
  801      (ix0) = ew_u.parts.msw;                                       \ 
  802      (ix1) = ew_u.parts.lsw;                                       \ 
  809      EXTRACT_WORDS(hx, lx, 
x);
 
  813      return (hx == 0x7ff00000) && (lx != 0);
 
  819   } ieee_float_shape_type;
 
  821#define GET_FLOAT_WORD(i,d)                                         \ 
  823      ieee_float_shape_type gf_u;                                   \ 
  831      GET_FLOAT_WORD (wx, 
x);
 
  833      return (
Bool_t)(wx > 0x7f800000);
 
  838#if defined(R__FAST_MATH) 
  853   return std::numeric_limits<Double_t>::quiet_NaN();
 
  859   return std::numeric_limits<Double_t>::signaling_NaN();
 
  865   return std::numeric_limits<Double_t>::infinity();
 
  872   return (std::numeric_limits<T>::min)();    
 
  879   return (std::numeric_limits<T>::max)();  
 
  886   return std::numeric_limits<T>::epsilon();
 
  903   return *std::min_element(
a,
a+
n);
 
  910   return *std::max_element(
a,
a+
n);
 
  923   if  (
n <= 0 || !
a) 
return -1;
 
  938template <
typename Iterator>
 
  941   return std::min_element(
first, last);
 
  951   if  (
n <= 0 || !
a) 
return -1;
 
  966template <
typename Iterator>
 
  970   return std::max_element(
first, last);
 
  975template <
typename Iterator>
 
  980   while ( 
first != last )
 
  994template <
typename Iterator, 
typename WeightIterator>
 
 1001   while ( 
first != last ) {
 
 1003         ::Error(
"TMath::Mean",
"w[%d] = %.4e < 0 ?!",i,*w);
 
 1006      sum  += (*w) * (*first);
 
 1013      ::Error(
"TMath::Mean",
"sum of weights == 0 ?!");
 
 1022template <
typename T>
 
 1035template <
typename Iterator>
 
 1040   while ( 
first != last ) {
 
 1041      if (*
first == 0) 
return 0.;
 
 1054template <
typename T>
 
 1068template <
typename Iterator>
 
 1076   while ( 
first != last ) {
 
 1078      tot += (
x - mean)*(
x - mean);
 
 1092template <
typename Iterator, 
typename WeightIterator>
 
 1099   while ( 
first != last ) {
 
 1102      sumw2 += (*w) * (*w);
 
 1103      tot += (*w) * (
x - mean)*(
x - mean);
 
 1116template <
typename T>
 
 1127   out[0] = 
v1[1] * 
v2[2] - 
v1[2] * 
v2[1];
 
 1128   out[1] = 
v1[2] * 
v2[0] - 
v1[0] * 
v2[2];
 
 1129   out[2] = 
v1[0] * 
v2[1] - 
v1[1] * 
v2[0];
 
 1143   v1[0] = p2[0] - p1[0];
 
 1144   v1[1] = p2[1] - p1[1];
 
 1145   v1[2] = p2[2] - p1[2];
 
 1147   v2[0] = p3[0] - p1[0];
 
 1148   v2[1] = p3[1] - p1[1];
 
 1149   v2[2] = p3[2] - p1[2];
 
 1164   for (i=0; i<np; i++) {
 
 1165      if ((
y[i]<yp && 
y[j]>=yp) || (
y[j]<yp && 
y[i]>=yp)) {
 
 1166         if (
x[i]+(yp-
y[i])/(
y[j]-
y[i])*(
x[j]-
x[i])<xp) {
 
 1167            oddNodes = !oddNodes;
 
 1200   const Int_t kWorkMax = 100;
 
 1202   if (
n <= 0 || !
a) 
return 0;
 
 1213         isAllocated = 
kTRUE;
 
 1220      for (
Int_t j = 0; j < 
n; j++) {
 
 1222            ::Error(
"TMath::Median",
"w[%d] = %.4e < 0 ?!",j,w[j]);
 
 1223            if (isAllocated)  
delete [] ind;
 
 1235      for (jl = 0; jl < 
n; jl++) {
 
 1237         if (
sum >= sumTot2) 
break;
 
 1242      for (jh = 
n-1; jh >= 0; jh--) {
 
 1244         if (
sum <= sumTot2) 
break;
 
 1247      median = 0.5*(
a[ind[jl]]+
a[ind[jh]]);
 
 1282template <
class Element, 
typename Size>
 
 1286   const Int_t kWorkMax = 100;
 
 1291   Size i, ir, j, 
l, mid;
 
 1294   Index workLocal[kWorkMax];
 
 1302         isAllocated = 
kTRUE;
 
 1307   for (Size ii=0; ii<
n; ii++) {
 
 1315         if (ir == 
l+1 && 
a[ind[ir]]<
a[ind[
l]])
 
 1316            {temp = ind[
l]; ind[
l]=ind[ir]; ind[ir]=temp;}
 
 1317         Element tmp = 
a[ind[rk]];
 
 1323         {temp = ind[mid]; ind[mid]=ind[
l+1]; ind[
l+1]=temp;}
 
 1324         if (
a[ind[
l]]>
a[ind[ir]])  
 
 1325            {temp = ind[
l]; ind[
l]=ind[ir]; ind[ir]=temp;}
 
 1327         if (
a[ind[
l+1]]>
a[ind[ir]])
 
 1328            {temp=ind[
l+1]; ind[
l+1]=ind[ir]; ind[ir]=temp;}
 
 1330         if (
a[ind[
l]]>
a[ind[
l+1]])
 
 1331            {temp = ind[
l]; ind[
l]=ind[
l+1]; ind[
l+1]=temp;}
 
 1337            do i++; 
while (
a[ind[i]]<
a[arr]);
 
 1338            do j--; 
while (
a[ind[j]]>
a[arr]);
 
 1340               {temp=ind[i]; ind[i]=ind[j]; ind[j]=temp;}
 
 1344         if (j>=rk) ir = j-1; 
 
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
 
TGLVector3 Cross(const TGLVector3 &v1, const TGLVector3 &v2)
 
Namespace for new Math classes and functions.
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
 
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 statis...
 
Double_t GeomMean(Long64_t n, const T *a)
Return the geometric mean of an array a of size n.
 
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.
 
constexpr Double_t G()
Gravitational constant in: .
 
T * Normal2Plane(const T v1[3], const T v2[3], const T v3[3], T normal[3])
Calculate a normal vector of a plane.
 
Double_t DiLog(Double_t x)
Modified Struve functions of order 1.
 
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 comp...
 
Double_t BesselI(Int_t n, Double_t x)
Compute the Integer Order Modified Bessel function I_n(x) for n=0,1,2,... and any real x.
 
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).
 
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.
 
constexpr Double_t GUncertainty()
Gravitational constant uncertainty.
 
constexpr Double_t C()
Velocity of light in .
 
Double_t Factorial(Int_t i)
Compute factorial(n).
 
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 ...
 
constexpr Double_t GhbarCUncertainty()
uncertainty.
 
Long64_t LocMin(Long64_t n, const T *a)
Return index of array with the minimum element.
 
constexpr Double_t Ccgs()
 
constexpr Double_t SigmaUncertainty()
Stefan-Boltzmann constant uncertainty.
 
Int_t Nint(T x)
Round to nearest integer. Rounds half integers to the nearest even integer.
 
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 mor...
 
Double_t Vavilov(Double_t x, Double_t kappa, Double_t beta2)
Returns the value of the Vavilov density function.
 
Double_t Binomial(Int_t n, Int_t k)
Calculate the binomial coefficient n over k.
 
Float_t Normalize(Float_t v[3])
Normalize a vector v in place.
 
constexpr Double_t NaUncertainty()
Avogadro constant (Avogadro's Number) uncertainty.
 
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...
 
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 array...
 
Double_t Log2(Double_t x)
 
Double_t BesselK1(Double_t x)
modified Bessel function I_1(x)
 
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 usef...
 
Double_t BesselI1(Double_t x)
modified Bessel function K_0(x)
 
Double_t Erf(Double_t x)
Computation of the error function erf(x).
 
Bool_t Permute(Int_t n, Int_t *a)
Simple recursive algorithm to find the permutations of n natural numbers, not necessarily all distinc...
 
Double_t QuietNaN()
Returns a quiet NaN as defined by IEEE 754
 
Double_t Floor(Double_t x)
 
Double_t PoissonI(Double_t x, Double_t par)
Compute the Discrete Poisson distribution function for (x,par).
 
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 us...
 
Double_t StruveL1(Double_t x)
Modified Struve functions of order 0.
 
constexpr Double_t Gn()
Standard acceleration of gravity in .
 
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 ...
 
ULong_t Hash(const void *txt, Int_t ntxt)
Calculates hash index from any char string.
 
constexpr Double_t QeUncertainty()
Elementary charge uncertainty.
 
constexpr Double_t K()
Boltzmann's constant in .
 
Double_t BreitWigner(Double_t x, Double_t mean=0, Double_t gamma=1)
Calculate a Breit Wigner function with mean and gamma.
 
constexpr Double_t Sqrt2()
 
constexpr Double_t KUncertainty()
Boltzmann's constant uncertainty.
 
constexpr Double_t Hbarcgs()
 
Double_t Landau(Double_t x, Double_t mpv=0, Double_t sigma=1, Bool_t norm=kFALSE)
The LANDAU function.
 
Double_t Voigt(Double_t x, Double_t sigma, Double_t lg, Int_t r=4)
Computation of Voigt function (normalised).
 
Double_t Student(Double_t T, Double_t ndf)
Computes density function for Student's t- distribution (the probability function (integral of densit...
 
constexpr Double_t CUncertainty()
Speed of light uncertainty.
 
constexpr Double_t Qe()
Elementary charge in  .
 
Double_t Ceil(Double_t x)
 
constexpr Double_t PiOver2()
 
constexpr Double_t HCcgs()
 
T MinElement(Long64_t n, const T *a)
Return minimum of array a of length n.
 
Double_t BetaDistI(Double_t x, Double_t p, Double_t q)
Computes the distribution function of the Beta distribution.
 
T NormCross(const T v1[3], const T v2[3], T out[3])
Calculate the Normalized Cross Product of two vectors.
 
Int_t Finite(Double_t x)
Check if it is finite with a mask in order to be consistent in presence of fast math.
 
Int_t FloorNint(Double_t x)
 
Double_t BesselK0(Double_t x)
modified Bessel function I_0(x)
 
Double_t BesselY0(Double_t x)
Bessel function J1(x) for any real x.
 
Double_t ATan2(Double_t y, Double_t x)
 
constexpr Double_t RUncertainty()
Universal gas constant uncertainty.
 
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 funct...
 
Long64_t LocMax(Long64_t n, const T *a)
Return index of array with the maximum element.
 
Double_t ErfInverse(Double_t x)
returns the inverse error function x must be <-1<x<1
 
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...
 
constexpr Double_t E()
Base of natural log:
 
constexpr Double_t GnUncertainty()
Standard acceleration of gravity uncertainty.
 
constexpr Double_t Hcgs()
 
constexpr Double_t HUncertainty()
Planck's constant uncertainty.
 
constexpr Double_t DegToRad()
Conversion from degree to radian:
 
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.
 
Double_t Erfc(Double_t x)
Compute the complementary error function erfc(x).
 
Double_t VavilovI(Double_t x, Double_t kappa, Double_t beta2)
Returns the value of the Vavilov distribution function.
 
constexpr Double_t Sigma()
Stefan-Boltzmann constant in .
 
Double_t Beta(Double_t p, Double_t q)
Calculates Beta-function Gamma(p)*Gamma(q)/Gamma(p+q).
 
constexpr Double_t Kcgs()
 
Double_t Poisson(Double_t x, Double_t par)
Compute the Poisson distribution function for (x,par).
 
constexpr Double_t H()
Planck's constant in .
 
Double_t Sqrt(Double_t x)
 
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
 
Int_t CeilNint(Double_t x)
 
Double_t Ldexp(Double_t x, Int_t exp)
 
Double_t BesselJ0(Double_t x)
modified Bessel function K_1(x)
 
constexpr Double_t LogE()
Base-10 log of e (to convert ln to log)
 
Double_t Gamma(Double_t z)
Computation of gamma(z) for all z.
 
constexpr Double_t MWair()
Molecular weight of dry air 1976 US Standard Atmosphere in  or
 
constexpr Double_t Gcgs()
 
Double_t StruveL0(Double_t x)
Struve functions of order 1.
 
Double_t NormQuantile(Double_t p)
Computes quantiles for standard normal distribution N(0, 1) at probability p.
 
constexpr Double_t Ln10()
Natural log of 10 (to convert log to ln)
 
Double_t Hypot(Double_t x, Double_t y)
 
constexpr Double_t EulerGamma()
Euler-Mascheroni Constant.
 
constexpr Double_t PiOver4()
 
Double_t StruveH0(Double_t x)
Bessel function Y1(x) for positive x.
 
constexpr Double_t R()
Universal gas constant ( ) in
 
Double_t LnGamma(Double_t z)
Computation of ln[gamma(z)] for all z.
 
Bool_t AreEqualRel(Double_t af, Double_t bf, Double_t relPrec)
 
Bool_t AreEqualAbs(Double_t af, Double_t bf, Double_t epsilon)
 
Double_t KolmogorovProb(Double_t z)
Calculates the Kolmogorov distribution function,.
 
constexpr Double_t InvPi()
 
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.
 
Double_t ChisquareQuantile(Double_t p, Double_t ndf)
Evaluate the quantiles of the chi-squared probability distribution function.
 
Double_t FDist(Double_t F, Double_t N, Double_t M)
Computes the density function of F-distribution (probability function, integral of density,...
 
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.
 
Double_t SignalingNaN()
Returns a signaling NaN as defined by IEEE 754](http://en.wikipedia.org/wiki/NaN#Signaling_NaN)
 
void Sort(Index n, const Element *a, Index *index, Bool_t down=kTRUE)
 
T * Cross(const T v1[3], const T v2[3], T out[3])
Calculate the Cross Product of two vectors: out = [v1 x v2].
 
void BubbleLow(Int_t Narr, Double_t *arr1, Int_t *arr2)
Opposite ordering of the array arr2[] to that of BubbleHigh.
 
Double_t BesselK(Int_t n, Double_t x)
integer order modified Bessel function I_n(x)
 
constexpr Double_t Na()
Avogadro constant (Avogadro's Number) in .
 
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] .
 
T MaxElement(Long64_t n, const T *a)
Return maximum of array a of length n.
 
Double_t BesselJ1(Double_t x)
Bessel function J0(x) for any real x.
 
Double_t BetaIncomplete(Double_t x, Double_t a, Double_t b)
Calculates the incomplete Beta-function.
 
constexpr Double_t Rgair()
Dry Air Gas Constant (R / MWair) in
 
constexpr Double_t Hbar()
in
 
Double_t StruveH1(Double_t x)
Struve functions of order 0.
 
Double_t Freq(Double_t x)
Computation of the normal frequency function freq(x).
 
Double_t LandauI(Double_t x)
Returns the value of the Landau distribution function at point x.
 
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.
 
constexpr Double_t RadToDeg()
Conversion from radian to degree:
 
Double_t BesselI0(Double_t x)
integer order modified Bessel function K_n(x)
 
Double_t Log10(Double_t x)
 
Double_t StudentI(Double_t T, Double_t ndf)
Calculates the cumulative distribution function of Student's t-distribution second parameter stands f...
 
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,...
 
Double_t BesselY1(Double_t x)
Bessel function Y0(x) for positive x.
 
Double_t StdDev(Long64_t n, const T *a, const Double_t *w=0)
 
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.
 
constexpr Double_t GhbarC()
in
 
constexpr Double_t HC()
in
 
constexpr Double_t TwoPi()
 
constexpr Double_t HbarUncertainty()
uncertainty.
 
Double_t Infinity()
Returns an infinity as defined by the IEEE standard.
 
Double_t ErfcInverse(Double_t x)
returns the inverse of the complementary error function x must be 0<x<2 implement using the quantile ...
 
static T Min()
Returns maximum representation for type T.
 
static T Epsilon()
Returns minimum double representation.
 
static T Max()
Returns minimum double representation.
 
static uint64_t sum(uint64_t i)