This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] fix for accuracy problem in atan2f


Patch applied. Thanks.

-- Jeff J.

Bob Wilson wrote:
This patch fixes a problem with the accuracy of atan2f by changing to use the round-to-nearest value of pi. See http://lists.freebsd.org/pipermail/cvs-all/2004-June/067012.html for a better description of the issue. A similar change was made to glibc back in July 1997, but there was a typo in that change, for which I have just submitted a patch: http://sources.redhat.com/ml/libc-alpha/2005-07/msg00042.html. See my glibc patch if you want a testcase to demonstrate the problem.

2005-07-20  Bob Wilson  <bob.wilson@acm.org>
           Darin Petkov <darin@tensilica.com>

* libm/math/ef_atan2.c (pi, pi_lo): Use round-to-nearest value of pi.


------------------------------------------------------------------------


Index: libm/math/ef_atan2.c
===================================================================
RCS file: /cvs/src/src/newlib/libm/math/ef_atan2.c,v
retrieving revision 1.2
diff -u -r1.2 ef_atan2.c
--- libm/math/ef_atan2.c 4 Apr 2001 13:30:59 -0000 1.2
+++ libm/math/ef_atan2.c 20 Jul 2005 15:43:14 -0000
@@ -25,8 +25,8 @@
zero = 0.0,
pi_o_4 = 7.8539818525e-01, /* 0x3f490fdb */
pi_o_2 = 1.5707963705e+00, /* 0x3fc90fdb */
-pi = 3.1415925026e+00, /* 0x40490fda */
-pi_lo = 1.5099578832e-07; /* 0x34222168 */
+pi = 3.1415927410e+00, /* 0x40490fdb */
+pi_lo = -8.7422776573e-08; /* 0xb3bbbd2e */
#ifdef __STDC__
float __ieee754_atan2f(float y, float x)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]