Searched hist:fd2891004df86c868f77e042a840510c496c81aa (Results 1 – 1 of 1) sorted by relevance
/freebsd/lib/msun/src/ |
H A D | s_cbrtf.c | diff fd2891004df86c868f77e042a840510c496c81aa Thu Jan 05 10:18:48 CET 2006 Bruce Evans <bde@FreeBSD.org> Oops, on amd64 (and probably on all non-i386 systems), the previous commit broke the 2**24 cases where |x| > DBL_MAX/2. There are exponent range problems not just for denormals (underflow) but for large values (overflow). Doubles have more than enough exponent range to avoid the problems, but I forgot to convert enough terms to double, so there was an x+x term which was sometimes evaluated in float precision.
Unfortunately, this is a pessimization with some combinations of systems and compilers (it makes no difference on Athlon XP's, but on Athlon64's it gives a 5% pessimization with gcc-3.4 but not with gcc-3.3).
Exlain the problem better in comments. diff fd2891004df86c868f77e042a840510c496c81aa Thu Jan 05 10:18:48 CET 2006 Bruce Evans <bde@FreeBSD.org> Oops, on amd64 (and probably on all non-i386 systems), the previous commit broke the 2**24 cases where |x| > DBL_MAX/2. There are exponent range problems not just for denormals (underflow) but for large values (overflow). Doubles have more than enough exponent range to avoid the problems, but I forgot to convert enough terms to double, so there was an x+x term which was sometimes evaluated in float precision.
Unfortunately, this is a pessimization with some combinations of systems and compilers (it makes no difference on Athlon XP's, but on Athlon64's it gives a 5% pessimization with gcc-3.4 but not with gcc-3.3).
Exlain the problem better in comments.
|