aboutsummaryrefslogtreecommitdiff
path: root/changes
diff options
context:
space:
mode:
Diffstat (limited to 'changes')
-rw-r--r--changes77
1 files changed, 77 insertions, 0 deletions
diff --git a/changes b/changes
new file mode 100644
index 0000000..0407ab4
--- /dev/null
+++ b/changes
@@ -0,0 +1,77 @@
+21 Oct 2002
+bug fix in e_pow.c from "David G Hough at validlab.com" <validlab@validlab.com>.
+credit for bug report goes to andrew_johnson@uk.ibm.com
+test example:
+-----------------------------
+static int fail=0;
+
+trypow(x,y,z)
+double x,y,z;
+{
+extern double ieee_pow();
+double p ;
+
+p = ieee_pow(x,y);
+if (p != z) {
+ printf(" pow failure x %e y %e computed %e correct %e \n",x,y,p,z);
+ fail++;
+ return;
+}
+if (1/p != 1/z) {
+ printf(" pow failure x %e y %e computed %e correct %e \n",x,y,p,z);
+ fail++;
+ return;
+}
+}
+
+main()
+{
+
+trypow( 1.0000000001, 1.0000000001E10, 2.7182820535066154);
+trypow(-1.0000000001, 1.0000000001E10, -2.7182820535066154);
+trypow(-0.001, 1.0000000001E10, -0.0);
+trypow(-1000.0, 1.0000000001E10, -1.0/0.0);
+
+if (fail == 0) {
+ printf(" fdlibm e_pow.c seems to be current \n");
+ exit(0);
+}
+else {
+ printf(" fdlibm e_pow.c seems to be out of date \n");
+ exit(1);
+}
+
+}
+-----------------------------
+
+
+
+What's new in FDLIBM 5.3?
+
+CONFIGURE
+ To build FDLIBM, edit the supplied Makefile or create
+ a local Makefile by running "sh configure"
+ using the supplied configure script contributed by Nelson Beebe
+
+BUGS FIXED
+
+ 1. e_pow.c incorrect results when
+ x is very close to -1.0 and y is very large, e.g.
+ ieee_pow(-1.0000000000000002e+00,4.5035996273704970e+15) = 0
+ ieee_pow(-9.9999999999999978e-01,4.5035996273704970e+15) = 0
+ Correct results are close to -e and -1/e.
+
+ 2. k_tan.c error was > 1 ulp target for FDLIBM
+ 5.2: Worst error at least 1.45 ulp at
+ ieee_tan(1.7765241907548024E+269) = 1.7733884462610958E+16
+ 5.3: Worst error 0.96 ulp
+
+NOT FIXED YET
+
+ 3. Compiler failure on non-standard code
+ Statements like
+ *(1+(int*)&t1) = 0;
+ are not standard C and cause some optimizing compilers (e.g. GCC)
+ to generate bad code under optimization. These cases
+ are to be addressed in the next release.
+