diff options
author | Joseph Myers <joseph@codesourcery.com> | 2016-10-28 21:15:26 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2016-10-28 21:16:58 +0000 |
commit | f82a4bdb73328bc53bdcc344622acbd96522a83c (patch) | |
tree | 4e5eddb2c0335ee5655a2014949e6e6f1f7d9b45 /manual | |
parent | 739e14f9009ff91e4a8d01776e7269fc8cbd0293 (diff) | |
download | glibc-f82a4bdb73328bc53bdcc344622acbd96522a83c.zip glibc-f82a4bdb73328bc53bdcc344622acbd96522a83c.tar.gz glibc-f82a4bdb73328bc53bdcc344622acbd96522a83c.tar.bz2 |
Add SNAN, SNANF, SNANL macros.
TS 18661-1 defines SNAN macros for signaling NaN values, suitable for
use in static initializers. This patch adds them to glibc's <math.h>
(provided you are building with GCC 3.3 or later; no attempt is made
to provide any kind of nonconforming fallback for older compilers
without the __builtin_nans functions).
Tested for x86_64 and x86.
* math/math.h
[__GLIBC_USE (IEC_60559_BFP_EXT) && __GNUC_PREREQ (3, 3)] (SNANF):
New macro.
[__GLIBC_USE (IEC_60559_BFP_EXT) && __GNUC_PREREQ (3, 3)] (SNAN):
Likewise.
[__GLIBC_USE (IEC_60559_BFP_EXT) && __GNUC_PREREQ (3, 3)] (SNANL):
Likewise.
* manual/arith.texi (Infinity and NaN): Document SNANF, SNAN and
SNANL.
* math/test-double.h (snan_value_MACRO): New macro.
* math/test-float.h (snan_value_MACRO): Likewise.
* math/test-ldouble.h (snan_value_MACRO): Likewise.
* math/libm-test.inc (issignaling_test_data): Add tests of
snan_value_MACRO.
Diffstat (limited to 'manual')
-rw-r--r-- | manual/arith.texi | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/manual/arith.texi b/manual/arith.texi index a5c04e4..f0f3bb4 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -711,6 +711,15 @@ such as by defining @code{_GNU_SOURCE}, and then you must include @file{math.h}.) @end deftypevr +@comment math.h +@comment ISO +@deftypevr Macro float SNANF +@deftypevrx Macro double SNAN +@deftypevrx Macro {long double} SNANL +These macros, defined by TS 18661-1:2014, are constant expressions for +signaling NaNs. +@end deftypevr + @w{IEEE 754} also allows for another unusual value: negative zero. This value is produced when you divide a positive number by negative infinity, or when a negative result is smaller than the limits of |