svn commit: r275518 - head/lib/msun/src
Steve Kargl
kargl at FreeBSD.org
Fri Dec 5 19:00:56 UTC 2014
Author: kargl
Date: Fri Dec 5 19:00:55 2014
New Revision: 275518
URL: https://svnweb.freebsd.org/changeset/base/275518
Log:
Update the constants associated with the evaluation of j0f(x)
for |x| small.
While here, remove the explicit cast of 0.25 to float. Replace
a multiplication involving 0.25 by a division using an integer
constant 4. Make a similar change in j0() to minimize the diff.
Suggested by: bde
Modified:
head/lib/msun/src/e_j0.c
head/lib/msun/src/e_j0f.c
Modified: head/lib/msun/src/e_j0.c
==============================================================================
--- head/lib/msun/src/e_j0.c Fri Dec 5 18:55:32 2014 (r275517)
+++ head/lib/msun/src/e_j0.c Fri Dec 5 19:00:55 2014 (r275518)
@@ -115,7 +115,7 @@ __ieee754_j0(double x)
if(ix<0x3f200000) { /* |x| < 2**-13 */
if(huge+x>one) { /* raise inexact if x != 0 */
if(ix<0x3e400000) return one; /* |x|<2**-27 */
- else return one - 0.25*x*x;
+ else return one - x*x/4;
}
}
z = x*x;
Modified: head/lib/msun/src/e_j0f.c
==============================================================================
--- head/lib/msun/src/e_j0f.c Fri Dec 5 18:55:32 2014 (r275517)
+++ head/lib/msun/src/e_j0f.c Fri Dec 5 19:00:55 2014 (r275518)
@@ -69,10 +69,10 @@ __ieee754_j0f(float x)
}
return z;
}
- if(ix<0x39000000) { /* |x| < 2**-13 */
+ if(ix<0x3c000000) { /* |x| < 2**-7 */
if(huge+x>one) { /* raise inexact if x != 0 */
- if(ix<0x32000000) return one; /* |x|<2**-27 */
- else return one - (float)0.25*x*x;
+ if(ix<0x39800000) return one; /* |x|<2**-12 */
+ else return one - x*x/4;
}
}
z = x*x;
More information about the svn-src-head
mailing list