summaryrefslogtreecommitdiff
path: root/lib/libm/erf.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libm/erf.c')
-rw-r--r--lib/libm/erf.c40
1 files changed, 8 insertions, 32 deletions
diff --git a/lib/libm/erf.c b/lib/libm/erf.c
index e95fb98c..25980189 100644
--- a/lib/libm/erf.c
+++ b/lib/libm/erf.c
@@ -182,10 +182,8 @@ static double erfc1(double x)
double_t s, P, Q;
s = fabs(x) - 1;
- P = pa0 +
- s * (pa1 + s * (pa2 + s * (pa3 + s * (pa4 + s * (pa5 + s * pa6)))));
- Q = 1 +
- s * (qa1 + s * (qa2 + s * (qa3 + s * (qa4 + s * (qa5 + s * qa6)))));
+ P = pa0 + s * (pa1 + s * (pa2 + s * (pa3 + s * (pa4 + s * (pa5 + s * pa6)))));
+ Q = 1 + s * (qa1 + s * (qa2 + s * (qa3 + s * (qa4 + s * (qa5 + s * qa6)))));
return 1 - erx - P / Q;
}
@@ -200,31 +198,11 @@ static double erfc2(uint32_t ix, double x)
x = fabs(x);
s = 1 / (x * x);
if (ix < 0x4006db6d) { /* |x| < 1/.35 ~ 2.85714 */
- R = ra0 +
- s * (ra1 +
- s * (ra2 +
- s * (ra3 +
- s * (ra4 +
- s * (ra5 + s * (ra6 + s * ra7))))));
- S = 1.0 +
- s * (sa1 +
- s * (sa2 +
- s * (sa3 +
- s * (sa4 +
- s * (sa5 +
- s * (sa6 +
- s * (sa7 + s * sa8)))))));
+ R = ra0 + s * (ra1 + s * (ra2 + s * (ra3 + s * (ra4 + s * (ra5 + s * (ra6 + s * ra7))))));
+ S = 1.0 + s * (sa1 + s * (sa2 + s * (sa3 + s * (sa4 + s * (sa5 + s * (sa6 + s * (sa7 + s * sa8)))))));
} else { /* |x| > 1/.35 */
- R = rb0 +
- s * (rb1 +
- s * (rb2 +
- s * (rb3 + s * (rb4 + s * (rb5 + s * rb6)))));
- S = 1.0 +
- s * (sb1 +
- s * (sb2 +
- s * (sb3 +
- s * (sb4 +
- s * (sb5 + s * (sb6 + s * sb7))))));
+ R = rb0 + s * (rb1 + s * (rb2 + s * (rb3 + s * (rb4 + s * (rb5 + s * rb6)))));
+ S = 1.0 + s * (sb1 + s * (sb2 + s * (sb3 + s * (sb4 + s * (sb5 + s * (sb6 + s * sb7))))));
}
z = x;
SET_LOW_WORD(z, 0);
@@ -251,8 +229,7 @@ double erf(double x)
}
z = x * x;
r = pp0 + z * (pp1 + z * (pp2 + z * (pp3 + z * pp4)));
- s = 1.0 +
- z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5))));
+ s = 1.0 + z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5))));
y = r / s;
return x + x * y;
}
@@ -281,8 +258,7 @@ double erfc(double x)
return 1.0 - x;
z = x * x;
r = pp0 + z * (pp1 + z * (pp2 + z * (pp3 + z * pp4)));
- s = 1.0 +
- z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5))));
+ s = 1.0 + z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5))));
y = r / s;
if (sign || ix < 0x3fd00000) { /* x < 1/4 */
return 1.0 - (x + x * y);