73 r =
_sign(x) * INFINITY;
77 double a[4] = {0.886226899, -1.645349621, 0.914624893, -0.140543331};
78 double b[5] = {1.0, -2.118377725, 1.442710462, -0.329097515, 0.012229801};
79 double c[4] = {-1.970840454, -1.62490649, 3.429567803, 1.641345311};
80 double d[3] = {1.0, 3.543889200, 1.637067800};
82 double z =
_sign(x) * x;
87 r = z * (((a[3] * x2 + a[2]) * x2 + a[1]) * x2 + a[0]);
88 r /= (((b[4] * x2 + b[3]) * x2 + b[2]) * x2 + b[1]) * x2 + b[0];
92 double y = sqrt(-log((1.0 - z) / 2.0));
93 r = (((c[3] * y + c[2]) * y + c[1]) * y + c[0]);
94 r /= ((d[2] * y + d[1]) * y + d[0]);
102 r -= (erf(r) - z) / ((2.0 / sqrt(M_PI)) * exp(-r * r));
103 r -= (erf(r) - z) / ((2.0 / sqrt(M_PI)) * exp(-r * r));