Paul Eggert wrote: > > How does that sound? (It's a lot of work, I know.) > > It sounds nice. You're right that it's a lot of work, though. > Is it worth the effort? (Depends on the problem you want solved > but I don't know what that is....)
The problem is that the way to test whether a math function ran into an exceptional case is platform dependent. For example, after y = sqrt (x); some platforms require if (isnan (y)) on others it's if (fetestexcept (FE_INVALID)) and on others it's if (errno == EDOM) On some platforms, two or all three among these codes work. But none of these three codes works on all platforms. > Will the <fenv.h> replacement address the documented FLT_ROUNDS > incompatibility between C99 and typical GNU platforms? Yes, by making fegetround() available on all platforms, the problem is addressed: We will be able to recommend to use the <fenv.h> API everywhere. Oh, btw, the FLT_ROUNDS incompatibility was not yet documented. Done as follows: 2011-11-06 Bruno Haible <br...@clisp.org> Doc about floating-point and math API. * doc/posix-headers/float.texi: Mention problem with FLT_ROUNDS. * doc/posix-headers/math.texi: Mention problem with math_errhandling. --- doc/posix-headers/float.texi.orig Mon Nov 7 00:21:04 2011 +++ doc/posix-headers/float.texi Mon Nov 7 00:21:00 2011 @@ -25,4 +25,8 @@ Portability problems not fixed by Gnulib: @itemize +@item +The macro @code{FLT_ROUNDS} is a constant expression and does not represent +the current rounding mode on some platforms: +glibc 2.11, HP-UX 11, mingw. @end itemize --- doc/posix-headers/math.texi.orig Mon Nov 7 00:21:04 2011 +++ doc/posix-headers/math.texi Mon Nov 7 00:12:10 2011 @@ -32,4 +32,7 @@ @item @code{NAN} is not a compile time constant with some compilers: OSF/1 with Compaq (ex-DEC) C 6.4. +@item +The macro or variable @code{math_errhandling} is not defined on some platforms: +glibc 2.11, OpenBSD 4.9, NetBSD 5.1, UP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.9, mingw, MSVC 9. @end itemize -- In memoriam Louis Philippe d'Orléans <http://en.wikipedia.org/wiki/Louis_Philippe_II,_Duke_of_Orléans>