35 #if !defined(R__SOLARIS) && !defined(R__ACC) && !defined(R__FBSD) 67 if(x==0.0)
return 0.0;
69 return log(x+ax*
sqrt(1.+1./(ax*ax)));
80 if(x==0.0)
return 0.0;
82 return log(x+ax*
sqrt(1.-1./(ax*ax)));
93 return log((1+x)/(1-x))/2;
118 const Double_t c[20] = {0.42996693560813697, 0.40975987533077105,
119 -0.01858843665014592, 0.00145751084062268,-0.00014304184442340,
120 0.00001588415541880,-0.00000190784959387, 0.00000024195180854,
121 -0.00000003193341274, 0.00000000434545063,-0.00000000060578480,
122 0.00000000008612098,-0.00000000001244332, 0.00000000000182256,
123 -0.00000000000027007, 0.00000000000004042,-0.00000000000000610,
124 0.00000000000000093,-0.00000000000000014, 0.00000000000000002};
127 t=h=y=s=a=alfa=b1=b2=b0=0.;
131 }
else if (x == -1) {
140 a = -pi3+hf*(b1*b1-b2*b2);
146 }
else if (t <= -0.5) {
170 for (
Int_t i=19;i>=0;i--){
171 b0 = c[i] + alfa*b1-b2;
175 h = -(s*(b0-h*b2)+a);
207 Double_t kConst = 0.8862269254527579;
212 Double_t erfi, derfi, y0,y1,dy0,dy1;
217 for (
Int_t iter=0; iter<kMaxit; iter++) {
220 if (TMath::Abs(dy1) < kEps) {
if (x < 0)
return -erfi;
else return erfi;}
225 if(TMath::Abs(derfi/erfi) < kEps) {
if (x < 0)
return -erfi;
else return erfi;}
249 if (n <= 0)
return 1.;
268 const Double_t w2 = 1.41421356237309505;
270 const Double_t p10 = 2.4266795523053175e+2, q10 = 2.1505887586986120e+2,
271 p11 = 2.1979261618294152e+1, q11 = 9.1164905404514901e+1,
272 p12 = 6.9963834886191355e+0, q12 = 1.5082797630407787e+1,
273 p13 =-3.5609843701815385e-2, q13 = 1;
275 const Double_t p20 = 3.00459261020161601e+2, q20 = 3.00459260956983293e+2,
276 p21 = 4.51918953711872942e+2, q21 = 7.90950925327898027e+2,
277 p22 = 3.39320816734343687e+2, q22 = 9.31354094850609621e+2,
278 p23 = 1.52989285046940404e+2, q23 = 6.38980264465631167e+2,
279 p24 = 4.31622272220567353e+1, q24 = 2.77585444743987643e+2,
280 p25 = 7.21175825088309366e+0, q25 = 7.70001529352294730e+1,
281 p26 = 5.64195517478973971e-1, q26 = 1.27827273196294235e+1,
282 p27 =-1.36864857382716707e-7, q27 = 1;
284 const Double_t p30 =-2.99610707703542174e-3, q30 = 1.06209230528467918e-2,
285 p31 =-4.94730910623250734e-2, q31 = 1.91308926107829841e-1,
286 p32 =-2.26956593539686930e-1, q32 = 1.05167510706793207e+0,
287 p33 =-2.78661308609647788e-1, q33 = 1.98733201817135256e+0,
288 p34 =-2.23192459734184686e-2, q34 = 1;
339 if (x > 0)
return 0.5 +0.5*
h;
381 if (a <= 0 || x <= 0)
return 0;
389 for (
Int_t i=1; i<=itmax; i++) {
393 if (
Abs(d) < fpmin) d = fpmin;
395 if (
Abs(c) < fpmin) c = fpmin;
399 if (
Abs(del-1) < eps)
break;
417 if (a <= 0 || x <= 0)
return 0;
439 Double_t bw = gamma/((x-mean)*(x-mean) + gamma*gamma/4);
450 if (sigma == 0)
return 1.e30;
453 if (arg < -39.0 || arg > 39.0)
return 0.0;
455 if (!norm)
return res;
456 return res/(2.50662827463100024*
sigma);
471 if (sigma <= 0)
return 0;
473 if (!norm)
return den;
520 if( av0 >= av1 && av0 >= av2 ) {
526 else if (av1 >= av0 && av1 >= av2) {
541 Double_t foofrac = foo/amax, barfrac = bar/amax;
542 Double_t d = amax *
Sqrt(1.+foofrac*foofrac+barfrac*barfrac);
576 return Exp(lnpoisson);
623 if (ndf <= 0)
return 0;
626 if (chi2 < 0)
return 0;
676 }
else if (u < 0.755) {
679 }
else if (u < 6.8116) {
685 for (
Int_t j=0; j<maxj;j++) {
688 p = 2*(
r[0] -
r[1] +
r[2] -
r[3]);
798 if (!a || !b || na <= 2 || nb <= 2) {
799 Error(
"KolmogorovTest",
"Sets must have more than 2 points");
815 for (
Int_t i=0;i<na+nb;i++) {
819 if (ia >= na) {ok =
kTRUE;
break;}
820 }
else if (a[ia] > b[ib]) {
823 if (ib >= nb) {ok =
kTRUE;
break;}
827 while(ia < na && a[ia] == x) {
831 while(ib < nb && b[ib] == x) {
835 if (ia >= na) {ok =
kTRUE;
break;}
836 if (ib >= nb) {ok =
kTRUE;
break;}
850 printf(
" Kolmogorov Probability = %g, Max Dist = %g\n",prob,rdmax);
884 if ((sigma < 0 || lg < 0) || (sigma==0 && lg==0)) {
889 return lg * 0.159154943 / (xx*xx + lg*lg /4);
893 return 0.39894228 / sigma *
TMath::Exp(-xx*xx / (2*sigma*sigma));
897 x = xx / sigma / 1.41421356;
898 y = lg / 2 / sigma / 1.41421356;
917 Double_t c[6] = { 1.0117281, -0.75197147, 0.012557727, 0.010022008, -0.00024206814, 0.00000050084806};
918 Double_t s[6] = { 1.393237, 0.23115241, -0.15535147, 0.0062183662, 0.000091908299, -0.00000062752596};
919 Double_t t[6] = { 0.31424038, 0.94778839, 1.5976826, 2.2795071, 3.0206370, 3.8897249};
926 Double_t xlim0, xlim1, xlim2, xlim3, xlim4;
927 Double_t a0=0, d0=0, d2=0, e0=0, e2=0, e4=0, h0=0, h2=0, h4=0, h6=0;
928 Double_t p0=0,
p2=0, p4=0, p6=0, p8=0, z0=0, z2=0, z4=0, z6=0, z8=0;
929 Double_t xp[6], xm[6], yp[6], ym[6];
930 Double_t mq[6], pq[6], mf[6], pf[6];
945 xlim3 = 3.097 * y - 0.45;
947 xlim4 = 18.1 * y + 1.65;
956 k = yrrtpi / (xq + yq);
957 }
else if ( abx > xlim1 ) {
964 d = rrtpi / (d0 + xq*(d2 + xq));
965 k = d * y * (a0 + xq);
966 }
else if ( abx > xlim2 ) {
969 h0 = 0.5625 + yq * (4.5 + yq * (10.5 + yq * (6.0 + yq)));
971 h2 = -4.5 + yq * (9.0 + yq * ( 6.0 + yq * 4.0));
972 h4 = 10.5 - yq * (6.0 - yq * 6.0);
973 h6 = -6.0 + yq * 4.0;
974 e0 = 1.875 + yq * (8.25 + yq * (5.5 + yq));
975 e2 = 5.25 + yq * (1.0 + yq * 3.0);
978 d = rrtpi / (h0 + xq * (h2 + xq * (h4 + xq * (h6 + xq))));
979 k = d * y * (e0 + xq * (e2 + xq * (e4 + xq)));
980 }
else if ( abx < xlim3 ) {
983 z0 = 272.1014 + y * (1280.829 + y *
993 z2 = 211.678 + y * (902.3066 + y *
1001 z4 = 78.86585 + y * (308.1852 + y *
1005 (80.39278 + y * 10.0)
1007 z6 = 22.03523 + y * (55.02933 + y *
1009 (53.59518 + y * 10.0)
1011 z8 = 1.496460 + y * (13.39880 + y * 5.0);
1012 p0 = 153.5168 + y * (549.3954 + y *
1019 (4.264678 + y * 0.3183291)
1021 p2 = -34.16955 + y * (-1.322256+ y *
1026 (12.79458 + y * 1.2733163)
1028 p4 = 2.584042 + y * (10.46332 + y *
1031 (12.79568 + y * 1.9099744)
1033 p6 = -0.07272979 + y * (0.9377051 + y *
1034 (4.266322 + y * 1.273316));
1035 p8 = 0.0005480304 + y * 0.3183291;
1037 d = 1.7724538 / (z0 + xq * (z2 + xq * (z4 + xq * (z6 + xq * (z8 + xq)))));
1038 k = d * (p0 + xq * (
p2 + xq * (p4 + xq * (p6 + xq * p8))));
1041 ypy0q = ypy0 * ypy0;
1043 for (j = 0; j <= 5; j++) {
1046 mf[j] = 1.0 / (mq[j] + ypy0q);
1048 ym[j] = mf[j] * ypy0;
1051 pf[j] = 1.0 / (pq[j] + ypy0q);
1053 yp[j] = pf[j] * ypy0;
1055 if ( abx <= xlim4 ) {
1056 for (j = 0; j <= 5; j++) {
1057 k = k + c[j]*(ym[j]+yp[j]) - s[j]*(xm[j]-xp[j]) ;
1061 for ( j = 0; j <= 5; j++) {
1063 (mq[j] * mf[j] - y0 * ym[j])
1064 + s[j] * yf * xm[j]) / (mq[j]+y0q)
1065 + (c[j] * (pq[j] * pf[j] - y0 * yp[j])
1066 - s[j] * yf * xp[j]) / (pq[j]+y0q);
1068 k = y * k +
exp( -xq );
1071 return k / 2.506628 /
sigma;
1094 Double_t r,
s,t,p,
q,
d,ps3,ps33,qs2,u,
v,tmp,lnu,lnv,su,sv,y1,y2,y3;
1098 if (coef[3] == 0)
return complex;
1099 r = coef[2]/coef[3];
1100 s = coef[1]/coef[3];
1101 t = coef[0]/coef[3];
1104 q = (2*r*r*
r)/27.0 - (r*s)/3 + t;
1193 if (type<1 || type>9){
1194 printf(
"illegal value of type\n");
1200 if (index) ind = index;
1203 isAllocated =
kTRUE;
1212 for (
Int_t i=0; i<nprob; i++){
1222 nppm = n*prob[i]-0.5;
1246 if (type == 4) { a = 0; b = 1; }
1247 else if (type == 5) { a = 0.5; b = 0.5; }
1248 else if (type == 6) { a = 0.; b = 0.; }
1249 else if (type == 7) { a = 1.; b = 1.; }
1250 else if (type == 8) { a = 1./3.; b =
a; }
1251 else if (type == 9) { a = 3./8.; b =
a; }
1255 nppm = a + prob[i] * ( n + 1 -a -
b);
1258 if (gamma < eps) gamma = 0;
1263 int first = (j > 0 && j <=
n) ? j-1 : ( j <=0 ) ? 0 : n-1;
1264 int second = (j > 0 && j <
n) ? j : ( j <=0 ) ? 0 : n-1;
1274 quantiles[i] = (1-
gamma)*xj + gamma*xjj;
1298 if (Narr <= 0)
return;
1299 double *localArr1 =
new double[Narr];
1300 int *localArr2 =
new int[Narr];
1304 for(iEl = 0; iEl < Narr; iEl++) {
1305 localArr1[iEl] = arr1[iEl];
1306 localArr2[iEl] = iEl;
1309 for (iEl = 0; iEl < Narr; iEl++) {
1310 for (iEl2 = Narr-1; iEl2 > iEl; --iEl2) {
1311 if (localArr1[iEl2-1] < localArr1[iEl2]) {
1312 double tmp = localArr1[iEl2-1];
1313 localArr1[iEl2-1] = localArr1[iEl2];
1314 localArr1[iEl2] = tmp;
1316 int tmp2 = localArr2[iEl2-1];
1317 localArr2[iEl2-1] = localArr2[iEl2];
1318 localArr2[iEl2] = tmp2;
1323 for (iEl = 0; iEl < Narr; iEl++) {
1324 arr2[iEl] = localArr2[iEl];
1326 delete [] localArr2;
1327 delete [] localArr1;
1337 if (Narr <= 0)
return;
1338 double *localArr1 =
new double[Narr];
1339 int *localArr2 =
new int[Narr];
1343 for (iEl = 0; iEl < Narr; iEl++) {
1344 localArr1[iEl] = arr1[iEl];
1345 localArr2[iEl] = iEl;
1348 for (iEl = 0; iEl < Narr; iEl++) {
1349 for (iEl2 = Narr-1; iEl2 > iEl; --iEl2) {
1350 if (localArr1[iEl2-1] > localArr1[iEl2]) {
1351 double tmp = localArr1[iEl2-1];
1352 localArr1[iEl2-1] = localArr1[iEl2];
1353 localArr1[iEl2] = tmp;
1355 int tmp2 = localArr2[iEl2-1];
1356 localArr2[iEl2-1] = localArr2[iEl2];
1357 localArr2[iEl2] = tmp2;
1362 for (iEl = 0; iEl < Narr; iEl++) {
1363 arr2[iEl] = localArr2[iEl];
1365 delete [] localArr2;
1366 delete [] localArr1;
1412 p4=1.2067492, p5=0.2659732, p6=3.60768e-2, p7=4.5813e-3;
1414 const Double_t q1= 0.39894228, q2= 1.328592e-2, q3= 2.25319e-3,
1415 q4=-1.57565e-3, q5= 9.16281e-3, q6=-2.057706e-2,
1416 q7= 2.635537e-2, q8=-1.647633e-2, q9= 3.92377e-3;
1426 result = p1+y*(
p2+y*(
p3+y*(p4+y*(p5+y*(p6+y*p7)))));
1429 result = (
TMath::Exp(ax)/
TMath::Sqrt(ax))*(q1+y*(q2+y*(q3+y*(q4+y*(q5+y*(q6+y*(q7+y*(q8+y*q9))))))));
1446 p4= 3.488590e-2, p5=2.62698e-3, p6=1.0750e-4, p7=7.4e-6;
1448 const Double_t q1= 1.25331414, q2=-7.832358e-2, q3= 2.189568e-2,
1449 q4=-1.062446e-2, q5= 5.87872e-3, q6=-2.51540e-3, q7=5.3208e-4;
1452 Error(
"TMath::BesselK0",
"*K0* Invalid argument x = %g\n",x);
1463 result = (
exp(-x)/
sqrt(x))*(q1+y*(q2+y*(q3+y*(q4+y*(q5+y*(q6+y*q7))))));
1480 p4=0.15084934, p5=2.658733e-2, p6=3.01532e-3, p7=3.2411e-4;
1482 const Double_t q1= 0.39894228, q2=-3.988024e-2, q3=-3.62018e-3,
1483 q4= 1.63801e-3, q5=-1.031555e-2, q6= 2.282967e-2,
1484 q7=-2.895312e-2, q8= 1.787654e-2, q9=-4.20059e-3;
1494 result = x*(p1+y*(
p2+y*(
p3+y*(p4+y*(p5+y*(p6+y*p7))))));
1497 result = (
exp(ax)/
sqrt(ax))*(q1+y*(q2+y*(q3+y*(q4+y*(q5+y*(q6+y*(q7+y*(q8+y*q9))))))));
1498 if (x < 0) result = -result;
1515 p4=-0.18156897, p5=-1.919402e-2, p6=-1.10404e-3, p7=-4.686e-5;
1517 const Double_t q1= 1.25331414, q2= 0.23498619, q3=-3.655620e-2,
1518 q4= 1.504268e-2, q5=-7.80353e-3, q6= 3.25614e-3, q7=-6.8245e-4;
1521 Error(
"TMath::BesselK1",
"*K1* Invalid argument x = %g\n",x);
1532 result = (
exp(-x)/
sqrt(x))*(q1+y*(q2+y*(q3+y*(q4+y*(q5+y*(q6+y*q7))))));
1545 if (x <= 0 || n < 0) {
1546 Error(
"TMath::BesselK",
"*K* Invalid argument(s) (n,x) = (%d, %g)\n",n,x);
1558 for (
Int_t j=1; j<
n; j++) {
1575 const Double_t kBigPositive = 1.e10;
1576 const Double_t kBigNegative = 1.e-10;
1579 Error(
"TMath::BesselI",
"*I* Invalid argument (n,x) = (%d, %g)\n",n,x);
1586 if (x == 0)
return 0;
1594 for (
Int_t j=m; j>=1; j--) {
1600 result *= kBigNegative;
1602 bip *= kBigNegative;
1604 if (j==n) result=bip;
1608 if ((x < 0) && (n%2 == 1)) result = -result;
1620 const Double_t p1 = 57568490574.0,
p2 = -13362590354.0,
p3 = 651619640.7;
1621 const Double_t p4 = -11214424.18, p5 = 77392.33017, p6 = -184.9052456;
1622 const Double_t p7 = 57568490411.0, p8 = 1029532985.0, p9 = 9494680.718;
1623 const Double_t p10 = 59272.64853, p11 = 267.8532712;
1626 const Double_t q2 = -0.1098628627e-2, q3 = 0.2734510407e-4;
1627 const Double_t q4 = -0.2073370639e-5, q5 = 0.2093887211e-6;
1628 const Double_t q6 = -0.1562499995e-1, q7 = 0.1430488765e-3;
1629 const Double_t q8 = -0.6911147651e-5, q9 = 0.7621095161e-6;
1630 const Double_t q10 = 0.934935152e-7, q11 = 0.636619772;
1632 if ((ax=
fabs(x)) < 8) {
1634 result1 = p1 + y*(
p2 + y*(
p3 + y*(p4 + y*(p5 + y*p6))));
1635 result2 = p7 + y*(p8 + y*(p9 + y*(p10 + y*(p11 +
y))));
1636 result = result1/result2;
1641 result1 = 1 + y*(q2 + y*(q3 + y*(q4 + y*q5)));
1642 result2 = q6 + y*(q7 + y*(q8 + y*(q9 - y*q10)));
1643 result =
sqrt(q11/ax)*(
cos(xx)*result1-z*
sin(xx)*result2);
1655 const Double_t p1 = 72362614232.0,
p2 = -7895059235.0,
p3 = 242396853.1;
1656 const Double_t p4 = -2972611.439, p5 = 15704.48260, p6 = -30.16036606;
1657 const Double_t p7 = 144725228442.0, p8 = 2300535178.0, p9 = 18583304.74;
1658 const Double_t p10 = 99447.43394, p11 = 376.9991397;
1661 const Double_t q2 = 0.183105e-2, q3 = -0.3516396496e-4;
1662 const Double_t q4 = 0.2457520174e-5, q5 = -0.240337019e-6;
1663 const Double_t q6 = 0.04687499995, q7 = -0.2002690873e-3;
1664 const Double_t q8 = 0.8449199096e-5, q9 = -0.88228987e-6;
1665 const Double_t q10 = 0.105787412e-6, q11 = 0.636619772;
1667 if ((ax=
fabs(x)) < 8) {
1669 result1 = x*(p1 + y*(
p2 + y*(
p3 + y*(p4 + y*(p5 + y*p6)))));
1670 result2 = p7 + y*(p8 + y*(p9 + y*(p10 + y*(p11 +
y))));
1671 result = result1/result2;
1676 result1 = 1 + y*(q2 + y*(q3 + y*(q4 + y*q5)));
1677 result2 = q6 + y*(q7 + y*(q8 + y*(q9 + y*q10)));
1678 result =
sqrt(q11/ax)*(
cos(xx)*result1-z*
sin(xx)*result2);
1679 if (x < 0) result = -result;
1690 const Double_t p1 = -2957821389.,
p2 = 7062834065.0,
p3 = -512359803.6;
1691 const Double_t p4 = 10879881.29, p5 = -86327.92757, p6 = 228.4622733;
1692 const Double_t p7 = 40076544269., p8 = 745249964.8, p9 = 7189466.438;
1693 const Double_t p10 = 47447.26470, p11 = 226.1030244, p12 = 0.636619772;
1696 const Double_t q2 = -0.1098628627e-2, q3 = 0.2734510407e-4;
1697 const Double_t q4 = -0.2073370639e-5, q5 = 0.2093887211e-6;
1698 const Double_t q6 = -0.1562499995e-1, q7 = 0.1430488765e-3;
1699 const Double_t q8 = -0.6911147651e-5, q9 = 0.7621095161e-6;
1700 const Double_t q10 = -0.934945152e-7, q11 = 0.636619772;
1704 result1 = p1 + y*(
p2 + y*(
p3 + y*(p4 + y*(p5 + y*p6))));
1705 result2 = p7 + y*(p8 + y*(p9 + y*(p10 + y*(p11 +
y))));
1711 result1 = 1 + y*(q2 + y*(q3 + y*(q4 + y*q5)));
1712 result2 = q6 + y*(q7 + y*(q8 + y*(q9 + y*q10)));
1713 result =
sqrt(q11/x)*(
sin(xx)*result1+z*
cos(xx)*result2);
1724 const Double_t p1 = -0.4900604943e13,
p2 = 0.1275274390e13;
1725 const Double_t p3 = -0.5153438139e11, p4 = 0.7349264551e9;
1726 const Double_t p5 = -0.4237922726e7, p6 = 0.8511937935e4;
1727 const Double_t p7 = 0.2499580570e14, p8 = 0.4244419664e12;
1728 const Double_t p9 = 0.3733650367e10, p10 = 0.2245904002e8;
1729 const Double_t p11 = 0.1020426050e6, p12 = 0.3549632885e3;
1732 const Double_t q2 = 0.183105e-2, q3 = -0.3516396496e-4;
1733 const Double_t q4 = 0.2457520174e-5, q5 = -0.240337019e-6;
1734 const Double_t q6 = 0.04687499995, q7 = -0.2002690873e-3;
1735 const Double_t q8 = 0.8449199096e-5, q9 = -0.88228987e-6;
1736 const Double_t q10 = 0.105787412e-6, q11 = 0.636619772;
1740 result1 = x*(p1 + y*(
p2 + y*(p3 + y*(p4 + y*(p5 + y*p6)))));
1741 result2 = p7 + y*(p8 + y*(p9 + y*(p10 + y*(p11 + y*(p12+
y)))));
1747 result1 = 1 + y*(q2 + y*(q3 + y*(q4 + y*q5)));
1748 result2 = q6 + y*(q7 + y*(q8 + y*(q9 + y*q10)));
1749 result =
sqrt(q11/x)*(
sin(xx)*result1+z*
cos(xx)*result2);
1761 const Int_t n1 = 15;
1762 const Int_t n2 = 25;
1763 const Double_t c1[16] = { 1.00215845609911981, -1.63969292681309147,
1764 1.50236939618292819, -.72485115302121872,
1765 .18955327371093136, -.03067052022988,
1766 .00337561447375194, -2.6965014312602e-4,
1767 1.637461692612e-5, -7.8244408508e-7,
1768 3.021593188e-8, -9.6326645e-10,
1769 2.579337e-11, -5.8854e-13,
1770 1.158e-14, -2
e-16 };
1771 const Double_t c2[26] = { .99283727576423943, -.00696891281138625,
1772 1.8205103787037e-4, -1.063258252844e-5,
1773 9.8198294287e-7, -1.2250645445e-7,
1774 1.894083312e-8, -3.44358226e-9,
1775 7.1119102e-10, -1.6288744e-10,
1776 4.065681e-11, -1.091505e-11,
1777 3.12005e-12, -9.4202e-13,
1778 2.9848e-13, -9.872e-14,
1779 3.394e-14, -1.208e-14,
1780 4.44e-15, -1.68e-15,
1799 for (i = n1; i >= 0; --i) {
1800 b0 = c1[i] + alfa*b1 - b2;
1812 for (i = n2; i >= 0; --i) {
1813 b0 = c2[i] + alfa*b1 - b2;
1830 const Int_t n3 = 16;
1831 const Int_t n4 = 22;
1832 const Double_t c3[17] = { .5578891446481605, -.11188325726569816,
1833 -.16337958125200939, .32256932072405902,
1834 -.14581632367244242, .03292677399374035,
1835 -.00460372142093573, 4.434706163314e-4,
1836 -3.142099529341e-5, 1.7123719938e-6,
1837 -7.416987005e-8, 2.61837671e-9,
1838 -7.685839e-11, 1.9067e-12,
1839 -4.052e-14, 7.5e-16,
1841 const Double_t c4[23] = { 1.00757647293865641, .00750316051248257,
1842 -7.043933264519e-5, 2.66205393382e-6,
1843 -1.8841157753e-7, 1.949014958e-8,
1844 -2.6126199e-9, 4.236269e-10,
1845 -7.955156e-11, 1.679973e-11,
1846 -3.9072e-12, 9.8543e-13,
1847 -2.6636e-13, 7.645e-14,
1848 -2.313e-14, 7.33e-15,
1851 -4
e-17, 2
e-17,-1e-17 };
1862 }
else if (v <= 0.3) {
1867 for (i = 1; i <= i1; ++i) {
1868 h = -h*y / ((2*i+ 1)*(2*i + 3));
1878 for (i = n3; i >= 0; --i) {
1879 b0 = c3[i] + alfa*b1 - b2;
1890 for (i = n4; i >= 0; --i) {
1891 b0 = c4[i] + alfa*b1 - b2;
1917 for (i=1; i<=60;i++) {
1918 r*=(x/(2*i+1))*(x/(2*i+1));
1926 for (i=1; i<=
km; i++) {
1927 r*=(2*i-1)*(2*i-1)/x/
x;
1934 for (i=1; i<=16; i++) {
1935 r=0.125*r*(2.0*i-1.0)*(2.0*i-1.0)/(i*
x);
1941 sl0=-2.0/(pi*
x)*s+bi0;
1959 for (i=1; i<=60;i++) {
1960 r*=x*x/(4.0*i*i-1.0);
1969 for (i=1; i<=
km; i++) {
1970 r*=(2*i+3)*(2*i+1)/x/
x;
1974 sl1=2.0/pi*(-1.0+1.0/(x*
x)+3.0*s/(x*x*x*x));
1978 for (i=1; i<=16; i++) {
1979 r=-0.125*r*(4.0-(2.0*i-1.0)*(2.0*i-1.0))/(i*x);
2013 d = 1.0 - qab*x/qap;
2017 for (m=1; m<=itmax; m++) {
2019 aa = m*(b-
m)*x/((qam+ m2)*(a+
m2));
2026 aa = -(a+
m)*(qab +m)*x/((a+
m2)*(qap+m2));
2037 Info(
"TMath::BetaCf",
"a or b too big, or itmax too small, a=%g, b=%g, x=%g, h=%g, itmax=%d",
2053 if ((x<0) || (x>1) || (p<=0) || (q<=0)){
2054 Error(
"TMath::BetaDist",
"parameter value outside allowed range");
2071 if ((x<0) || (x>1) || (p<=0) || (q<=0)){
2072 Error(
"TMath::BetaDistI",
"parameter value outside allowed range");
2093 if (k==0 || n==k)
return 1;
2117 if(k <= 0)
return 1.0;
2118 if(k > n)
return 0.0;
2166 Double_t c[]={0, 0.01, 0.222222, 0.32, 0.4, 1.24, 2.2,
2167 4.67, 6.66, 6.73, 13.32, 60.0, 70.0,
2168 84.0, 105.0, 120.0, 127.0, 140.0, 175.0,
2169 210.0, 252.0, 264.0, 294.0, 346.0, 420.0,
2170 462.0, 606.0, 672.0, 707.0, 735.0, 889.0,
2171 932.0, 966.0, 1141.0, 1182.0, 1278.0, 1740.0,
2179 if (ndf <= 0)
return 0;
2192 if (ch > c[6]*ndf + 6)
2199 p1 = 1 + ch * (c[7]+ch);
2200 p2 = ch * (c[9] + ch * (c[8] + ch));
2201 t = -0.5 + (c[7] + 2 * ch) / p1 - (c[9] + ch * (c[10] + 3 * ch)) / p2;
2202 ch = ch - (1 -
TMath::Exp(a + g + 0.5 * ch + cp * aa) *p2 /
p1) / t;
2207 if (ch < e)
return ch;
2210 for (
Int_t i=0; i<maxit; i++){
2217 a = 0.5 * t - b * cp;
2218 s1 = (c[19] + a * (c[17] + a * (c[14] + a * (c[13] + a * (c[12] +c[11] *
a))))) / c[24];
2219 s2 = (c[24] + a * (c[29] + a * (c[32] + a * (c[33] + c[35] *
a)))) / c[37];
2220 s3 = (c[19] + a * (c[25] + a * (c[28] + c[31] *
a))) / c[37];
2221 s4 = (c[20] + a * (c[27] + c[34] *
a) + cp * (c[22] + a * (c[30] + c[36] * a))) / c[38];
2222 s5 = (c[13] + c[21] * a + cp * (c[18] + c[26] *
a)) / c[37];
2223 s6 = (c[15] + cp * (c[23] + c[16] * cp)) / c[38];
2224 ch = ch + t * (1 + 0.5 * t * s1 - b * cp * (s1 - b * (s2 - b * (s3 - b * (s4 - b * (s5 - b * s6))))));
2317 if ((x<mu) || (gamma<=0) || (beta <=0)) {
2318 Error(
"TMath::GammaDist",
"illegal parameter values x = %f , gamma = %f beta = %f",x,gamma,beta);
2406 if ((x<theta) || (sigma<=0) || (m<=0)) {
2407 Error(
"TMath::Lognormal",
"illegal parameter values");
2425 if ((p<=0)||(p>=1)) {
2426 Error(
"TMath::NormQuantile",
"probability outside (0, 1)");
2430 Double_t a0 = 3.3871328727963666080e0;
2431 Double_t a1 = 1.3314166789178437745e+2;
2432 Double_t a2 = 1.9715909503065514427e+3;
2433 Double_t a3 = 1.3731693765509461125e+4;
2434 Double_t a4 = 4.5921953931549871457e+4;
2435 Double_t a5 = 6.7265770927008700853e+4;
2436 Double_t a6 = 3.3430575583588128105e+4;
2437 Double_t a7 = 2.5090809287301226727e+3;
2438 Double_t b1 = 4.2313330701600911252e+1;
2439 Double_t b2 = 6.8718700749205790830e+2;
2440 Double_t b3 = 5.3941960214247511077e+3;
2441 Double_t b4 = 2.1213794301586595867e+4;
2442 Double_t b5 = 3.9307895800092710610e+4;
2443 Double_t b6 = 2.8729085735721942674e+4;
2444 Double_t b7 = 5.2264952788528545610e+3;
2445 Double_t c0 = 1.42343711074968357734e0;
2449 Double_t c4 = 1.27045825245236838258e0;
2450 Double_t c5 = 2.41780725177450611770e-1;
2451 Double_t c6 = 2.27238449892691845833e-2;
2452 Double_t c7 = 7.74545014278341407640e-4;
2453 Double_t d1 = 2.05319162663775882187e0;
2454 Double_t d2 = 1.67638483018380384940e0;
2455 Double_t d3 = 6.89767334985100004550e-1;
2456 Double_t d4 = 1.48103976427480074590e-1;
2457 Double_t d5 = 1.51986665636164571966e-2;
2458 Double_t d6 = 5.47593808499534494600e-4;
2459 Double_t d7 = 1.05075007164441684324e-9;
2460 Double_t e0 = 6.65790464350110377720e0;
2461 Double_t e1 = 5.46378491116411436990e0;
2462 Double_t e2 = 1.78482653991729133580e0;
2463 Double_t e3 = 2.96560571828504891230e-1;
2464 Double_t e4 = 2.65321895265761230930e-2;
2465 Double_t e5 = 1.24266094738807843860e-3;
2466 Double_t e6 = 2.71155556874348757815e-5;
2467 Double_t e7 = 2.01033439929228813265e-7;
2469 Double_t f2 = 1.36929880922735805310e-1;
2470 Double_t f3 = 1.48753612908506148525e-2;
2471 Double_t f4 = 7.86869131145613259100e-4;
2472 Double_t f5 = 1.84631831751005468180e-5;
2473 Double_t f6 = 1.42151175831644588870e-7;
2474 Double_t f7 = 2.04426310338993978564e-15;
2485 quantile = q* (((((((a7 * r + a6) * r + a5) * r + a4) * r + a3)
2486 * r + a2) * r + a1) * r + a0) /
2487 (((((((b7 * r + b6) * r + b5) * r + b4) * r + b3)
2488 * r + b2) * r + b1) * r + 1.);
2499 quantile=(((((((c7 * r + c6) * r + c5) * r + c4) * r + c3)
2500 * r +
c2) * r + c1) * r + c0) /
2501 (((((((d7 * r + d6) * r + d5) * r + d4) * r + d3)
2502 * r + d2) * r + d1) * r + 1);
2505 quantile=(((((((e7 * r + e6) * r + e5) * r + e4) * r + e3)
2506 * r + e2) * r + e1) * r + e0) /
2507 (((((((f7 * r + f6) * r + f5) * r + f4) * r + f3)
2508 * r + f2) * r +
f1) * r + 1);
2510 if (q<0) quantile=-quantile;
2530 for(i=n-2; i>-1; i--) {
2537 if(i1==-1)
return kFALSE;
2541 for(i=n-1;i>i1;i--) {
2552 for(i=0;i<(n-i1-1)/2;i++) {
2646 if (ndf<1 || p>=1 || p<=0) {
2647 Error(
"TMath::StudentQuantile",
"illegal parameter values");
2650 if ((lower_tail && p>0.5)||(!lower_tail && p<0.5)){
2652 q=2*(lower_tail ? (1-p) : p);
2655 q=2*(lower_tail? p : (1-p));
2667 Double_t c=((20700*a/b -98)*a-16)*a+96.36;
2675 if (ndf<5) c+=0.3*(ndf-4.5)*(x+0.6);
2676 c+=(((0.05*d*x-5.)*x-7.)*x-2.)*x +
b;
2677 y=(((((0.4*y+6.3)*y+36.)*y+94.5)/c - y-3.)/b+1)*x;
2682 y=((1./(((ndf+6.)/(ndf*
y)-0.089*d-0.822)*(ndf+2.)*3)+0.5/(ndf+4.))*y-1.)*
2683 (ndf+1.)/(ndf+2.)+1/
y;
2688 if(neg) quantile=-quantile;
2784 if (x < ac[0]) v = 0;
2785 else if (x >=ac[8]) v = 1;
2788 k =
Int_t(xx*ac[10]);
2789 v =
TMath::Min(wcm[k] + (xx - k*ac[9])*(wcm[k+1]-wcm[k])*ac[10], 1.);
2815 Double_t BKMNX1 = 0.02, BKMNY1 = 0.05, BKMNX2 = 0.12, BKMNY2 = 0.05,
2816 BKMNX3 = 0.22, BKMNY3 = 0.05, BKMXX1 = 0.1 , BKMXY1 = 1,
2817 BKMXX2 = 0.2 , BKMXY2 = 1 , BKMXX3 = 0.3 , BKMXY3 = 1;
2819 Double_t FBKX1 = 2/(BKMXX1-BKMNX1), FBKX2 = 2/(BKMXX2-BKMNX2),
2820 FBKX3 = 2/(BKMXX3-BKMNX3), FBKY1 = 2/(BKMXY1-BKMNY1),
2821 FBKY2 = 2/(BKMXY2-BKMNY2), FBKY3 = 2/(BKMXY3-BKMNY3);
2823 Double_t FNINV[] = {0, 1, 0.5, 0.33333333, 0.25, 0.2};
2825 Double_t EDGEC[]= {0, 0, 0.16666667e+0, 0.41666667e-1, 0.83333333e-2,
2826 0.13888889e-1, 0.69444444e-2, 0.77160493e-3};
2828 Double_t U1[] = {0, 0.25850868e+0, 0.32477982e-1, -0.59020496e-2,
2829 0. , 0.24880692e-1, 0.47404356e-2,
2830 -0.74445130e-3, 0.73225731e-2, 0. ,
2831 0.11668284e-2, 0. , -0.15727318e-2,-0.11210142e-2};
2833 Double_t U2[] = {0, 0.43142611e+0, 0.40797543e-1, -0.91490215e-2,
2834 0. , 0.42127077e-1, 0.73167928e-2,
2835 -0.14026047e-2, 0.16195241e-1, 0.24714789e-2,
2836 0.20751278e-2, 0. , -0.25141668e-2,-0.14064022e-2};
2838 Double_t U3[] = {0, 0.25225955e+0, 0.64820468e-1, -0.23615759e-1,
2839 0. , 0.23834176e-1, 0.21624675e-2,
2840 -0.26865597e-2, -0.54891384e-2, 0.39800522e-2,
2841 0.48447456e-2, -0.89439554e-2, -0.62756944e-2,-0.24655436e-2};
2843 Double_t U4[] = {0, 0.12593231e+1, -0.20374501e+0, 0.95055662e-1,
2844 -0.20771531e-1, -0.46865180e-1, -0.77222986e-2,
2845 0.32241039e-2, 0.89882920e-2, -0.67167236e-2,
2846 -0.13049241e-1, 0.18786468e-1, 0.14484097e-1};
2848 Double_t U5[] = {0, -0.24864376e-1, -0.10368495e-2, 0.14330117e-2,
2849 0.20052730e-3, 0.18751903e-2, 0.12668869e-2,
2850 0.48736023e-3, 0.34850854e-2, 0. ,
2851 -0.36597173e-3, 0.19372124e-2, 0.70761825e-3, 0.46898375e-3};
2853 Double_t U6[] = {0, 0.35855696e-1, -0.27542114e-1, 0.12631023e-1,
2854 -0.30188807e-2, -0.84479939e-3, 0. ,
2855 0.45675843e-3, -0.69836141e-2, 0.39876546e-2,
2856 -0.36055679e-2, 0. , 0.15298434e-2, 0.19247256e-2};
2858 Double_t U7[] = {0, 0.10234691e+2, -0.35619655e+1, 0.69387764e+0,
2859 -0.14047599e+0, -0.19952390e+1, -0.45679694e+0,
2860 0. , 0.50505298e+0};
2861 Double_t U8[] = {0, 0.21487518e+2, -0.11825253e+2, 0.43133087e+1,
2862 -0.14500543e+1, -0.34343169e+1, -0.11063164e+1,
2863 -0.21000819e+0, 0.17891643e+1, -0.89601916e+0,
2864 0.39120793e+0, 0.73410606e+0, 0. ,-0.32454506e+0};
2866 Double_t V1[] = {0, 0.27827257e+0, -0.14227603e-2, 0.24848327e-2,
2867 0. , 0.45091424e-1, 0.80559636e-2,
2868 -0.38974523e-2, 0. , -0.30634124e-2,
2869 0.75633702e-3, 0.54730726e-2, 0.19792507e-2};
2871 Double_t V2[] = {0, 0.41421789e+0, -0.30061649e-1, 0.52249697e-2,
2872 0. , 0.12693873e+0, 0.22999801e-1,
2873 -0.86792801e-2, 0.31875584e-1, -0.61757928e-2,
2874 0. , 0.19716857e-1, 0.32596742e-2};
2876 Double_t V3[] = {0, 0.20191056e+0, -0.46831422e-1, 0.96777473e-2,
2877 -0.17995317e-2, 0.53921588e-1, 0.35068740e-2,
2878 -0.12621494e-1, -0.54996531e-2, -0.90029985e-2,
2879 0.34958743e-2, 0.18513506e-1, 0.68332334e-2,-0.12940502e-2};
2881 Double_t V4[] = {0, 0.13206081e+1, 0.10036618e+0, -0.22015201e-1,
2882 0.61667091e-2, -0.14986093e+0, -0.12720568e-1,
2883 0.24972042e-1, -0.97751962e-2, 0.26087455e-1,
2884 -0.11399062e-1, -0.48282515e-1, -0.98552378e-2};
2886 Double_t V5[] = {0, 0.16435243e-1, 0.36051400e-1, 0.23036520e-2,
2887 -0.61666343e-3, -0.10775802e-1, 0.51476061e-2,
2888 0.56856517e-2, -0.13438433e-1, 0. ,
2889 0. , -0.25421507e-2, 0.20169108e-2,-0.15144931e-2};
2891 Double_t V6[] = {0, 0.33432405e-1, 0.60583916e-2, -0.23381379e-2,
2892 0.83846081e-3, -0.13346861e-1, -0.17402116e-2,
2893 0.21052496e-2, 0.15528195e-2, 0.21900670e-2,
2894 -0.13202847e-2, -0.45124157e-2, -0.15629454e-2, 0.22499176e-3};
2896 Double_t V7[] = {0, 0.54529572e+1, -0.90906096e+0, 0.86122438e-1,
2897 0. , -0.12218009e+1, -0.32324120e+0,
2898 -0.27373591e-1, 0.12173464e+0, 0. ,
2899 0. , 0.40917471e-1};
2901 Double_t V8[] = {0, 0.93841352e+1, -0.16276904e+1, 0.16571423e+0,
2902 0. , -0.18160479e+1, -0.50919193e+0,
2903 -0.51384654e-1, 0.21413992e+0, 0. ,
2904 0. , 0.66596366e-1};
2906 Double_t W1[] = {0, 0.29712951e+0, 0.97572934e-2, 0. ,
2907 -0.15291686e-2, 0.35707399e-1, 0.96221631e-2,
2908 -0.18402821e-2, -0.49821585e-2, 0.18831112e-2,
2909 0.43541673e-2, 0.20301312e-2, -0.18723311e-2,-0.73403108e-3};
2911 Double_t W2[] = {0, 0.40882635e+0, 0.14474912e-1, 0.25023704e-2,
2912 -0.37707379e-2, 0.18719727e+0, 0.56954987e-1,
2913 0. , 0.23020158e-1, 0.50574313e-2,
2914 0.94550140e-2, 0.19300232e-1};
2916 Double_t W3[] = {0, 0.16861629e+0, 0. , 0.36317285e-2,
2917 -0.43657818e-2, 0.30144338e-1, 0.13891826e-1,
2918 -0.58030495e-2, -0.38717547e-2, 0.85359607e-2,
2919 0.14507659e-1, 0.82387775e-2, -0.10116105e-1,-0.55135670e-2};
2921 Double_t W4[] = {0, 0.13493891e+1, -0.26863185e-2, -0.35216040e-2,
2922 0.24434909e-1, -0.83447911e-1, -0.48061360e-1,
2923 0.76473951e-2, 0.24494430e-1, -0.16209200e-1,
2924 -0.37768479e-1, -0.47890063e-1, 0.17778596e-1, 0.13179324e-1};
2926 Double_t W5[] = {0, 0.10264945e+0, 0.32738857e-1, 0. ,
2927 0.43608779e-2, -0.43097757e-1, -0.22647176e-2,
2928 0.94531290e-2, -0.12442571e-1, -0.32283517e-2,
2929 -0.75640352e-2, -0.88293329e-2, 0.52537299e-2, 0.13340546e-2};
2931 Double_t W6[] = {0, 0.29568177e-1, -0.16300060e-2, -0.21119745e-3,
2932 0.23599053e-2, -0.48515387e-2, -0.40797531e-2,
2933 0.40403265e-3, 0.18200105e-2, -0.14346306e-2,
2934 -0.39165276e-2, -0.37432073e-2, 0.19950380e-2, 0.12222675e-2};
2936 Double_t W8[] = {0, 0.66184645e+1, -0.73866379e+0, 0.44693973e-1,
2937 0. , -0.14540925e+1, -0.39529833e+0,
2938 -0.44293243e-1, 0.88741049e-1};
2941 if (rkappa <0.01 || rkappa >12) {
2942 Error(
"Vavilov distribution",
"illegal value of kappa");
2950 Double_t x,
y, xx, yy,
x2,
x3, y2, y3,
xy,
p2,
p3, q2, q3, pq;
2951 if (rkappa >= 0.29) {
2956 AC[0] = (-0.032227*beta2-0.074275)*rkappa + (0.24533*beta2+0.070152)*wk + (-0.55610*beta2-3.1579);
2957 AC[8] = (-0.013483*beta2-0.048801)*rkappa + (-1.6921*beta2+8.3656)*wk + (-0.73275*beta2-3.5226);
2960 for (j=1; j<=4; j++) {
2961 DRK[j+1] = DRK[1]*DRK[j];
2962 DSIGM[j+1] = DSIGM[1]*DSIGM[j];
2963 ALFA[j+1] = (FNINV[j]-beta2*FNINV[j+1])*DRK[j];
2967 HC[2]=ALFA[3]*DSIGM[3];
2968 HC[3]=(3*ALFA[2]*ALFA[2] + ALFA[4])*DSIGM[4]-3;
2969 HC[4]=(10*ALFA[2]*ALFA[3]+ALFA[5])*DSIGM[5]-10*HC[2];
2973 for (j=2; j<=7; j++)
2975 HC[8]=0.39894228*HC[1];
2977 else if (rkappa >=0.22) {
2980 x = 1+(rkappa-BKMXX3)*FBKX3;
2994 AC[1] = W1[1] + W1[2]*x + W1[4]*x3 + W1[5]*y + W1[6]*y2 + W1[7]*y3 +
2995 W1[8]*xy + W1[9]*p2 + W1[10]*p3 + W1[11]*q2 + W1[12]*q3 + W1[13]*pq;
2996 AC[2] = W2[1] + W2[2]*x + W2[3]*x2 + W2[4]*x3 + W2[5]*y + W2[6]*y2 +
2997 W2[8]*xy + W2[9]*p2 + W2[10]*p3 + W2[11]*q2;
2998 AC[3] = W3[1] + W3[3]*x2 + W3[4]*x3 + W3[5]*y + W3[6]*y2 + W3[7]*y3 +
2999 W3[8]*xy + W3[9]*p2 + W3[10]*p3 + W3[11]*q2 + W3[12]*q3 + W3[13]*pq;
3000 AC[4] = W4[1] + W4[2]*x + W4[3]*x2 + W4[4]*x3 + W4[5]*y + W4[6]*y2 + W4[7]*y3 +
3001 W4[8]*xy + W4[9]*p2 + W4[10]*p3 + W4[11]*q2 + W4[12]*q3 + W4[13]*pq;
3002 AC[5] = W5[1] + W5[2]*x + W5[4]*x3 + W5[5]*y + W5[6]*y2 + W5[7]*y3 +
3003 W5[8]*xy + W5[9]*p2 + W5[10]*p3 + W5[11]*q2 + W5[12]*q3 + W5[13]*pq;
3004 AC[6] = W6[1] + W6[2]*x + W6[3]*x2 + W6[4]*x3 + W6[5]*y + W6[6]*y2 + W6[7]*y3 +
3005 W6[8]*xy + W6[9]*p2 + W6[10]*p3 + W6[11]*q2 + W6[12]*q3 + W6[13]*pq;
3006 AC[8] = W8[1] + W8[2]*x + W8[3]*x2 + W8[5]*y + W8[6]*y2 + W8[7]*y3 + W8[8]*
xy;
3008 }
else if (rkappa >= 0.12) {
3011 x = 1 + (rkappa-BKMXX2)*FBKX2;
3025 AC[1] = V1[1] + V1[2]*x + V1[3]*x2 + V1[5]*y + V1[6]*y2 + V1[7]*y3 +
3026 V1[9]*p2 + V1[10]*p3 + V1[11]*q2 + V1[12]*q3;
3027 AC[2] = V2[1] + V2[2]*x + V2[3]*x2 + V2[5]*y + V2[6]*y2 + V2[7]*y3 +
3028 V2[8]*xy + V2[9]*p2 + V2[11]*q2 + V2[12]*q3;
3029 AC[3] = V3[1] + V3[2]*x + V3[3]*x2 + V3[4]*x3 + V3[5]*y + V3[6]*y2 + V3[7]*y3 +
3030 V3[8]*xy + V3[9]*p2 + V3[10]*p3 + V3[11]*q2 + V3[12]*q3 + V3[13]*pq;
3031 AC[4] = V4[1] + V4[2]*x + V4[3]*x2 + V4[4]*x3 + V4[5]*y + V4[6]*y2 + V4[7]*y3 +
3032 V4[8]*xy + V4[9]*p2 + V4[10]*p3 + V4[11]*q2 + V4[12]*q3;
3033 AC[5] = V5[1] + V5[2]*x + V5[3]*x2 + V5[4]*x3 + V5[5]*y + V5[6]*y2 + V5[7]*y3 +
3034 V5[8]*xy + V5[11]*q2 + V5[12]*q3 + V5[13]*pq;
3035 AC[6] = V6[1] + V6[2]*x + V6[3]*x2 + V6[4]*x3 + V6[5]*y + V6[6]*y2 + V6[7]*y3 +
3036 V6[8]*xy + V6[9]*p2 + V6[10]*p3 + V6[11]*q2 + V6[12]*q3 + V6[13]*pq;
3037 AC[7] = V7[1] + V7[2]*x + V7[3]*x2 + V7[5]*y + V7[6]*y2 + V7[7]*y3 +
3038 V7[8]*xy + V7[11]*q2;
3039 AC[8] = V8[1] + V8[2]*x + V8[3]*x2 + V8[5]*y + V8[6]*y2 + V8[7]*y3 +
3040 V8[8]*xy + V8[11]*q2;
3044 if (rkappa >=0.02) itype = 3;
3046 x = 1+(rkappa-BKMXX1)*FBKX1;
3061 AC[1] = U1[1] + U1[2]*x + U1[3]*x2 + U1[5]*y + U1[6]*y2 + U1[7]*y3 +
3062 U1[8]*xy + U1[10]*p3 + U1[12]*q3 + U1[13]*pq;
3063 AC[2] = U2[1] + U2[2]*x + U2[3]*x2 + U2[5]*y + U2[6]*y2 + U2[7]*y3 +
3064 U2[8]*xy + U2[9]*p2 + U2[10]*p3 + U2[12]*q3 + U2[13]*pq;
3065 AC[3] = U3[1] + U3[2]*x + U3[3]*x2 + U3[5]*y + U3[6]*y2 + U3[7]*y3 +
3066 U3[8]*xy + U3[9]*p2 + U3[10]*p3 + U3[11]*q2 + U3[12]*q3 + U3[13]*pq;
3067 AC[4] = U4[1] + U4[2]*x + U4[3]*x2 + U4[4]*x3 + U4[5]*y + U4[6]*y2 + U4[7]*y3 +
3068 U4[8]*xy + U4[9]*p2 + U4[10]*p3 + U4[11]*q2 + U4[12]*q3;
3069 AC[5] = U5[1] + U5[2]*x + U5[3]*x2 + U5[4]*x3 + U5[5]*y + U5[6]*y2 + U5[7]*y3 +
3070 U5[8]*xy + U5[10]*p3 + U5[11]*q2 + U5[12]*q3 + U5[13]*pq;
3071 AC[6] = U6[1] + U6[2]*x + U6[3]*x2 + U6[4]*x3 + U6[5]*y + U6[7]*y3 +
3072 U6[8]*xy + U6[9]*p2 + U6[10]*p3 + U6[12]*q3 + U6[13]*pq;
3073 AC[7] = U7[1] + U7[2]*x + U7[3]*x2 + U7[4]*x3 + U7[5]*y + U7[6]*y2 + U7[8]*
xy;
3075 AC[8] = U8[1] + U8[2]*x + U8[3]*x2 + U8[4]*x3 + U8[5]*y + U8[6]*y2 + U8[7]*y3 +
3076 U8[8]*xy + U8[9]*p2 + U8[10]*p3 + U8[11]*q2 + U8[13]*pq;
3080 AC[9] = (AC[8] - AC[0])/npt;
3083 x = (AC[7]-AC[8])/(AC[7]*AC[8]);
3086 AC[11] = p2*(AC[1]*
TMath::Exp(-AC[2]*(AC[7]+AC[5]*p2)-
3087 AC[3]*
TMath::Exp(-AC[4]*(AC[7]+AC[6]*p2)))-0.045*y/AC[7])/(1+x*y*AC[7]);
3088 AC[12] = (0.045+x*AC[11])*y;
3090 if (itype == 4) AC[13] = 0.995/
LandauI(AC[8]);
3092 if (mode==0)
return;
3099 for (k=1; k<=npt; k++) {
3102 WCM[k] = WCM[k-1] + fl + fu;
3106 for (k=1; k<=npt; k++)
3116 if (rlam < AC[0] || rlam > AC[8])
3123 x = (rlam + HC[0])*HC[1];
3126 for (k=2; k<=8; k++) {
3128 h[k+1] = x*h[k]-fn*h[k-1];
3131 for (k=2; k<=6; k++)
3135 else if (itype == 2) {
3139 else if (itype == 3) {
3145 v = (AC[11]*x + AC[12])*x;
3148 else if (itype == 4) {
3156 #ifdef R__HAS_VECCORE double lognormal_pdf(double x, double m, double s, double x0=0)
Probability density function of the lognormal distribution.
Double_t BesselI(Int_t n, Double_t x)
constexpr Double_t HC()
in
Double_t FDist(Double_t F, Double_t N, Double_t M)
double erf(double x)
Error function encountered in integrating the normal distribution.
Double_t Landau(Double_t x, Double_t mpv=0, Double_t sigma=1, Bool_t norm=kFALSE)
The LANDAU function.
Double_t ErfInverse(Double_t x)
returns the inverse error function x must be <-1<x<1
static long int sum(long int i)
Double_t BreitWigner(Double_t x, Double_t mean=0, Double_t gamma=1)
Calculate a Breit Wigner function with mean and gamma.
Double_t FDistI(Double_t F, Double_t N, Double_t M)
Double_t PoissonI(Double_t x, Double_t par)
Float_t Normalize(Float_t v[3])
Normalize a vector v in place.
static constexpr double pi
static double p3(double t, double a, double b, double c, double d)
Double_t KolmogorovProb(Double_t z)
Double_t LaplaceDistI(Double_t x, Double_t alpha=0, Double_t beta=1)
Double_t StudentQuantile(Double_t p, Double_t ndf, Bool_t lower_tail=kTRUE)
Double_t NormQuantile(Double_t p)
static constexpr double km
Double_t BetaDist(Double_t x, Double_t p, Double_t q)
Double_t LaplaceDist(Double_t x, Double_t alpha=0, Double_t beta=1)
void ToUpper()
Change string to upper case.
double inc_beta(double x, double a, double b)
Calculates the normalized (regularized) incomplete beta function.
Double_t Log2(Double_t x)
static constexpr double bar
Double_t StruveH1(Double_t x)
Struve functions of order 0.
Short_t Min(Short_t a, Short_t b)
void BubbleHigh(Int_t Narr, Double_t *arr1, Int_t *arr2)
Int_t FloorNint(Double_t x)
Double_t Gamma(Double_t z)
Computation of gamma(z) for all z.
double tgamma(double x)
The gamma function is defined to be the extension of the factorial to real numbers.
Double_t BesselJ1(Double_t x)
Bessel function J0(x) for any real x.
Double_t GamCf(Double_t a, Double_t x)
Computation of the incomplete gamma function P(a,x) via its continued fraction representation.
Double_t Prob(Double_t chi2, Int_t ndf)
Double_t StudentI(Double_t T, Double_t ndf)
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
double beta(double x, double y)
Calculates the beta function.
double erfc(double x)
Complementary error function.
Double_t BesselY1(Double_t x)
Bessel function Y0(x) for positive x.
Double_t ChisquareQuantile(Double_t p, Double_t ndf)
static const double x2[5]
double landau_pdf(double x, double xi=1, double x0=0)
Probability density function of the Landau distribution: with where .
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)
Double_t Log10(Double_t x)
Double_t BesselI1(Double_t x)
modified Bessel function K_0(x)
static double p2(double t, double a, double b, double c)
Double_t Freq(Double_t x)
Computation of the normal frequency function freq(x).
void Info(const char *location, const char *msgfmt,...)
Double_t VavilovDenEval(Double_t rlam, Double_t *AC, Double_t *HC, Int_t itype)
Double_t GamSer(Double_t a, Double_t x)
Computation of the incomplete gamma function P(a,x) via its series representation.
double fdistribution_cdf(double x, double n, double m, double x0=0)
Cumulative distribution function of the F-distribution (lower tail).
double gamma_pdf(double x, double alpha, double theta, double x0=0)
Probability density function of the gamma distribution.
Double_t ATan2(Double_t, Double_t)
void BubbleLow(Int_t Narr, Double_t *arr1, Int_t *arr2)
void Error(const char *location, const char *msgfmt,...)
Double_t Erfc(Double_t x)
Compute the complementary error function erfc(x).
static constexpr double second
double landau_cdf(double x, double xi=1, double x0=0)
Cumulative distribution function of the Landau distribution (lower tail).
Double_t DiLog(Double_t x)
Modified Struve functions of order 1.
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
Double_t VavilovI(Double_t x, Double_t kappa, Double_t beta2)
Double_t BesselY0(Double_t x)
Bessel function J1(x) for any real x.
Double_t Erf(Double_t x)
Computation of the error function erf(x).
Double_t BetaDistI(Double_t x, Double_t p, Double_t q)
Double_t StruveL1(Double_t x)
Modified Struve functions of order 0.
Double_t Voigt(Double_t x, Double_t sigma, Double_t lg, Int_t r=4)
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)
Bool_t Permute(Int_t n, Int_t *a)
Double_t StruveL0(Double_t x)
Struve functions of order 1.
double fdistribution_pdf(double x, double n, double m, double x0=0)
Probability density function of the F-distribution.
Double_t KolmogorovTest(Int_t na, const Double_t *a, Int_t nb, const Double_t *b, Option_t *option)
#define NamespaceImp(name)
Double_t Binomial(Int_t n, Int_t k)
Double_t LandauI(Double_t x)
static constexpr double m2
Double_t BesselJ0(Double_t x)
modified Bessel function K_1(x)
static double p1(double t, double a, double b)
Double_t ErfcInverse(Double_t x)
returns the inverse of the complementary error function x must be 0<x<2 implement using the quantile ...
Double_t SignalingNaN()
Returns a signaling NaN as defined by IEEE 754](http://en.wikipedia.org/wiki/NaN#Signaling_NaN) ...
ULong_t Hash(const void *txt, Int_t ntxt)
Double_t Poisson(Double_t x, Double_t par)
Double_t Student(Double_t T, Double_t ndf)
Double_t Beta(Double_t p, Double_t q)
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.
Double_t BesselI0(Double_t x)
integer order modified Bessel function K_n(x)
Double_t BesselK(Int_t n, Double_t x)
integer order modified Bessel function I_n(x)
static constexpr double pi2
Double_t StruveH0(Double_t x)
Bessel function Y1(x) for positive x.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
static constexpr double s
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
Double_t Hypot(Double_t x, Double_t y)
Double_t BesselK0(Double_t x)
modified Bessel function I_0(x)
Double_t BinomialI(Double_t p, Int_t n, Int_t k)
you should not use this method at all Int_t Int_t z
Double_t BetaCf(Double_t x, Double_t a, Double_t b)
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 chisquared_cdf_c(double x, double r, double x0=0)
Complement of the cumulative distribution function of the distribution with degrees of freedom (upp...
Double_t GammaDist(Double_t x, Double_t gamma, Double_t mu=0, Double_t beta=1)
Short_t Max(Short_t a, Short_t b)
Double_t Factorial(Int_t i)
Compute factorial(n).
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Double_t BesselK1(Double_t x)
modified Bessel function I_1(x)
Double_t LnGamma(Double_t z)
Computation of ln[gamma(z)] for all z.
Double_t LogNormal(Double_t x, Double_t sigma, Double_t theta=0, Double_t m=1)
Bool_t RootsCubic(const Double_t coef[4], Double_t &a, Double_t &b, Double_t &c)
Double_t Sqrt(Double_t x)
double lgamma(double x)
Calculates the logarithm of the gamma function.
Double_t BetaIncomplete(Double_t x, Double_t a, Double_t b)
Double_t CauchyDist(Double_t x, Double_t t=0, Double_t s=1)
double inc_gamma(double a, double x)
Calculates the normalized (regularized) lower incomplete gamma function (lower integral) ...
static T Epsilon()
Returns minimum double representation.
Int_t Nint(T x)
Round to nearest integer. Rounds half integers to the nearest even integer.
constexpr Double_t PiOver2()
Double_t Vavilov(Double_t x, Double_t kappa, Double_t beta2)
static const double x3[11]