cvs commit: src/lib/msun/src e_powf.c

Bruce Evans bde at FreeBSD.org
Thu Feb 14 02:23:52 PST 2008


bde         2008-02-14 10:23:51 UTC

  FreeBSD src repository

  Modified files:
    lib/msun/src         e_powf.c 
  Log:
  Fix the hi+lo decomposition for 2/(3ln2).  The decomposition needs to
  be into 12+24 bits of precision for extra-precision multiplication,
  but was into 13+24 bits.  On i386 with -O1 the bug was hidden by
  accidental extra precision, but on amd64, in 2^32 trials the bug
  caused about 200000 errors of more than 1 ulp, with a maximum error
  of about 80 ulps.  Now the maximum error in 2^32 trials on amd64
  is 0.8573 ulps.  It is still 0.8316 ulps on i386 with -O1.
  
  The nearby decomposition of 1/ln2 and the decomposition of 2/(3ln2) in
  the double precision version seem to be sub-optimal but not broken.
  
  Revision  Changes    Path
  1.14      +2 -2      src/lib/msun/src/e_powf.c


More information about the cvs-all mailing list