summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2012-06-30 14:47:23 +0000
committerenge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4>2012-06-30 14:47:23 +0000
commitd7c0d92c3f21709edade4191de0bf68413bee511 (patch)
tree088facb2db332d76b2aab31e7fa3b3c2c13892a6
parent4fa6ba816d900b6df71065ad4971e3ebb74d3056 (diff)
downloadmpc-d7c0d92c3f21709edade4191de0bf68413bee511.tar.gz
log.c: corrected error in ulp calculus
log.dat: add test case to improve coverage git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1214 211d60ee-9f03-0410-a15a-8952a2c7a4e4
-rw-r--r--src/log.c4
-rw-r--r--tests/log.dat4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/log.c b/src/log.c
index dca924a..ded1f78 100644
--- a/src/log.c
+++ b/src/log.c
@@ -191,8 +191,8 @@ do { \
mpfr_add (w, w, v, GMP_RNDN);
if (!mpfr_signbit (w)) /* v is positive, so no cancellation;
- error 11.54... ulp; error counts lost bits */
- err = 4;
+ error 22.25 ulp; error counts lost bits */
+ err = 5;
else
err = MPC_MAX (5 + mpfr_get_exp (v),
/* 21.25 ulp (v) rewritten in ulp (result, now in w) */
diff --git a/tests/log.dat b/tests/log.dat
index 9b7aab2..3da5eb2 100644
--- a/tests/log.dat
+++ b/tests/log.dat
@@ -181,3 +181,7 @@
- + 2 0 2 0x1p-1073741824 2 1 2 0x1p-1073741824 N N
- - 2 0 2 0 2 1 2 0x1p-1073741824 D D
+ + 2 0x1p-1073741824 2 0x1p-1073741824 2 1 2 0x1p-1073741824 U U
+#log (eps + i)
+- - 2 0 2 0x3p-1 2 0x1p-1073741824 2 1 N N
+- - 2 0 2 0x3p-1 2 0x1p-1073741824 2 1 D D
++ + 2 0x1p-1073741824 2 2 2 0x1p-1073741824 2 1 U U