blob: 0407ab4f23a3708d1a91a0e8760d49f90918fd30 [file] [log] [blame]
The Android Open Source Projectb07e1d92009-03-03 19:29:30 -0800121 Oct 2002
2bug fix in e_pow.c from "David G Hough at validlab.com" <validlab@validlab.com>.
3credit for bug report goes to andrew_johnson@uk.ibm.com
4test example:
5-----------------------------
6static int fail=0;
7
8trypow(x,y,z)
9double x,y,z;
10{
11extern double ieee_pow();
12double p ;
13
14p = ieee_pow(x,y);
15if (p != z) {
16 printf(" pow failure x %e y %e computed %e correct %e \n",x,y,p,z);
17 fail++;
18 return;
19}
20if (1/p != 1/z) {
21 printf(" pow failure x %e y %e computed %e correct %e \n",x,y,p,z);
22 fail++;
23 return;
24}
25}
26
27main()
28{
29
30trypow( 1.0000000001, 1.0000000001E10, 2.7182820535066154);
31trypow(-1.0000000001, 1.0000000001E10, -2.7182820535066154);
32trypow(-0.001, 1.0000000001E10, -0.0);
33trypow(-1000.0, 1.0000000001E10, -1.0/0.0);
34
35if (fail == 0) {
36 printf(" fdlibm e_pow.c seems to be current \n");
37 exit(0);
38}
39else {
40 printf(" fdlibm e_pow.c seems to be out of date \n");
41 exit(1);
42}
43
44}
45-----------------------------
46
47
48
49What's new in FDLIBM 5.3?
50
51CONFIGURE
52 To build FDLIBM, edit the supplied Makefile or create
53 a local Makefile by running "sh configure"
54 using the supplied configure script contributed by Nelson Beebe
55
56BUGS FIXED
57
58 1. e_pow.c incorrect results when
59 x is very close to -1.0 and y is very large, e.g.
60 ieee_pow(-1.0000000000000002e+00,4.5035996273704970e+15) = 0
61 ieee_pow(-9.9999999999999978e-01,4.5035996273704970e+15) = 0
62 Correct results are close to -e and -1/e.
63
64 2. k_tan.c error was > 1 ulp target for FDLIBM
65 5.2: Worst error at least 1.45 ulp at
66 ieee_tan(1.7765241907548024E+269) = 1.7733884462610958E+16
67 5.3: Worst error 0.96 ulp
68
69NOT FIXED YET
70
71 3. Compiler failure on non-standard code
72 Statements like
73 *(1+(int*)&t1) = 0;
74 are not standard C and cause some optimizing compilers (e.g. GCC)
75 to generate bad code under optimization. These cases
76 are to be addressed in the next release.
77