30 #if defined(hocuspocus) 32 #if defined(R__MAC) || defined(R__KCC) 59 #if defined(WIN32) || defined(R__KCC) 69 #if defined(WIN32) || defined(R__KCC) 79 #if defined(WIN32) || defined(R__KCC) 80 return log((1+x)/(1-x))/2;
122 for (n = 3; (n <= sqr) && ((x % n) != 0); n += 2)
139 if (x + 0.5 ==
Float_urt(i) && i & 1) i--;
142 if (x - 0.5 ==
Float_urt(i) && i & 1) i++;
172 out[0] = v1[1] * v2[2] - v1[2] * v2[1];
173 out[1] = v1[2] * v2[0] - v1[0] * v2[2];
174 out[2] = v1[0] * v2[1] - v1[1] * v2[0];
185 out[0] = v1[1] * v2[2] - v1[2] * v2[1];
186 out[1] = v1[2] * v2[0] - v1[0] * v2[2];
187 out[2] = v1[0] * v2[1] - v1[1] * v2[0];
211 const Double_urt a1 = -1.26551223, a2 = 1.00002368,
212 a3 = 0.37409196, a4 = 0.09678418,
213 a5 = -0.18628806, a6 = 0.27886807,
214 a7 = -1.13520398, a8 = 1.48851587,
215 a9 = -0.82215223, a10 = 0.17087277;
220 if (z <= 0)
return v;
224 v = t*
Exp((-z*z) +a1+t*(a2+t*(a3+t*(a4+t*(a5+t*(a6+t*(a7+t*(a8+t*(a9+t*a10)))))))));
236 if(n <= 0)
return 1.;
257 const Double_urt p10 = 2.4266795523053175e+2, q10 = 2.1505887586986120e+2,
258 p11 = 2.1979261618294152e+1, q11 = 9.1164905404514901e+1,
259 p12 = 6.9963834886191355e+0, q12 = 1.5082797630407787e+1,
260 p13 =-3.5609843701815385e-2, q13 = 1;
262 const Double_urt p20 = 3.00459261020161601e+2, q20 = 3.00459260956983293e+2,
263 p21 = 4.51918953711872942e+2, q21 = 7.90950925327898027e+2,
264 p22 = 3.39320816734343687e+2, q22 = 9.31354094850609621e+2,
265 p23 = 1.52989285046940404e+2, q23 = 6.38980264465631167e+2,
266 p24 = 4.31622272220567353e+1, q24 = 2.77585444743987643e+2,
267 p25 = 7.21175825088309366e+0, q25 = 7.70001529352294730e+1,
268 p26 = 5.64195517478973971e-1, q26 = 1.27827273196294235e+1,
269 p27 =-1.36864857382716707e-7, q27 = 1;
271 const Double_urt p30 =-2.99610707703542174e-3, q30 = 1.06209230528467918e-2,
272 p31 =-4.94730910623250734e-2, q31 = 1.91308926107829841e-1,
273 p32 =-2.26956593539686930e-1, q32 = 1.05167510706793207e+0,
274 p33 =-2.78661308609647788e-1, q33 = 1.98733201817135256e+0,
275 p34 =-2.23192459734184686e-2, q34 = 1;
326 if (x > 0)
return 0.5 +0.5*h;
352 if (a <= 0 || x <= 0)
return 0;
354 if (x < (a+1))
return GamSer(a,x);
355 else return GamCf(a,x);
370 if (a <= 0 || x <= 0)
return 0;
378 for (
Int_urt i=1; i<=itmax; i++) {
382 if (
Abs(d) < fpmin) d = fpmin;
384 if (
Abs(c) < fpmin) c = fpmin;
388 if (
Abs(del-1) < eps)
break;
406 if (a <= 0 || x <= 0)
return 0;
412 for (
Int_urt n=1; n<=itmax; n++) {
428 Double_urt bw = gamma/((x-mean)*(x-mean) + gamma*gamma/4);
437 if (sigma == 0)
return 1.e30;
440 if (!norm)
return res;
441 return res/(2.50662827463100024*sigma);
450 Double_urt p1[5] = {0.4259894875,-0.1249762550, 0.03984243700, -0.006298287635, 0.001511162253};
451 Double_urt q1[5] = {1.0 ,-0.3388260629, 0.09594393323, -0.01608042283, 0.003778942063};
453 Double_urt p2[5] = {0.1788541609, 0.1173957403, 0.01488850518, -0.001394989411, 0.0001283617211};
454 Double_urt q2[5] = {1.0 , 0.7428795082, 0.3153932961, 0.06694219548, 0.008790609714};
456 Double_urt p3[5] = {0.1788544503, 0.09359161662,0.006325387654, 0.00006611667319,-0.000002031049101};
457 Double_urt q3[5] = {1.0 , 0.6097809921, 0.2560616665, 0.04746722384, 0.006957301675};
459 Double_urt p4[5] = {0.9874054407, 118.6723273, 849.2794360, -743.7792444, 427.0262186};
460 Double_urt q4[5] = {1.0 , 106.8615961, 337.6496214, 2016.712389, 1597.063511};
462 Double_urt p5[5] = {1.003675074, 167.5702434, 4789.711289, 21217.86767, -22324.94910};
463 Double_urt q5[5] = {1.0 , 156.9424537, 3745.310488, 9834.698876, 66924.28357};
465 Double_urt p6[5] = {1.000827619, 664.9143136, 62972.92665, 475554.6998, -5743609.109};
466 Double_urt q6[5] = {1.0 , 651.4101098, 56974.73333, 165917.4725, -2815759.939};
468 Double_urt a1[3] = {0.04166666667,-0.01996527778, 0.02709538966};
470 Double_urt a2[2] = {-1.845568670,-4.284640743};
472 if (sigma <= 0)
return 0;
479 den = 0.3989422803*(ue/us)*(1+(a1[0]+(a1[1]+a1[2]*u)*u)*u);
483 (p1[0]+(p1[1]+(p1[2]+(p1[3]+p1[4]*v)*v)*v)*v)/
484 (q1[0]+(q1[1]+(q1[2]+(q1[3]+q1[4]*v)*v)*v)*v);
486 den = (p2[0]+(p2[1]+(p2[2]+(p2[3]+p2[4]*v)*v)*v)*v)/
487 (q2[0]+(q2[1]+(q2[2]+(q2[3]+q2[4]*v)*v)*v)*v);
489 den = (p3[0]+(p3[1]+(p3[2]+(p3[3]+p3[4]*v)*v)*v)*v)/
490 (q3[0]+(q3[1]+(q3[2]+(q3[3]+q3[4]*v)*v)*v)*v);
493 den = u*u*(p4[0]+(p4[1]+(p4[2]+(p4[3]+p4[4]*u)*u)*u)*u)/
494 (q4[0]+(q4[1]+(q4[2]+(q4[3]+q4[4]*u)*u)*u)*u);
497 den = u*u*(p5[0]+(p5[1]+(p5[2]+(p5[3]+p5[4]*u)*u)*u)*u)/
498 (q5[0]+(q5[1]+(q5[2]+(q5[3]+q5[4]*u)*u)*u)*u);
501 den = u*u*(p6[0]+(p6[1]+(p6[2]+(p6[3]+p6[4]*u)*u)*u)*u)/
502 (q6[0]+(q6[1]+(q6[2]+(q6[3]+q6[4]*u)*u)*u)*u);
505 den = u*u*(1+(a2[0]+a2[1]*u)*u);
524 Double_urt c[7] = { 2.5066282746310005, 76.18009172947146, -86.50532032941677
525 ,24.01409824083091, -1.231739572450155, 0.1208650973866179e-2
526 ,-0.5395239384953e-5};
531 tmp = (x+0.5)*
Log(tmp)-tmp;
585 v1[0] = p2[0] - p1[0];
586 v1[1] = p2[1] - p1[1];
587 v1[2] = p2[2] - p1[2];
589 v2[0] = p3[0] - p1[0];
590 v2[1] = p3[1] - p1[1];
591 v2[2] = p3[2] - p1[2];
610 v1[0] = p2[0] - p1[0];
611 v1[1] = p2[1] - p1[1];
612 v1[2] = p2[2] - p1[2];
614 v2[0] = p3[0] - p1[0];
615 v2[1] = p3[1] - p1[1];
616 v2[2] = p3[2] - p1[2];
650 if (ndf <= 0)
return 0;
653 if (chi2 < 0)
return 0;
664 if (ndf > 30 && q > 5) {
670 return (1-
Gamma(0.5*ndf,0.5*chi2));
715 }
else if (u < 0.755) {
718 }
else if (u < 6.8116) {
724 for (
Int_urt j=0; j<maxj;j++) {
727 p = 2*(r[0] - r[1] +r[2] - r[3]);
759 if ((sigma < 0 || lg < 0) || (sigma==0 && lg==0)) {
764 return lg * 0.159154943 / (x*x + lg*lg /4);
768 return 0.39894228 / sigma *
URMath::Exp(-x*x / (2*sigma*sigma));
772 X = x / sigma / 1.41421356;
773 Y = lg / 2 / sigma / 1.41421356;
792 Double_urt C[6] = { 1.0117281, -0.75197147, 0.012557727, 0.010022008, -0.00024206814, 0.00000050084806};
793 Double_urt S[6] = { 1.393237, 0.23115241, -0.15535147, 0.0062183662, 0.000091908299, -0.00000062752596};
794 Double_urt T[6] = { 0.31424038, 0.94778839, 1.5976826, 2.2795071, 3.0206370, 3.8897249};
802 Double_urt A0=0, D0=0, D2=0, E0=0, E2=0, E4=0, H0=0, H2=0, H4=0, H6=0;
803 Double_urt P0=0, P2=0, P4=0, P6=0, P8=0, Z0=0, Z2=0, Z4=0, Z6=0, Z8=0;
820 XLIM3 = 3.097 * Y - 0.45;
822 XLIM4 = 18.1 * Y + 1.65;
831 K = YRRTPI / (XQ + YQ);
832 }
else if ( ABX > XLIM1 ) {
839 D = RRTPI / (D0 + XQ*(D2 + XQ));
840 K = D * Y * (A0 + XQ);
841 }
else if ( ABX > XLIM2 ) {
844 H0 = 0.5625 + YQ * (4.5 + YQ * (10.5 + YQ * (6.0 + YQ)));
846 H2 = -4.5 + YQ * (9.0 + YQ * ( 6.0 + YQ * 4.0));
847 H4 = 10.5 - YQ * (6.0 - YQ * 6.0);
848 H6 = -6.0 + YQ * 4.0;
849 E0 = 1.875 + YQ * (8.25 + YQ * (5.5 + YQ));
850 E2 = 5.25 + YQ * (1.0 + YQ * 3.0);
853 D = RRTPI / (H0 + XQ * (H2 + XQ * (H4 + XQ * (H6 + XQ))));
854 K = D * Y * (E0 + XQ * (E2 + XQ * (E4 + XQ)));
855 }
else if ( ABX < XLIM3 ) {
858 Z0 = 272.1014 + Y * (1280.829 + Y *
868 Z2 = 211.678 + Y * (902.3066 + Y *
876 Z4 = 78.86585 + Y * (308.1852 + Y *
880 (80.39278 + Y * 10.0)
882 Z6 = 22.03523 + Y * (55.02933 + Y *
884 (53.59518 + Y * 10.0)
886 Z8 = 1.496460 + Y * (13.39880 + Y * 5.0);
887 P0 = 153.5168 + Y * (549.3954 + Y *
894 (4.264678 + Y * 0.3183291)
896 P2 = -34.16955 + Y * (-1.322256+ Y *
901 (12.79458 + Y * 1.2733163)
903 P4 = 2.584042 + Y * (10.46332 + Y *
906 (12.79568 + Y * 1.9099744)
908 P6 = -0.07272979 + Y * (0.9377051 + Y *
909 (4.266322 + Y * 1.273316));
910 P8 = 0.0005480304 + Y * 0.3183291;
912 D = 1.7724538 / (Z0 + XQ * (Z2 + XQ * (Z4 + XQ * (Z6 + XQ * (Z8 + XQ)))));
913 K = D * (P0 + XQ * (P2 + XQ * (P4 + XQ * (P6 + XQ * P8))));
918 for (J = 0; J <= 5; J++) {
921 MF[J] = 1.0 / (MQ[J] + YPY0Q);
923 YM[J] = MF[J] * YPY0;
926 PF[J] = 1.0 / (PQ[J] + YPY0Q);
928 YP[J] = PF[J] * YPY0;
930 if ( ABX <= XLIM4 ) {
931 for (J = 0; J <= 5; J++) {
932 K =
K +
C[J]*(YM[J]+YP[J]) - S[J]*(XM[J]-XP[J]) ;
936 for ( J = 0; J <= 5; J++) {
938 (MQ[J] * MF[J] - Y0 * YM[J])
939 + S[J] * YF * XM[J]) / (MQ[J]+Y0Q)
940 + (
C[J] * (PQ[J] * PF[J] - Y0 * YP[J])
941 - S[J] * YF * XP[J]) / (PQ[J]+Y0Q);
943 K = Y *
K +
exp( -XQ );
946 return K / 2.506628 / sigma;
955 if (n <= 0)
return -1;
958 for (
Int_urt i = 1; i < n; i++) {
973 if (n <= 0)
return -1;
976 for (
Int_urt i = 1; i < n; i++) {
991 if (n <= 0)
return -1;
994 for (
Int_urt i = 1; i < n; i++) {
1009 if (n <= 0)
return -1;
1012 for (
Int_urt i = 1; i < n; i++) {
1027 if (n <= 0)
return -1;
1030 for (
Int_urt i = 1; i < n; i++) {
1045 if (n <= 0)
return -1;
1048 for (
Int_urt i = 1; i < n; i++) {
1063 if (n <= 0)
return -1;
1066 for (
Int_urt i = 1; i < n; i++) {
1081 if (n <= 0)
return -1;
1084 for (
Int_urt i = 1; i < n; i++) {
1099 if (n <= 0)
return -1;
1102 for (
Int_urt i = 1; i < n; i++) {
1117 if (n <= 0)
return -1;
1120 for (
Int_urt i = 1; i < n; i++) {
1138 Int_urt nabove, nbelow, middle;
1141 while(nabove-nbelow > 1) {
1142 middle = (nabove+nbelow)/2;
1143 if (value == array[middle-1])
return middle-1;
1144 if (value < array[middle-1]) nabove = middle;
1145 else nbelow = middle;
1159 Int_urt nabove, nbelow, middle;
1162 while(nabove-nbelow > 1) {
1163 middle = (nabove+nbelow)/2;
1164 if (value == *array[middle-1])
return middle-1;
1165 if (value < *array[middle-1]) nabove = middle;
1166 else nbelow = middle;
1180 Int_urt nabove, nbelow, middle;
1183 while(nabove-nbelow > 1) {
1184 middle = (nabove+nbelow)/2;
1185 if (value == array[middle-1])
return middle-1;
1186 if (value < array[middle-1]) nabove = middle;
1187 else nbelow = middle;
1201 Int_urt nabove, nbelow, middle;
1204 while(nabove-nbelow > 1) {
1205 middle = (nabove+nbelow)/2;
1206 if (value == *array[middle-1])
return middle-1;
1207 if (value < *array[middle-1]) nabove = middle;
1208 else nbelow = middle;
1222 Int_urt nabove, nbelow, middle;
1225 while(nabove-nbelow > 1) {
1226 middle = (nabove+nbelow)/2;
1227 if (value == array[middle-1])
return middle-1;
1228 if (value < array[middle-1]) nabove = middle;
1229 else nbelow = middle;
1243 Int_urt nabove, nbelow, middle;
1246 while(nabove-nbelow > 1) {
1247 middle = (nabove+nbelow)/2;
1248 if (value == *array[middle-1])
return middle-1;
1249 if (value < *array[middle-1]) nabove = middle;
1250 else nbelow = middle;
1264 Int_urt nabove, nbelow, middle;
1267 while(nabove-nbelow > 1) {
1268 middle = (nabove+nbelow)/2;
1269 if (value == array[middle-1])
return middle-1;
1270 if (value < array[middle-1]) nabove = middle;
1271 else nbelow = middle;
1285 Int_urt nabove, nbelow, middle;
1288 while(nabove-nbelow > 1) {
1289 middle = (nabove+nbelow)/2;
1290 if (value == *array[middle-1])
return middle-1;
1291 if (value < *array[middle-1]) nabove = middle;
1292 else nbelow = middle;
1306 Int_urt nabove, nbelow, middle;
1309 while(nabove-nbelow > 1) {
1310 middle = (nabove+nbelow)/2;
1311 if (value == array[middle-1])
return middle-1;
1312 if (value < array[middle-1]) nabove = middle;
1313 else nbelow = middle;
1327 Int_urt nabove, nbelow, middle;
1330 while(nabove-nbelow > 1) {
1331 middle = (nabove+nbelow)/2;
1332 if (value == *array[middle-1])
return middle-1;
1333 if (value < *array[middle-1]) nabove = middle;
1334 else nbelow = middle;
1349 for (i=0;i<np-1;i++) {
1350 if (y[i] == y[i+1])
continue;
1351 if (yp <= y[i] && yp <= y[i+1])
continue;
1352 if (y[i] < yp && y[i+1] < yp)
continue;
1353 xint = x[i] + (yp-y[i])*(x[i+1]-x[i])/(y[i+1]-y[i]);
1354 if (xp < xint) inter++;
1370 for (i=0;i<np-1;i++) {
1371 if (y[i] == y[i+1])
continue;
1372 if (yp <= y[i] && yp <= y[i+1])
continue;
1373 if (y[i] < yp && y[i+1] < yp)
continue;
1374 xint = x[i] + (yp-y[i])*(x[i+1]-x[i])/(y[i+1]-y[i]);
1391 for (i=0;i<np-1;i++) {
1392 if (y[i] == y[i+1])
continue;
1393 if (yp <= y[i] && yp <= y[i+1])
continue;
1394 if (y[i] < yp && y[i+1] < yp)
continue;
1395 xint = x[i] + (yp-y[i])*(x[i+1]-x[i])/(y[i+1]-y[i]);
1413 Int_urt i,i1,n,i2,i3,i33,i222,iswap,n2;
1418 if (n == 1) {index[0] = 0;
return;}
1419 for (i=0;i<n;i++) index[i] = i+1;
1420 for (i1=2;i1<=n;i1++) {
1428 if (ai <= a[i22-1])
break;
1437 index[n-1] = index[0];
1440 if(n-1 < 0) {index[0] = i3;
break;}
1444 if (i2 <= n) i22 = index[i2-1];
1445 if (i2-n > 0) {index[i1-1] = i3;
break;}
1448 if (a[i22-1] - a[i222-1] < 0) {
1453 if (ai - a[i22-1] > 0) {index[i1-1] = i3;
break;}
1458 for (i=0;i<n1;i++) index[i]--;
1461 for (i=0;i<n2;i++) {
1463 index[i] = index[n1-i-1];
1464 index[n1-i-1] = iswap;
1479 Int_urt i,i1,n,i2,i3,i33,i222,iswap,n2;
1484 if (n == 1) {index[0] = 0;
return;}
1485 for (i=0;i<n;i++) index[i] = i+1;
1486 for (i1=2;i1<=n;i1++) {
1494 if (ai <= a[i22-1])
break;
1503 index[n-1] = index[0];
1506 if(n-1 < 0) {index[0] = i3;
break;}
1510 if (i2 <= n) i22 = index[i2-1];
1511 if (i2-n > 0) {index[i1-1] = i3;
break;}
1514 if (a[i22-1] - a[i222-1] < 0) {
1519 if (ai - a[i22-1] > 0) {index[i1-1] = i3;
break;}
1524 for (i=0;i<n1;i++) index[i]--;
1527 for (i=0;i<n2;i++) {
1529 index[i] = index[n1-i-1];
1530 index[n1-i-1] = iswap;
1545 Int_urt i,i1,n,i2,i3,i33,i222,iswap,n2;
1550 if (n == 1) {index[0] = 0;
return;}
1551 for (i=0;i<n;i++) index[i] = i+1;
1552 for (i1=2;i1<=n;i1++) {
1560 if (ai <= a[i22-1])
break;
1569 index[n-1] = index[0];
1572 if(n-1 < 0) {index[0] = i3;
break;}
1576 if (i2 <= n) i22 = index[i2-1];
1577 if (i2-n > 0) {index[i1-1] = i3;
break;}
1580 if (a[i22-1] - a[i222-1] < 0) {
1585 if (ai - a[i22-1] > 0) {index[i1-1] = i3;
break;}
1590 for (i=0;i<n1;i++) index[i]--;
1593 for (i=0;i<n2;i++) {
1595 index[i] = index[n1-i-1];
1596 index[n1-i-1] = iswap;
1611 Int_urt i,i1,n,i2,i3,i33,i222,iswap,n2;
1616 if (n == 1) {index[0] = 0;
return;}
1617 for (i=0;i<n;i++) index[i] = i+1;
1618 for (i1=2;i1<=n;i1++) {
1626 if (ai <= a[i22-1])
break;
1635 index[n-1] = index[0];
1638 if(n-1 < 0) {index[0] = i3;
break;}
1642 if (i2 <= n) i22 = index[i2-1];
1643 if (i2-n > 0) {index[i1-1] = i3;
break;}
1646 if (a[i22-1] - a[i222-1] < 0) {
1651 if (ai - a[i22-1] > 0) {index[i1-1] = i3;
break;}
1656 for (i=0;i<n1;i++) index[i]--;
1659 for (i=0;i<n2;i++) {
1661 index[i] = index[n1-i-1];
1662 index[n1-i-1] = iswap;
1677 Int_urt i,i1,n,i2,i3,i33,i222,iswap,n2;
1682 if (n == 1) {index[0] = 0;
return;}
1683 for (i=0;i<n;i++) index[i] = i+1;
1684 for (i1=2;i1<=n;i1++) {
1692 if (ai <= a[i22-1])
break;
1701 index[n-1] = index[0];
1704 if(n-1 < 0) {index[0] = i3;
break;}
1708 if (i2 <= n) i22 = index[i2-1];
1709 if (i2-n > 0) {index[i1-1] = i3;
break;}
1712 if (a[i22-1] - a[i222-1] < 0) {
1717 if (ai - a[i22-1] > 0) {index[i1-1] = i3;
break;}
1722 for (i=0;i<n1;i++) index[i]--;
1725 for (i=0;i<n2;i++) {
1727 index[i] = index[n1-i-1];
1728 index[n1-i-1] = iswap;
1747 if (Narr <= 0)
return;
1748 double *localArr1 =
new double[Narr];
1749 int *localArr2 =
new int[Narr];
1753 for(iEl = 0; iEl < Narr; iEl++) {
1754 localArr1[iEl] = arr1[iEl];
1755 localArr2[iEl] = iEl;
1758 for (iEl = 0; iEl < Narr; iEl++) {
1759 for (iEl2 = Narr-1; iEl2 > iEl; --iEl2) {
1760 if (localArr1[iEl2-1] < localArr1[iEl2]) {
1761 double tmp = localArr1[iEl2-1];
1762 localArr1[iEl2-1] = localArr1[iEl2];
1763 localArr1[iEl2] = tmp;
1765 int tmp2 = localArr2[iEl2-1];
1766 localArr2[iEl2-1] = localArr2[iEl2];
1767 localArr2[iEl2] = tmp2;
1772 for (iEl = 0; iEl < Narr; iEl++) {
1773 arr2[iEl] = localArr2[iEl];
1775 delete [] localArr2;
1776 delete [] localArr1;
1787 if (Narr <= 0)
return;
1788 double *localArr1 =
new double[Narr];
1789 int *localArr2 =
new int[Narr];
1793 for (iEl = 0; iEl < Narr; iEl++) {
1794 localArr1[iEl] = arr1[iEl];
1795 localArr2[iEl] = iEl;
1798 for (iEl = 0; iEl < Narr; iEl++) {
1799 for (iEl2 = Narr-1; iEl2 > iEl; --iEl2) {
1800 if (localArr1[iEl2-1] > localArr1[iEl2]) {
1801 double tmp = localArr1[iEl2-1];
1802 localArr1[iEl2-1] = localArr1[iEl2];
1803 localArr1[iEl2] = tmp;
1805 int tmp2 = localArr2[iEl2-1];
1806 localArr2[iEl2-1] = localArr2[iEl2];
1807 localArr2[iEl2] = tmp2;
1812 for (iEl = 0; iEl < Narr; iEl++) {
1813 arr2[iEl] = localArr2[iEl];
1815 delete [] localArr2;
1816 delete [] localArr1;
1839 {0xb93f6fc0,0x553dfc51,0xb22c1e8c,0x638462c0,0x13e81418,0x2836e171,0x7c4abb90,0xda1a4f39
1840 ,0x38f211d1,0x8c804829,0x95a6602d,0x4c590993,0x1810580a,0x721057d4,0x0f587215,0x9f49ce2a
1841 ,0xcd5ab255,0xab923a99,0x80890f39,0xbcfa2290,0x16587b52,0x6b6d3f0d,0xea8ff307,0x51542d5c
1842 ,0x189bf223,0x39643037,0x0e4a326a,0x214eca01,0x47645a9b,0x0f364260,0x8e9b2da4,0x5563ebd9
1843 ,0x57a31c1c,0xab365854,0xdd63ab1f,0x0b89acbd,0x23d57d33,0x1800a0fd,0x225ac60a,0xd0e51943
1844 ,0x6c65f669,0xcb966ea0,0xcbafda95,0x2e5c0c5f,0x2988e87e,0xc781cbab,0x3add3dc7,0x693a2c30
1845 ,0x42d6c23c,0xebf85f26,0x2544987e,0x2e315e3f,0xac88b5b5,0x7ebd2bbb,0xda07c87b,0x20d460f1
1846 ,0xc61c3f40,0x182046e7,0x3b6c3b66,0x2fc10d4a,0x0780dfbb,0xc437280c,0x0988dd07,0xe1498606
1847 ,0x8e61d728,0x4f1f3909,0x040a9682,0x49411b29,0x391b0e1c,0xd7905241,0xdd77d95b,0x88426c13
1848 ,0x33033e58,0xe158e30e,0x7e342647,0x1e09544b,0x4637353d,0x18ea0924,0x39212b08,0x12580ae8
1849 ,0x269a6f06,0x3e10b73b,0x123db33b,0x085412da,0x3bb5f464,0xd9b2d442,0x103d26bb,0xd0038bab
1850 ,0x45b6177f,0xfb48f1fe,0x99074c55,0xb545e82e,0x5f79fd0d,0x570f3ae4,0x57e43255,0x037a12ae
1851 ,0x4357bdb2,0x337c2c4d,0x2982499d,0x2ab72793,0x3900e7d1,0x57a6bb81,0x7503609b,0x3f39c0d0
1852 ,0x717b389d,0x5748034f,0x4698162b,0x5801b97c,0x1dfd5d7e,0xc1386d1c,0xa387a72a,0x084547e4
1853 ,0x2e54d8e9,0x2e2f384c,0xe09ccc20,0x8904b71e,0x3e24edc5,0x06a22e16,0x8a2be1df,0x9e5058b2
1854 ,0xe01a2f16,0x03325eed,0x587ecfe6,0x584d9cd3,0x32926930,0xe943d68c,0xa9442da8,0xf9650560
1855 ,0xf003871e,0x1109c663,0x7a2f2f89,0x1c2210bb,0x37335787,0xb92b382f,0xea605cb5,0x336bbe38
1856 ,0x08126bd3,0x1f8c2bd6,0xba6c46f2,0x1a4d1b83,0xc988180d,0xe2582505,0xa8a1b375,0x59a08c49
1857 ,0x3db54b48,0x44400f35,0x272d4e7f,0x5579f733,0x98eb590e,0x8ee09813,0x12cc9301,0xc85c402d
1858 ,0x135c1039,0x22318128,0x4063c705,0x87a8a3fa,0xfc14431f,0x6e27bf47,0x2d080a19,0x01dba174
1859 ,0xe343530b,0xaa1bfced,0x283bb2c8,0x5df250c8,0x4ff9140b,0x045039c1,0xa377780d,0x750f2661
1860 ,0x2b108918,0x0b152120,0x3cbc251f,0x5e87b350,0x060625bb,0xe068ba3b,0xdb73ebd7,0x66014ff3
1861 ,0xdb003000,0x161a3a0b,0xdc24e142,0x97ea5575,0x635a3cab,0xa719100a,0x256084db,0xc1f4a1e7
1862 ,0xe13388f2,0xb8199fc9,0x50c70dc9,0x08154211,0xd60e5220,0xe52c6592,0x584c5fe1,0xfe5e0875
1863 ,0x21072b30,0x3370d773,0x92608fe2,0x2d013d93,0x53414b3c,0x2c066142,0x64676644,0x0420887c
1864 ,0x35c01187,0x6822119b,0xf9bfe6df,0x273f4ee4,0x87973149,0x7b41282d,0x635d0d1f,0x5f7ecc1e
1865 ,0x14c3608a,0x462dfdab,0xc33d8808,0x1dcd995e,0x0fcb11ba,0x11755914,0x5a62044b,0x37f76755
1866 ,0x345bd058,0x8831c2b5,0x204a8468,0x3b0b1cd2,0x444e56f4,0x97a93e2c,0xd5f15067,0x266a95fa
1867 ,0xff4f8036,0x6160060d,0x930c472f,0xed922184,0x37120251,0xc0add74f,0x1c0bc89d,0x018d47f2
1868 ,0xff59ef66,0xd1901a17,0x91f6701b,0x0960082f,0x86f6a8f3,0x1154fecd,0x9867d1de,0x0945482f
1869 ,0x790ffcac,0xe5610011,0x4765637e,0xa745dbff,0x841fdcb3,0x4f7372a0,0x3c05013d,0xf1ac4ab7
1870 ,0x3bc5b5cc,0x49a73349,0x356a7f67,0x1174f031,0x11d32634,0x4413d301,0x1dd285c4,0x3fae4800
1873 if (ntxt > 255) ntxt = 255;
1875 for ( ; ntxt--; uc++) {
1876 uu = uu<<1 ^ utab[(*uc) ^ ntxt];
1905 0xdd367647,0x9caf993f,0x3f3cc5ff,0xfde25082,0x4c764b21,0x89affca7,0x5431965c,0xce22eeec
1906 ,0xc61ab4dc,0x59cc93bd,0xed3107e3,0x0b0a287a,0x4712475a,0xce4a4c71,0x352c8403,0x94cb3cee
1907 ,0xc3ac509b,0x09f827a2,0xce02e37e,0x7b20bbba,0x76adcedc,0x18c52663,0x19f74103,0x6f30e47b
1908 ,0x132ea5a1,0xfdd279e0,0xa3d57d00,0xcff9cb40,0x9617f384,0x6411acfa,0xff908678,0x5c796b2c
1909 ,0x4471b62d,0xd38e3275,0xdb57912d,0x26bf953f,0xfc41b2a5,0xe64bcebd,0x190b7839,0x7e8e6a56
1910 ,0x9ca22311,0xef28aa60,0xe6b9208e,0xd257fb65,0x45781c2c,0x9a558ac3,0x2743e74d,0x839417a8
1911 ,0x06b54d5d,0x1a82bcb4,0x06e97a66,0x70abdd03,0xd163f30d,0x222ed322,0x777bfeda,0xab7a2e83
1912 ,0x8494e0cf,0x2dca2d4f,0x78f94278,0x33f04a09,0x402b6452,0x0cd8b709,0xdb72a39e,0x170e00a2
1913 ,0x26354faa,0x80e57453,0xcfe8d4e1,0x19e45254,0x04c291c3,0xeb503738,0x425af3bc,0x67836f2a
1914 ,0xfac22add,0xfafc2b8c,0x59b8c2a0,0x03e806f9,0xcb4938b9,0xccc942af,0xcee3ae2e,0xfbe748fa
1915 ,0xb223a075,0x85c49b5d,0xe4576ac9,0x0fbd46e2,0xb49f9cf5,0xf3e1e86a,0x7d7927fb,0x711afe12
1916 ,0xbf61c346,0x157c9956,0x86b6b046,0x2e402146,0xb2a57d8a,0x0d064bb1,0x30ce390c,0x3a3e1eb1
1917 ,0xbe7f6f8f,0xd8e30f87,0x5be2813c,0x73a3a901,0xa3aaf967,0x59ff092c,0x1705c798,0xf610dd66
1918 ,0xb17da91e,0x8e59534e,0x2211ea5b,0xa804ba03,0xd890efbb,0xb8b48110,0xff390068,0xc8c325b4
1919 ,0xf7289c07,0x787e104f,0x3d0df3d0,0x3526796d,0x10548055,0x1d59a42b,0xed1cc5a3,0xdd45372a
1920 ,0x31c50d57,0x65757cb7,0x3cfb85be,0xa329910d,0x6ad8ce39,0xa2de44de,0x0dd32432,0xd4a5b617
1921 ,0x8f3107fc,0x96485175,0x7f94d4f3,0x35097634,0xdb3ca782,0x2c0290b8,0x2045300b,0xe0f5d15a
1922 ,0x0e8cbffa,0xaa1cc38a,0x84008d6f,0xe9a9e794,0x5c602c25,0xfa3658fa,0x98d9d82b,0x3f1497e7
1923 ,0x84b6f031,0xe381eff9,0xfc7ae252,0xb239e05d,0xe3723d1f,0xcc3bda82,0xe21b1ad3,0x9104f7c8
1924 ,0x4bb2dfcd,0x4d14a8bc,0x6ba7f28c,0x8f89886c,0xad44c97e,0xb30fd975,0x633cdab1,0xf6c2d514
1925 ,0x067a49d2,0xdc461ad9,0xebaf9f3f,0x8dc6cac3,0x7a060f16,0xbab063ad,0xf42e25e6,0x60724ca6
1926 ,0xc7245c2e,0x4e48ea3c,0x9f89a609,0xa1c49890,0x4bb7f116,0xd722865c,0xa8ee3995,0x0ee070b1
1927 ,0xd9bffcc2,0xe55b64f9,0x25507a5a,0xc7a3e2b5,0x5f395f7e,0xe7957652,0x7381ba6a,0xde3d21f1
1928 ,0xdf1708dd,0xad0c9d0c,0x00cbc9e5,0x1160e833,0x6779582c,0x29d5d393,0x3f11d7d7,0x826a6b9b
1929 ,0xe73ff12f,0x8bad3d86,0xee41d3e5,0x7f0c8917,0x8089ef24,0x90c5cb28,0x2f7f8e6b,0x6966418a
1930 ,0x345453fb,0x7a2f8a68,0xf198593d,0xc079a532,0xc1971e81,0x1ab74e26,0x329ef347,0x7423d3d0
1931 ,0x942c510b,0x7f6c6382,0x14ae6acc,0x64b59da7,0x2356fa47,0xb6749d9c,0x499de1bb,0x92ffd191
1932 ,0xe8f2fb75,0x848dc913,0x3e8727d3,0x1dcffe61,0xb6e45245,0x49055738,0x827a6b55,0xb4788887
1933 ,0x7e680125,0xd19ce7ed,0x6b4b8e30,0xa8cadea2,0x216035d8,0x1c63bc3c,0xe1299056,0x1ad3dff4
1934 ,0x0aefd13c,0x0e7b921c,0xca0173c6,0x9995782d,0xcccfd494,0xd4b0ac88,0x53d552b1,0x630dae8b
1935 ,0xa8332dad,0x7139d9a2,0x5d76f2c4,0x7a4f8f1e,0x8d1aef97,0xd1cf285d,0xc8239153,0xce2608a9
1936 ,0x7b562475,0xe4b4bc83,0xf3db0c3a,0x70a65e48,0x6016b302,0xdebd5046,0x707e786a,0x6f10200c
1939 static const ULong_urt msk[] = { 0x11111111, 0x33333333, 0x77777777, 0xffffffff };
1950 for (i = 0; i < ntxt; i++) {
1951 idx = (uc[i] ^ i) & 255;
1952 uu = (uu << 1) ^ (utab[idx] & msk[i & 3]);
1953 if (i & 3 == 3) u.u ^= uu;
1955 if (i & 3) u.u ^= uu;
1982 const Double_urt p1=1.0, p2=3.5156229, p3=3.0899424,
1983 p4=1.2067492, p5=0.2659732, p6=3.60768e-2, p7=4.5813e-3;
1985 const Double_urt q1= 0.39894228, q2= 1.328592e-2, q3= 2.25319e-3,
1986 q4=-1.57565e-3, q5= 9.16281e-3, q6=-2.057706e-2,
1987 q7= 2.635537e-2, q8=-1.647633e-2, q9= 3.92377e-3;
1997 result = p1+y*(p2+y*(p3+y*(p4+y*(p5+y*(p6+y*p7)))));
2016 const Double_urt p1=-0.57721566, p2=0.42278420, p3=0.23069756,
2017 p4= 3.488590e-2, p5=2.62698e-3, p6=1.0750e-4, p7=7.4e-5;
2019 const Double_urt q1= 1.25331414, q2=-7.832358e-2, q3= 2.189568e-2,
2020 q4=-1.062446e-2, q5= 5.87872e-3, q6=-2.51540e-3, q7=5.3208e-4;
2023 Error(
"URMath::BesselK0",
"*K0* Invalid argument x = %g\n",x);
2034 result = (
exp(-x)/
sqrt(x))*(q1+y*(q2+y*(q3+y*(q4+y*(q5+y*(q6+y*q7))))));
2050 const Double_urt p1=0.5, p2=0.87890594, p3=0.51498869,
2051 p4=0.15084934, p5=2.658733e-2, p6=3.01532e-3, p7=3.2411e-4;
2053 const Double_urt q1= 0.39894228, q2=-3.988024e-2, q3=-3.62018e-3,
2054 q4= 1.63801e-3, q5=-1.031555e-2, q6= 2.282967e-2,
2055 q7=-2.895312e-2, q8= 1.787654e-2, q9=-4.20059e-3;
2065 result = x*(p1+y*(p2+y*(p3+y*(p4+y*(p5+y*(p6+y*p7))))));
2068 result = (
exp(ax)/
sqrt(ax))*(q1+y*(q2+y*(q3+y*(q4+y*(q5+y*(q6+y*(q7+y*(q8+y*q9))))))));
2069 if (x < 0) result = -result;
2085 const Double_urt p1= 1., p2= 0.15443144, p3=-0.67278579,
2086 p4=-0.18156897, p5=-1.919402e-2, p6=-1.10404e-3, p7=-4.686e-5;
2088 const Double_urt q1= 1.25331414, q2= 0.23498619, q3=-3.655620e-2,
2089 q4= 1.504268e-2, q5=-7.80353e-3, q6= 3.25614e-3, q7=-6.8245e-4;
2092 Error(
"URMath::BesselK1",
"*K1* Invalid argument x = %g\n",x);
2100 result = (
log(x/2.)*
URMath::BesselI1(x))+(1./x)*(p1+y*(p2+y*(p3+y*(p4+y*(p5+y*(p6+y*p7))))));
2103 result = (
exp(-x)/
sqrt(x))*(q1+y*(q2+y*(q3+y*(q4+y*(q5+y*(q6+y*q7))))));
2116 if (x <= 0 || n < 0) {
2117 Error(
"URMath::BesselK",
"*K* Invalid argument(s) (n,x) = (%d, %g)\n",n,x);
2150 Error(
"URMath::BesselI",
"*I* Invalid argument (n,x) = (%d, %g)\n",n,x);
2164 for (
Int_urt j=m; j>=1; j--) {
2170 result *= kBigNegative;
2172 bip *= kBigNegative;
2174 if (j==n) result=bip;
2178 if ((x < 0) && (n%2 == 1)) result = -result;
2190 const Double_urt p1 = 57568490574.0, p2 = -13362590354.0, p3 = 651619640.7;
2191 const Double_urt p4 = -11214424.18, p5 = 77392.33017, p6 = -184.9052456;
2192 const Double_urt p7 = 57568490411.0, p8 = 1029532985.0, p9 = 9494680.718;
2193 const Double_urt p10 = 59272.64853, p11 = 267.8532712;
2196 const Double_urt q2 = -0.1098628627e-2, q3 = 0.2734510407e-4;
2197 const Double_urt q4 = -0.2073370639e-5, q5 = 0.2093887211e-6;
2198 const Double_urt q6 = -0.1562499995e-1, q7 = 0.1430488765e-3;
2199 const Double_urt q8 = -0.6911147651e-5, q9 = 0.7621095161e-6;
2200 const Double_urt q10 = 0.934935152e-7, q11 = 0.636619772;
2202 if ((ax=fabs(x)) < 8) {
2204 result1 = p1 + y*(p2 + y*(p3 + y*(p4 + y*(p5 + y*p6))));
2205 result2 = p7 + y*(p8 + y*(p9 + y*(p10 + y*(p11 + y))));
2206 result = result1/result2;
2211 result1 = 1 + y*(q2 + y*(q3 + y*(q4 + y*q5)));
2212 result2 = q6 + y*(q7 + y*(q8 + y*(q9 - y*q10)));
2213 result =
sqrt(q11/ax)*(
cos(xx)*result1-z*
sin(xx)*result2);
2225 const Double_urt p1 = 72362614232.0, p2 = -7895059235.0, p3 = 242396853.1;
2226 const Double_urt p4 = -2972611.439, p5 = 15704.48260, p6 = -30.16036606;
2227 const Double_urt p7 = 144725228442.0, p8 = 2300535178.0, p9 = 18583304.74;
2228 const Double_urt p10 = 99447.43394, p11 = 376.9991397;
2231 const Double_urt q2 = 0.183105e-2, q3 = -0.3516396496e-4;
2232 const Double_urt q4 = 0.2457520174e-5, q5 = -0.240337019e-6;
2233 const Double_urt q6 = 0.04687499995, q7 = -0.2002690873e-3;
2234 const Double_urt q8 = 0.8449199096e-5, q9 = -0.88228987e-6;
2235 const Double_urt q10 = 0.105787412e-6, q11 = 0.636619772;
2237 if ((ax=fabs(x)) < 8) {
2239 result1 = x*(p1 + y*(p2 + y*(p3 + y*(p4 + y*(p5 + y*p6)))));
2240 result2 = p7 + y*(p8 + y*(p9 + y*(p10 + y*(p11 + y))));
2241 result = result1/result2;
2246 result1 = 1 + y*(q2 + y*(q3 + y*(q4 + y*q5)));
2247 result2 = q6 + y*(q7 + y*(q8 + y*(q9 + y*q10)));
2248 result =
sqrt(q11/ax)*(
cos(xx)*result1-z*
sin(xx)*result2);
2249 if (x < 0) result = -result;
2260 const Double_urt p1 = -2957821389., p2 = 7062834065.0, p3 = -512359803.6;
2261 const Double_urt p4 = 10879881.29, p5 = -86327.92757, p6 = 228.4622733;
2262 const Double_urt p7 = 40076544269., p8 = 745249964.8, p9 = 7189466.438;
2263 const Double_urt p10 = 47447.26470, p11 = 226.1030244, p12 = 0.636619772;
2266 const Double_urt q2 = -0.1098628627e-2, q3 = 0.2734510407e-4;
2267 const Double_urt q4 = -0.2073370639e-5, q5 = 0.2093887211e-6;
2268 const Double_urt q6 = -0.1562499995e-1, q7 = 0.1430488765e-3;
2269 const Double_urt q8 = -0.6911147651e-5, q9 = 0.7621095161e-6;
2270 const Double_urt q10 = -0.934945152e-7, q11 = 0.636619772;
2274 result1 = p1 + y*(p2 + y*(p3 + y*(p4 + y*(p5 + y*p6))));
2275 result2 = p7 + y*(p8 + y*(p9 + y*(p10 + y*(p11 + y))));
2281 result1 = 1 + y*(q2 + y*(q3 + y*(q4 + y*q5)));
2282 result2 = q6 + y*(q7 + y*(q8 + y*(q9 + y*q10)));
2283 result =
sqrt(q11/x)*(
sin(xx)*result1+z*
cos(xx)*result2);
2294 const Double_urt p1 = -0.4900604943e13, p2 = 0.1275274390e13;
2295 const Double_urt p3 = -0.5153438139e11, p4 = 0.7349264551e9;
2296 const Double_urt p5 = -0.4237922726e7, p6 = 0.8511937935e4;
2297 const Double_urt p7 = 0.2499580570e14, p8 = 0.4244419664e12;
2298 const Double_urt p9 = 0.3733650367e10, p10 = 0.2245904002e8;
2299 const Double_urt p11 = 0.1020426050e6, p12 = 0.3549632885e3;
2302 const Double_urt q2 = 0.183105e-2, q3 = -0.3516396496e-4;
2303 const Double_urt q4 = 0.2457520174e-5, q5 = -0.240337019e-6;
2304 const Double_urt q6 = 0.04687499995, q7 = -0.2002690873e-3;
2305 const Double_urt q8 = 0.8449199096e-5, q9 = -0.88228987e-6;
2306 const Double_urt q10 = 0.105787412e-6, q11 = 0.636619772;
2310 result1 = x*(p1 + y*(p2 + y*(p3 + y*(p4 + y*(p5 + y*p6)))));
2311 result2 = p7 + y*(p8 + y*(p9 + y*(p10 + y*(p11 + y*(p12+y)))));
2317 result1 = 1 + y*(q2 + y*(q3 + y*(q4 + y*q5)));
2318 result2 = q6 + y*(q7 + y*(q8 + y*(q9 + y*q10)));
2319 result =
sqrt(q11/x)*(
sin(xx)*result1+z*
cos(xx)*result2);
2333 const Double_urt c1[16] = { 1.00215845609911981, -1.63969292681309147,
2334 1.50236939618292819, -.72485115302121872,
2335 .18955327371093136, -.03067052022988,
2336 .00337561447375194, -2.6965014312602e-4,
2337 1.637461692612e-5, -7.8244408508e-7,
2338 3.021593188e-8, -9.6326645e-10,
2339 2.579337e-11, -5.8854e-13,
2340 1.158e-14, -2e-16 };
2341 const Double_urt c2[26] = { .99283727576423943, -.00696891281138625,
2342 1.8205103787037e-4, -1.063258252844e-5,
2343 9.8198294287e-7, -1.2250645445e-7,
2344 1.894083312e-8, -3.44358226e-9,
2345 7.1119102e-10, -1.6288744e-10,
2346 4.065681e-11, -1.091505e-11,
2347 3.12005e-12, -9.4202e-13,
2348 2.9848e-13, -9.872e-14,
2349 3.394e-14, -1.208e-14,
2350 4.44e-15, -1.68e-15,
2369 for (i = n1; i >= 0; --i) {
2370 b0 = c1[i] + alfa*b1 - b2;
2382 for (i = n2; i >= 0; --i) {
2383 b0 = c2[i] + alfa*b1 - b2;
2402 const Double_urt c3[17] = { .5578891446481605, -.11188325726569816,
2403 -.16337958125200939, .32256932072405902,
2404 -.14581632367244242, .03292677399374035,
2405 -.00460372142093573, 4.434706163314e-4,
2406 -3.142099529341e-5, 1.7123719938e-6,
2407 -7.416987005e-8, 2.61837671e-9,
2408 -7.685839e-11, 1.9067e-12,
2409 -4.052e-14, 7.5e-16,
2411 const Double_urt c4[23] = { 1.00757647293865641, .00750316051248257,
2412 -7.043933264519e-5, 2.66205393382e-6,
2413 -1.8841157753e-7, 1.949014958e-8,
2414 -2.6126199e-9, 4.236269e-10,
2415 -7.955156e-11, 1.679973e-11,
2416 -3.9072e-12, 9.8543e-13,
2417 -2.6636e-13, 7.645e-14,
2418 -2.313e-14, 7.33e-15,
2421 -4e-17, 2e-17,-1e-17 };
2432 }
else if (v <= 0.3) {
2437 for (i = 1; i <= i1; ++i) {
2438 h = -h*y / ((2*i+ 1)*(2*i + 3));
2448 for (i = n3; i >= 0; --i) {
2449 b0 = c3[i] + alfa*b1 - b2;
2460 for (i = n4; i >= 0; --i) {
2461 b0 = c4[i] + alfa*b1 - b2;
2488 for (
int i=1; i<=60;i++) {
2489 r*=(x/(2*i+1))*(x/(2*i+1));
2497 for (i=1; i<=km; i++) {
2498 r*=(2*i-1)*(2*i-1)/x/x;
2505 for (i=1; i<=16; i++) {
2506 r=0.125*r*(2.0*i-1.0)*(2.0*i-1.0)/(i*x);
2512 sl0=-2.0/(pi*x)*s+bi0;
2530 for (i=1; i<=60;i++) {
2531 r*=x*x/(4.0*i*i-1.0);
2540 for (i=1; i<=km; i++) {
2541 r*=(2*i+3)*(2*i+1)/x/x;
2545 sl1=2.0/pi*(-1.0+1.0/(x*x)+3.0*s/(x*x*x*x));
2549 for (i=1; i<=16; i++) {
2550 r=-0.125*r*(4.0-(2.0*i-1.0)*(2.0*i-1.0))/(i*x);
2561 cout << errorMessage <<
' ' << value << endl;
2565 URMath::Error(
const string& errorMessage,
int iValue,
double value ) {
2566 cout << errorMessage <<
' ' << intValue <<
' ' << value << endl;
static Int_urt LocMax(Int_urt n, const Short_urt *a)
static ULong_urt Hash(const void *txt, Int_urt ntxt)
static Double_urt ACosH(Double_urt)
static Float_urt * Cross(Float_urt v1[3], Float_urt v2[3], Float_urt out[3])
static Double_urt ASinH(Double_urt)
static Float_urt Normalize(Float_urt v[3])
static Double_urt KolmogorovProb(Double_urt z)
static void Sort(Int_urt n, const Short_urt *a, Int_urt *index, Bool_urt down=kurTRUE)
static Double_urt Ceil(Double_urt x)
static Double_urt BesselI1(Double_urt x)
static Short_urt Max(Short_urt a, Short_urt b)
static Int_urt Nint(Float_urt x)
static Double_urt BreitWigner(Double_urt x, Double_urt mean=0, Double_urt gamma=1)
static Double_urt StruveH1(Double_urt x)
static Double_urt Log2(Double_urt x)
static Double_urt BesselY0(Double_urt x)
static Double_urt Log10(Double_urt x)
static Double_urt BesselK0(Double_urt x)
static Int_urt LocMin(Int_urt n, const Short_urt *a)
static Double_urt Floor(Double_urt x)
static Double_urt StruveL0(Double_urt x)
static Double_urt Log(Double_urt x)
static Double_urt Hypot(Double_urt x, Double_urt y)
static Double_urt BesselI(Int_urt n, Double_urt x)
static Double_urt LnGamma(Double_urt z)
static Double_urt Exp(Double_urt)
static Double_urt Factorial(Int_urt)
static Double_urt StruveL1(Double_urt x)
static Float_urt * Normal2Plane(Float_urt v1[3], Float_urt v2[3], Float_urt v3[3], Float_urt normal[3])
static Double_urt BesselJ1(Double_urt x)
static Double_urt Erfc(Double_urt x)
static Double_urt Gamma(Double_urt z)
static Double_urt Sqrt(Double_urt x)
void Error(const std::string &errorMessage, double value)
static Double_urt BesselY1(Double_urt x)
static Double_urt Power(Double_urt x, Double_urt y)
static Double_urt BesselK1(Double_urt x)
static Long_urt NextPrime(Long_urt x)
static Short_urt Abs(Short_urt d)
unsigned short UShort_urt
static Double_urt Freq(Double_urt x)
static Double_urt Poisson(Double_urt x, Double_urt par)
static Float_urt NormCross(Float_urt v1[3], Float_urt v2[3], Float_urt out[3])
static Double_urt StruveH0(Double_urt x)
static void BubbleLow(Int_urt Narr, Double_urt *arr1, Int_urt *arr2)
static Double_urt BesselI0(Double_urt x)
static Bool_urt IsInside(Double_urt xp, Double_urt yp, Int_urt np, Double_urt *x, Double_urt *y)
static void BubbleHigh(Int_urt Narr, Double_urt *arr1, Int_urt *arr2)
static Double_urt ATanH(Double_urt)
static Double_urt BesselJ0(Double_urt x)
static Int_urt BinarySearch(Int_urt n, const Short_urt *array, Short_urt value)
static Double_urt Voigt(Double_urt x, Double_urt sigma, Double_urt lg, Int_urt R=4)
static Double_urt BesselK(Int_urt n, Double_urt x)
static Double_urt Landau(Double_urt x, Double_urt mean=0, Double_urt sigma=1)
static Double_urt Prob(Double_urt chi2, Int_urt ndf)
static Double_urt Gaus(Double_urt x, Double_urt mean=0, Double_urt sigma=1, Bool_urt norm=kurFALSE)
static Double_urt Erf(Double_urt x)