27 static const double a0 = 2.5050240;
28 static const double a1 = 2.7724523;
29 static const double a2 = 2.1635544;
30 static const double a3 = 4.5585614e+01;
31 static const double b0 = 2.2157257;
32 static const double b1 = -1.4946512e+01;
33 static const double b2 = 7.9731883e+01;
34 static const double b3 = -2.7713713e+02;
35 static const double b4 = 4.0314354e+02;
36 static const double c0 = 2.4335936;
37 static const double c1 = -2.4719139e+01;
38 static const double c2 = 2.4648581e+02;
39 static const double c3 = -1.5585873e+03;
40 static const double c4 = 4.1394487e+03;
41 static const double d0 = 2.6346872;
42 static const double d1 = -4.1028898e+01;
43 static const double d2 = 7.4942805e+02;
44 static const double d3 = -8.5400893e+03;
45 static const double d4 = 4.0895693e+04;
46 static const double e0 = 2.8224654;
47 static const double e1 = -6.8317697e+01;
48 static const double e2 = 2.2566998e+03;
49 static const double e3 = -4.6004775e+04;
50 static const double e4 = 3.9399134e+05;
51 static const double f0 = -8.1807613e-02;
52 static const double f1 = -2.8358733;
53 static const double f2 = 1.4902469;
54 static const double pp1 = 0.334624883253;
55 static const double qq2 = 0.090230446775;
56 static const double qq3 = 0.049905685242;
57 static const double qq4 = 0.027852994157;
58 static const double qq5 = 0.015645650215;
64 return (((a3 * p2 + a2) * p2 + a1) * p2 + a0) * p;
70 gauinv = (((b4 * q + b3) * q + b2) * q + b1) * q + b0;
72 gauinv = (((c4 * q + c3) * q + c2) * q + c1) * q + c0;
74 gauinv = (((d4 * q + d3) * q + d2) * q + d1) * q + d0;
76 gauinv = (((e4 * q + e3) * q + e2) * q + e1) * q + e0;
78 double t =
sqrt(- 2.0 *
log(q));
79 gauinv = t + f0 + f1 / (f2 + t);
84 if(p < 0.0) gauinv = - gauinv;
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
double InverseGauss(double p0)
Inverse Gaussian density function.
Tps< T > log(const Tps< T > &x)
Natural logarithm.
constexpr double a0
Bohr radius in m.
Tps< T > sqrt(const Tps< T > &x)
Square root.