diff options
Diffstat (limited to 'lib/libm/log.c')
| -rw-r--r-- | lib/libm/log.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/libm/log.c b/lib/libm/log.c index 39d23cdd..96d6158e 100644 --- a/lib/libm/log.c +++ b/lib/libm/log.c @@ -45,10 +45,8 @@ double log(double x) r = x - 1.0; r2 = r * r; r3 = r * r2; - y = r3 * - (B[1] + r * B[2] + r2 * B[3] + - r3 * (B[4] + r * B[5] + r2 * B[6] + - r3 * (B[7] + r * B[8] + r2 * B[9] + r3 * B[10]))); + y = r3 * (B[1] + r * B[2] + r2 * B[3] + + r3 * (B[4] + r * B[5] + r2 * B[6] + r3 * (B[7] + r * B[8] + r2 * B[9] + r3 * B[10]))); /* Worst-case error is around 0.507 ULP. */ w = r * 0x1p27; double_t rhi = r + w - w; @@ -107,7 +105,6 @@ double log(double x) 0.5 + 4.13/N + abs-poly-error*2^57 ULP (+ 0.002 ULP without fma) Worst case error if |y| > 0x1p-4: 0.5 + 2.06/N + abs-poly-error*2^56 ULP (+ 0.001 ULP without fma). */ - y = lo + r2 * A[0] + - r * r2 * (A[1] + r * A[2] + r2 * (A[3] + r * A[4])) + hi; + y = lo + r2 * A[0] + r * r2 * (A[1] + r * A[2] + r2 * (A[3] + r * A[4])) + hi; return eval_as_double(y); } |
