Bug#372544: libc6-dev: fma() is incorrect (inaccurate), not conform to C99

2007-06-14 Thread Vincent Lefevre
Note: this is upstream bug 3268: http://sourceware.org/bugzilla/show_bug.cgi?id=3268 -- Vincent Lefèvre [EMAIL PROTECTED] - Web: http://www.vinc17.org/ 100% accessible validated (X)HTML - Blog: http://www.vinc17.org/blog/ Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

Bug#372544: libc6-dev: fma() is incorrect (inaccurate), not conform to C99

2007-05-21 Thread Vincent Lefevre
On 2006-06-10 03:11:51 +0200, Vincent Lefevre wrote: The cause is that fma() is implemented on the x86 with (x * y) + z. The ISO C99 standard requires: The fma functions compute (x × y) + z, rounded as one ternary operation: they compute the value (as if) to infinite precision

Bug#372544: libc6-dev: fma() is incorrect (inaccurate), not conform to C99

2006-06-09 Thread Vincent Lefevre
Package: libc6-dev Version: 2.3.6-15 Severity: normal The fma() function is incorrect. For instance (this example is based on one given in the ieee754r mailing-list): #include stdio.h #include stdlib.h #include float.h #include math.h int main (void) { double eps, e2, f, x, z; eps =