This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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 for expf wrongly returning infinity (bug 3406)


On Sun, 11 May 2008, Ulrich Drepper wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Joseph S. Myers wrote:
> > -o_threshold=  8.8721679688e+01,  /* 0x42b17180 */
> > +o_threshold=  8.8722831726e+01,  /* 0x42b17217 */
> 
> How did you arrive at that value?  Mathematically (using bc) the value
> comes out at
> 
> 88.722839054

I used MPFR to determine the value (rounded to float precision) of exp of 
successive float values, and rounded the value found for the largest float 
with output in the range of finite float values to the same number of 
decimal places used for the existing constant.  The number you give is 
between two consecutive float values, the one I give in my patch and the 
one given as "himark" in e_expf.c which is the smallest float value whose 
expf output should be infinite.  Because of how the values are used, the 
value in w_expf.c is meant to be the float value before that in e_expf.c.

-- 
Joseph S. Myers
joseph@codesourcery.com


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