annotate lib/math.in.h @ 13983:ace70389132d

New module 'trunc-ieee'. * modules/trunc-ieee: New file. * m4/trunc.m4 (gl_FUNC_TRUNC): If gl_FUNC_TRUNC_IEEE is also used, test whether trunc works according to ISO C 99 with IEC 60559. * m4/trunc-ieee.m4: New file. * lib/math.in.h (trunc): Replace if REPLACE_TRUNC is set. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_TRUNC. * modules/math (Makefile.am): Substitute REPLACE_TRUNC. * modules/trunc-ieee-tests: New file. * tests/test-trunc-ieee.c: New file, based on tests/test-truncf-ieee.c. * tests/test-trunc1.c (main): Remove signbit tests. * modules/trunc-tests (Depends-on): Remove 'signbit'. * doc/posix-functions/trunc.texi: Mention the new module.
author Bruno Haible <bruno@clisp.org>
date Tue, 21 Dec 2010 18:30:16 +0100
parents 2c35dd380b9e
children 99b3a26ce54b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1 /* A GNU-like <math.h>.
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2
12559
c2cbabec01dd update nearly all FSF copyright year lists to include 2010
Jim Meyering <meyering@redhat.com>
parents: 12477
diff changeset
3 Copyright (C) 2002-2003, 2007-2010 Free Software Foundation, Inc.
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
4
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9297
diff changeset
5 This program is free software: you can redistribute it and/or modify
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9297
diff changeset
7 the Free Software Foundation; either version 3 of the License, or
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9297
diff changeset
8 (at your option) any later version.
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
13 GNU General Public License for more details.
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
14
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9297
diff changeset
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
17
13094
2ed0fc659db8 Emit #pragma system_header after the inclusion guard, not before.
Bruno Haible <bruno@clisp.org>
parents: 13055
diff changeset
18 #ifndef _GL_MATH_H
2ed0fc659db8 Emit #pragma system_header after the inclusion guard, not before.
Bruno Haible <bruno@clisp.org>
parents: 13055
diff changeset
19
10655
8668b19a7032 Avoid gcc warnings because of #pragma GCC system_header on older gcc.
Bruno Haible <bruno@clisp.org>
parents: 10375
diff changeset
20 #if __GNUC__ >= 3
10375
f96e845fc36d Avoid some "gcc -pedantic" warnings.
Bruno Haible <bruno@clisp.org>
parents: 10287
diff changeset
21 @PRAGMA_SYSTEM_HEADER@
10655
8668b19a7032 Avoid gcc warnings because of #pragma GCC system_header on older gcc.
Bruno Haible <bruno@clisp.org>
parents: 10375
diff changeset
22 #endif
13761
a19ace3ba849 Avoid line length limitation from HP NonStop system header files.
Bruno Haible <bruno@clisp.org>
parents: 13758
diff changeset
23 @PRAGMA_COLUMNS@
10375
f96e845fc36d Avoid some "gcc -pedantic" warnings.
Bruno Haible <bruno@clisp.org>
parents: 10287
diff changeset
24
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
25 /* The include_next requires a split double-inclusion guard. */
11583
dc80f2cc1327 Second attempt to work around an AIX 5.3, 6.1 compiler bug with include_next.
Eric Blake <ebb9@byu.net>
parents: 11525
diff changeset
26 #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
27
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
28 #ifndef _GL_MATH_H
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
29 #define _GL_MATH_H
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
30
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
31
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
32 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
33
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
34 /* The definition of _GL_ARG_NONNULL is copied here. */
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
35
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
36 /* The definition of _GL_WARN_ON_USE is copied here. */
12422
f7842310a565 New module 'arg-nonnull'. Declare which arguments expect non-NULL values.
Bruno Haible <bruno@clisp.org>
parents: 12421
diff changeset
37
12726
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
38 /* Helper macros to define a portability warning for the
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
39 classification macro FUNC called with VALUE. POSIX declares the
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
40 classification macros with an argument of real-floating (that is,
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
41 one of float, double, or long double). */
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
42 #define _GL_WARN_REAL_FLOATING_DECL(func) \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
43 static inline int \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
44 rpl_ ## func ## f (float f) \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
45 { \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
46 return func (f); \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
47 } \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
48 static inline int \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
49 rpl_ ## func ## d (double d) \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
50 { \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
51 return func (d); \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
52 } \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
53 static inline int \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
54 rpl_ ## func ## l (long double l) \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
55 { \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
56 return func (l); \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
57 } \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
58 _GL_WARN_ON_USE (rpl_ ## func ## f, #func " is unportable - " \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
59 "use gnulib module " #func " for portability"); \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
60 _GL_WARN_ON_USE (rpl_ ## func ## d, #func " is unportable - " \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
61 "use gnulib module " #func " for portability"); \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
62 _GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
63 "use gnulib module " #func " for portability")
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
64 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
65 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
66 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
67 : rpl_ ## func ## l (value))
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
68
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
69
9850
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
70 /* POSIX allows platforms that don't support NAN. But all major
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
71 machines in the past 15 years have supported something close to
9898
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
72 IEEE NaN, so we define this unconditionally. We also must define
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
73 it on platforms like Solaris 10, where NAN is present but defined
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
74 as a function pointer rather than a floating point constant. */
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
75 #if !defined NAN || @REPLACE_NAN@
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
76 # undef NAN
9850
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
77 /* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
78 # ifdef __DECC
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
79 static float
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
80 _NaN ()
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
81 {
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
82 static float zero = 0.0f;
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
83 return zero / zero;
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
84 }
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
85 # define NAN (_NaN())
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
86 # else
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
87 # define NAN (0.0f / 0.0f)
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
88 # endif
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
89 #endif
7f3ed6b093be Guarantee a definition of NAN.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
90
9898
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
91 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
92 than a floating point constant. */
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
93 #if @REPLACE_HUGE_VAL@
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
94 # undef HUGE_VAL
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
95 # define HUGE_VAL (1.0 / 0.0)
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
96 #endif
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9850
diff changeset
97
12927
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
98
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
99 /* Write x as
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
100 x = mantissa * 2^exp
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
101 where
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
102 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
103 If x is zero: mantissa = x, exp = 0.
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
104 If x is infinite or NaN: mantissa = x, exp unspecified.
9312
bec01fc15c2f Rename parameter 'exp' to 'expptr', to avoid gcc warnings.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
105 Store exp in *EXPPTR and return mantissa. */
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
106 #if @GNULIB_FREXP@
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
107 # if @REPLACE_FREXP@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
108 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
109 # define frexp rpl_frexp
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
110 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
111 _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
112 _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
113 # else
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
114 _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
115 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
116 _GL_CXXALIASWARN (frexp);
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
117 #elif defined GNULIB_POSIXCHECK
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
118 # undef frexp
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
119 /* Assume frexp is always declared. */
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
120 _GL_WARN_ON_USE (frexp, "frexp is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
121 "use gnulib module frexp for portability");
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
122 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
123
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
124
12927
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
125 #if @GNULIB_LOGB@
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
126 # if !@HAVE_DECL_LOGB@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
127 _GL_EXTERN_C double logb (double x);
12927
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
128 # endif
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
129 #elif defined GNULIB_POSIXCHECK
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
130 # undef logb
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
131 # if HAVE_RAW_DECL_LOGB
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
132 _GL_WARN_ON_USE (logb, "logb is unportable - "
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
133 "use gnulib module logb for portability");
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
134 # endif
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
135 #endif
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
136
d3ea0f2aacfc logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 12766
diff changeset
137
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
138 #if @GNULIB_ACOSL@
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
139 # if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
140 _GL_FUNCDECL_SYS (acosl, long double, (long double x));
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
141 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
142 _GL_CXXALIAS_SYS (acosl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
143 _GL_CXXALIASWARN (acosl);
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
144 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
145 # undef acosl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
146 # if HAVE_RAW_DECL_ACOSL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
147 _GL_WARN_ON_USE (acosl, "acosl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
148 "use gnulib module mathl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
149 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
150 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
151
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
152
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
153 #if @GNULIB_ASINL@
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
154 # if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
155 _GL_FUNCDECL_SYS (asinl, long double, (long double x));
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
156 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
157 _GL_CXXALIAS_SYS (asinl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
158 _GL_CXXALIASWARN (asinl);
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
159 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
160 # undef asinl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
161 # if HAVE_RAW_DECL_ASINL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
162 _GL_WARN_ON_USE (asinl, "asinl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
163 "use gnulib module mathl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
164 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
165 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
166
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
167
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
168 #if @GNULIB_ATANL@
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
169 # if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
170 _GL_FUNCDECL_SYS (atanl, long double, (long double x));
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
171 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
172 _GL_CXXALIAS_SYS (atanl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
173 _GL_CXXALIASWARN (atanl);
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
174 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
175 # undef atanl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
176 # if HAVE_RAW_DECL_ATANL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
177 _GL_WARN_ON_USE (atanl, "atanl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
178 "use gnulib module mathl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
179 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
180 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
181
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
182
9295
a19e5992f6f0 New module 'ceilf'.
Bruno Haible <bruno@clisp.org>
parents: 9293
diff changeset
183 #if @GNULIB_CEILF@
9420
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9418
diff changeset
184 # if @REPLACE_CEILF@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
185 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
186 # define ceilf rpl_ceilf
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
187 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
188 _GL_FUNCDECL_RPL (ceilf, float, (float x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
189 _GL_CXXALIAS_RPL (ceilf, float, (float x));
13142
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
190 # else
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
191 # if !@HAVE_DECL_CEILF@
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
192 _GL_FUNCDECL_SYS (ceilf, float, (float x));
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
193 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
194 _GL_CXXALIAS_SYS (ceilf, float, (float x));
9295
a19e5992f6f0 New module 'ceilf'.
Bruno Haible <bruno@clisp.org>
parents: 9293
diff changeset
195 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
196 _GL_CXXALIASWARN (ceilf);
9295
a19e5992f6f0 New module 'ceilf'.
Bruno Haible <bruno@clisp.org>
parents: 9293
diff changeset
197 #elif defined GNULIB_POSIXCHECK
a19e5992f6f0 New module 'ceilf'.
Bruno Haible <bruno@clisp.org>
parents: 9293
diff changeset
198 # undef ceilf
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
199 # if HAVE_RAW_DECL_CEILF
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
200 _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
201 "use gnulib module ceilf for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
202 # endif
9295
a19e5992f6f0 New module 'ceilf'.
Bruno Haible <bruno@clisp.org>
parents: 9293
diff changeset
203 #endif
a19e5992f6f0 New module 'ceilf'.
Bruno Haible <bruno@clisp.org>
parents: 9293
diff changeset
204
13982
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
205 #if @GNULIB_CEIL@
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
206 # if @REPLACE_CEIL@
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
207 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
208 # define ceil rpl_ceil
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
209 # endif
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
210 _GL_FUNCDECL_RPL (ceil, double, (double x));
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
211 _GL_CXXALIAS_RPL (ceil, double, (double x));
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
212 # else
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
213 _GL_CXXALIAS_SYS (ceil, double, (double x));
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
214 # endif
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
215 _GL_CXXALIASWARN (ceil);
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
216 #endif
2c35dd380b9e New module 'ceil-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13981
diff changeset
217
9297
3191943555eb New module 'ceill'.
Bruno Haible <bruno@clisp.org>
parents: 9295
diff changeset
218 #if @GNULIB_CEILL@
9420
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9418
diff changeset
219 # if @REPLACE_CEILL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
220 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
221 # define ceill rpl_ceill
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
222 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
223 _GL_FUNCDECL_RPL (ceill, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
224 _GL_CXXALIAS_RPL (ceill, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
225 # else
13142
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
226 # if !@HAVE_DECL_CEILL@
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
227 _GL_FUNCDECL_SYS (ceill, long double, (long double x));
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
228 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
229 _GL_CXXALIAS_SYS (ceill, long double, (long double x));
9297
3191943555eb New module 'ceill'.
Bruno Haible <bruno@clisp.org>
parents: 9295
diff changeset
230 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
231 _GL_CXXALIASWARN (ceill);
9297
3191943555eb New module 'ceill'.
Bruno Haible <bruno@clisp.org>
parents: 9295
diff changeset
232 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
233 # undef ceill
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
234 # if HAVE_RAW_DECL_CEILL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
235 _GL_WARN_ON_USE (ceill, "ceill is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
236 "use gnulib module ceill for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
237 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
238 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
239
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
240
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
241 #if @GNULIB_COSL@
13145
0ac425232626 math: Fix some C++ test errors on Solaris 8 and Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13143
diff changeset
242 # if !@HAVE_COSL@ || !@HAVE_DECL_COSL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
243 _GL_FUNCDECL_SYS (cosl, long double, (long double x));
13145
0ac425232626 math: Fix some C++ test errors on Solaris 8 and Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13143
diff changeset
244 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
245 _GL_CXXALIAS_SYS (cosl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
246 _GL_CXXALIASWARN (cosl);
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
247 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
248 # undef cosl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
249 # if HAVE_RAW_DECL_COSL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
250 _GL_WARN_ON_USE (cosl, "cosl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
251 "use gnulib module mathl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
252 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
253 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
254
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
255
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
256 #if @GNULIB_EXPL@
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
257 # if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
258 _GL_FUNCDECL_SYS (expl, long double, (long double x));
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
259 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
260 _GL_CXXALIAS_SYS (expl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
261 _GL_CXXALIASWARN (expl);
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
262 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
263 # undef expl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
264 # if HAVE_RAW_DECL_EXPL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
265 _GL_WARN_ON_USE (expl, "expl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
266 "use gnulib module mathl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
267 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
268 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
269
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
270
9291
5828ff66b473 New module 'floorf'.
Bruno Haible <bruno@clisp.org>
parents: 9287
diff changeset
271 #if @GNULIB_FLOORF@
9420
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9418
diff changeset
272 # if @REPLACE_FLOORF@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
273 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
274 # define floorf rpl_floorf
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
275 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
276 _GL_FUNCDECL_RPL (floorf, float, (float x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
277 _GL_CXXALIAS_RPL (floorf, float, (float x));
13973
6cd176ff76a4 math: Fix indentation.
Bruno Haible <bruno@clisp.org>
parents: 13960
diff changeset
278 # else
13142
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
279 # if !@HAVE_DECL_FLOORF@
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
280 _GL_FUNCDECL_SYS (floorf, float, (float x));
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
281 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
282 _GL_CXXALIAS_SYS (floorf, float, (float x));
9291
5828ff66b473 New module 'floorf'.
Bruno Haible <bruno@clisp.org>
parents: 9287
diff changeset
283 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
284 _GL_CXXALIASWARN (floorf);
9291
5828ff66b473 New module 'floorf'.
Bruno Haible <bruno@clisp.org>
parents: 9287
diff changeset
285 #elif defined GNULIB_POSIXCHECK
5828ff66b473 New module 'floorf'.
Bruno Haible <bruno@clisp.org>
parents: 9287
diff changeset
286 # undef floorf
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
287 # if HAVE_RAW_DECL_FLOORF
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
288 _GL_WARN_ON_USE (floorf, "floorf is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
289 "use gnulib module floorf for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
290 # endif
9291
5828ff66b473 New module 'floorf'.
Bruno Haible <bruno@clisp.org>
parents: 9287
diff changeset
291 #endif
5828ff66b473 New module 'floorf'.
Bruno Haible <bruno@clisp.org>
parents: 9287
diff changeset
292
13981
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
293 #if @GNULIB_FLOOR@
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
294 # if @REPLACE_FLOOR@
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
295 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
296 # define floor rpl_floor
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
297 # endif
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
298 _GL_FUNCDECL_RPL (floor, double, (double x));
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
299 _GL_CXXALIAS_RPL (floor, double, (double x));
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
300 # else
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
301 _GL_CXXALIAS_SYS (floor, double, (double x));
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
302 # endif
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
303 _GL_CXXALIASWARN (floor);
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
304 #endif
8a7dbd29e9a5 New module 'floor-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13979
diff changeset
305
9293
b4e0b96fc4ba New module 'floorl'.
Bruno Haible <bruno@clisp.org>
parents: 9291
diff changeset
306 #if @GNULIB_FLOORL@
9420
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9418
diff changeset
307 # if @REPLACE_FLOORL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
308 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
309 # define floorl rpl_floorl
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
310 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
311 _GL_FUNCDECL_RPL (floorl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
312 _GL_CXXALIAS_RPL (floorl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
313 # else
13142
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
314 # if !@HAVE_DECL_FLOORL@
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
315 _GL_FUNCDECL_SYS (floorl, long double, (long double x));
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
316 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
317 _GL_CXXALIAS_SYS (floorl, long double, (long double x));
9293
b4e0b96fc4ba New module 'floorl'.
Bruno Haible <bruno@clisp.org>
parents: 9291
diff changeset
318 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
319 _GL_CXXALIASWARN (floorl);
9293
b4e0b96fc4ba New module 'floorl'.
Bruno Haible <bruno@clisp.org>
parents: 9291
diff changeset
320 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
321 # undef floorl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
322 # if HAVE_RAW_DECL_FLOORL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
323 _GL_WARN_ON_USE (floorl, "floorl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
324 "use gnulib module floorl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
325 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
326 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
327
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
328
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
329 /* Write x as
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
330 x = mantissa * 2^exp
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
331 where
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
332 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
333 If x is zero: mantissa = x, exp = 0.
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
334 If x is infinite or NaN: mantissa = x, exp unspecified.
9312
bec01fc15c2f Rename parameter 'exp' to 'expptr', to avoid gcc warnings.
Bruno Haible <bruno@clisp.org>
parents: 9309
diff changeset
335 Store exp in *EXPPTR and return mantissa. */
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
336 #if @GNULIB_FREXPL@ && @REPLACE_FREXPL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
337 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
338 # define frexpl rpl_frexpl
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
339 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
340 _GL_FUNCDECL_RPL (frexpl, long double,
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
341 (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
342 _GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
343 #else
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
344 # if !@HAVE_DECL_FREXPL@
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
345 _GL_FUNCDECL_SYS (frexpl, long double,
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
346 (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
347 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
348 # if @GNULIB_FREXPL@
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
349 _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
350 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
351 #endif
13164
05d5602815b8 frexpl: Fix a C++ test error on Solaris 8 and Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13145
diff changeset
352 #if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@)
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
353 _GL_CXXALIASWARN (frexpl);
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
354 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
355 #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
356 # undef frexpl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
357 # if HAVE_RAW_DECL_FREXPL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
358 _GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
359 "use gnulib module frexpl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
360 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
361 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
362
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
363
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
364 /* Return x * 2^exp. */
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
365 #if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
366 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
367 # define ldexpl rpl_ldexpl
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
368 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
369 _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
370 _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
371 #else
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
372 # if !@HAVE_DECL_LDEXPL@
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
373 _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
374 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
375 # if @GNULIB_LDEXPL@
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
376 _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
377 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
378 #endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
379 #if @GNULIB_LDEXPL@
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
380 _GL_CXXALIASWARN (ldexpl);
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
381 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
382 #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
383 # undef ldexpl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
384 # if HAVE_RAW_DECL_LDEXPL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
385 _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
386 "use gnulib module ldexpl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
387 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
388 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
389
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
390
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
391 #if @GNULIB_LOGL@
13145
0ac425232626 math: Fix some C++ test errors on Solaris 8 and Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13143
diff changeset
392 # if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
393 _GL_FUNCDECL_SYS (logl, long double, (long double x));
13145
0ac425232626 math: Fix some C++ test errors on Solaris 8 and Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13143
diff changeset
394 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
395 _GL_CXXALIAS_SYS (logl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
396 _GL_CXXALIASWARN (logl);
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
397 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
398 # undef logl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
399 # if HAVE_RAW_DECL_LOGL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
400 _GL_WARN_ON_USE (logl, "logl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
401 "use gnulib module mathl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
402 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
403 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
404
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
405
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
406 #if @GNULIB_ROUNDF@
9465
4a3319c82e39 Use REPLACE_ROUND instead of HAVE_DECL_ROUND.
Bruno Haible <bruno@clisp.org>
parents: 9423
diff changeset
407 # if @REPLACE_ROUNDF@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
408 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
409 # undef roundf
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
410 # define roundf rpl_roundf
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
411 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
412 _GL_FUNCDECL_RPL (roundf, float, (float x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
413 _GL_CXXALIAS_RPL (roundf, float, (float x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
414 # else
13142
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
415 # if !@HAVE_DECL_ROUNDF@
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
416 _GL_FUNCDECL_SYS (roundf, float, (float x));
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
417 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
418 _GL_CXXALIAS_SYS (roundf, float, (float x));
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
419 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
420 _GL_CXXALIASWARN (roundf);
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
421 #elif defined GNULIB_POSIXCHECK
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
422 # undef roundf
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
423 # if HAVE_RAW_DECL_ROUNDF
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
424 _GL_WARN_ON_USE (roundf, "roundf is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
425 "use gnulib module roundf for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
426 # endif
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
427 #endif
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
428
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
429 #if @GNULIB_ROUND@
9465
4a3319c82e39 Use REPLACE_ROUND instead of HAVE_DECL_ROUND.
Bruno Haible <bruno@clisp.org>
parents: 9423
diff changeset
430 # if @REPLACE_ROUND@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
431 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
432 # undef round
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
433 # define round rpl_round
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
434 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
435 _GL_FUNCDECL_RPL (round, double, (double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
436 _GL_CXXALIAS_RPL (round, double, (double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
437 # else
13142
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
438 # if !@HAVE_DECL_ROUND@
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
439 _GL_FUNCDECL_SYS (round, double, (double x));
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
440 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
441 _GL_CXXALIAS_SYS (round, double, (double x));
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
442 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
443 _GL_CXXALIASWARN (round);
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
444 #elif defined GNULIB_POSIXCHECK
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
445 # undef round
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
446 # if HAVE_RAW_DECL_ROUND
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
447 _GL_WARN_ON_USE (round, "round is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
448 "use gnulib module round for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
449 # endif
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
450 #endif
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
451
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
452 #if @GNULIB_ROUNDL@
9465
4a3319c82e39 Use REPLACE_ROUND instead of HAVE_DECL_ROUND.
Bruno Haible <bruno@clisp.org>
parents: 9423
diff changeset
453 # if @REPLACE_ROUNDL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
454 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
455 # undef roundl
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
456 # define roundl rpl_roundl
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
457 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
458 _GL_FUNCDECL_RPL (roundl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
459 _GL_CXXALIAS_RPL (roundl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
460 # else
13142
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
461 # if !@HAVE_DECL_ROUNDL@
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
462 _GL_FUNCDECL_SYS (roundl, long double, (long double x));
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
463 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
464 _GL_CXXALIAS_SYS (roundl, long double, (long double x));
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
465 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
466 _GL_CXXALIASWARN (roundl);
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
467 #elif defined GNULIB_POSIXCHECK
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
468 # undef roundl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
469 # if HAVE_RAW_DECL_ROUNDL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
470 _GL_WARN_ON_USE (roundl, "roundl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
471 "use gnulib module roundl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
472 # endif
9375
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
473 #endif
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
474
96fea5b2eb11 Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9312
diff changeset
475
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
476 #if @GNULIB_SINL@
13145
0ac425232626 math: Fix some C++ test errors on Solaris 8 and Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13143
diff changeset
477 # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
478 _GL_FUNCDECL_SYS (sinl, long double, (long double x));
13145
0ac425232626 math: Fix some C++ test errors on Solaris 8 and Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13143
diff changeset
479 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
480 _GL_CXXALIAS_SYS (sinl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
481 _GL_CXXALIASWARN (sinl);
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
482 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
483 # undef sinl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
484 # if HAVE_RAW_DECL_SINL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
485 _GL_WARN_ON_USE (sinl, "sinl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
486 "use gnulib module mathl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
487 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
488 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
489
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
490
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
491 #if @GNULIB_SQRTL@
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
492 # if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
493 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
494 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
495 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
496 _GL_CXXALIASWARN (sqrtl);
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
497 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
498 # undef sqrtl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
499 # if HAVE_RAW_DECL_SQRTL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
500 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
501 "use gnulib module mathl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
502 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
503 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
504
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
505
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
506 #if @GNULIB_TANL@
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
507 # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
508 _GL_FUNCDECL_SYS (tanl, long double, (long double x));
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
509 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
510 _GL_CXXALIAS_SYS (tanl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
511 _GL_CXXALIASWARN (tanl);
12752
73d9dd27dc41 New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents: 12726
diff changeset
512 #elif defined GNULIB_POSIXCHECK
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
513 # undef tanl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
514 # if HAVE_RAW_DECL_TANL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
515 _GL_WARN_ON_USE (tanl, "tanl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
516 "use gnulib module mathl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
517 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
518 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
519
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
520
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
521 #if @GNULIB_TRUNCF@
13979
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
522 # if @REPLACE_TRUNCF@
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
523 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
524 # define truncf rpl_truncf
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
525 # endif
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
526 _GL_FUNCDECL_RPL (truncf, float, (float x));
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
527 _GL_CXXALIAS_RPL (truncf, float, (float x));
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
528 # else
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
529 # if !@HAVE_DECL_TRUNCF@
13143
cdede380a9a1 math: Fix some C++ test errors on Solaris 8.
Bruno Haible <bruno@clisp.org>
parents: 13142
diff changeset
530 _GL_FUNCDECL_SYS (truncf, float, (float x));
13979
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
531 # endif
84d7ae75b38f New module 'truncf-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13973
diff changeset
532 _GL_CXXALIAS_SYS (truncf, float, (float x));
13143
cdede380a9a1 math: Fix some C++ test errors on Solaris 8.
Bruno Haible <bruno@clisp.org>
parents: 13142
diff changeset
533 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
534 _GL_CXXALIASWARN (truncf);
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
535 #elif defined GNULIB_POSIXCHECK
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
536 # undef truncf
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
537 # if HAVE_RAW_DECL_TRUNCF
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
538 _GL_WARN_ON_USE (truncf, "truncf is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
539 "use gnulib module truncf for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
540 # endif
9285
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
541 #endif
79e67a783774 New module 'truncf'.
Bruno Haible <bruno@clisp.org>
parents: 9282
diff changeset
542
9282
9a26e94f946a New module 'trunc'.
Bruno Haible <bruno@clisp.org>
parents: 9255
diff changeset
543 #if @GNULIB_TRUNC@
13983
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
544 # if @REPLACE_TRUNC@
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
545 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
546 # define trunc rpl_trunc
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
547 # endif
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
548 _GL_FUNCDECL_RPL (trunc, double, (double x));
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
549 _GL_CXXALIAS_RPL (trunc, double, (double x));
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
550 # else
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
551 # if !@HAVE_DECL_TRUNC@
13143
cdede380a9a1 math: Fix some C++ test errors on Solaris 8.
Bruno Haible <bruno@clisp.org>
parents: 13142
diff changeset
552 _GL_FUNCDECL_SYS (trunc, double, (double x));
13983
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
553 # endif
ace70389132d New module 'trunc-ieee'.
Bruno Haible <bruno@clisp.org>
parents: 13982
diff changeset
554 _GL_CXXALIAS_SYS (trunc, double, (double x));
13143
cdede380a9a1 math: Fix some C++ test errors on Solaris 8.
Bruno Haible <bruno@clisp.org>
parents: 13142
diff changeset
555 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
556 _GL_CXXALIASWARN (trunc);
9282
9a26e94f946a New module 'trunc'.
Bruno Haible <bruno@clisp.org>
parents: 9255
diff changeset
557 #elif defined GNULIB_POSIXCHECK
9a26e94f946a New module 'trunc'.
Bruno Haible <bruno@clisp.org>
parents: 9255
diff changeset
558 # undef trunc
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
559 # if HAVE_RAW_DECL_TRUNC
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
560 _GL_WARN_ON_USE (trunc, "trunc is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
561 "use gnulib module trunc for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
562 # endif
9282
9a26e94f946a New module 'trunc'.
Bruno Haible <bruno@clisp.org>
parents: 9255
diff changeset
563 #endif
9a26e94f946a New module 'trunc'.
Bruno Haible <bruno@clisp.org>
parents: 9255
diff changeset
564
9287
ec7800681aff New module 'truncl'.
Bruno Haible <bruno@clisp.org>
parents: 9285
diff changeset
565 #if @GNULIB_TRUNCL@
9913
d3f5a70dc1ba Make truncl work on OSF/1 4.0.
Bruno Haible <bruno@clisp.org>
parents: 9898
diff changeset
566 # if @REPLACE_TRUNCL@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
567 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
568 # undef truncl
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
569 # define truncl rpl_truncl
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
570 # endif
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
571 _GL_FUNCDECL_RPL (truncl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
572 _GL_CXXALIAS_RPL (truncl, long double, (long double x));
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
573 # else
13142
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
574 # if !@HAVE_DECL_TRUNCL@
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
575 _GL_FUNCDECL_SYS (truncl, long double, (long double x));
6b79b839590c math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents: 13094
diff changeset
576 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
577 _GL_CXXALIAS_SYS (truncl, long double, (long double x));
9287
ec7800681aff New module 'truncl'.
Bruno Haible <bruno@clisp.org>
parents: 9285
diff changeset
578 # endif
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
579 _GL_CXXALIASWARN (truncl);
9287
ec7800681aff New module 'truncl'.
Bruno Haible <bruno@clisp.org>
parents: 9285
diff changeset
580 #elif defined GNULIB_POSIXCHECK
ec7800681aff New module 'truncl'.
Bruno Haible <bruno@clisp.org>
parents: 9285
diff changeset
581 # undef truncl
12766
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
582 # if HAVE_RAW_DECL_TRUNCL
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
583 _GL_WARN_ON_USE (truncl, "truncl is unportable - "
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
584 "use gnulib module truncl for portability");
2c14f1e449e5 warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents: 12752
diff changeset
585 # endif
9287
ec7800681aff New module 'truncl'.
Bruno Haible <bruno@clisp.org>
parents: 9285
diff changeset
586 #endif
ec7800681aff New module 'truncl'.
Bruno Haible <bruno@clisp.org>
parents: 9285
diff changeset
587
9418
5e7b33ec70ff Add/remove some blank lines.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
588
9414
1c5d0b856e8b Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9413
diff changeset
589 #if @GNULIB_ISFINITE@
9423
fa47aa8bb105 Use REPLACE_ISFINITE instead of HAVE_DECL_ISFINITE.
Bruno Haible <bruno@clisp.org>
parents: 9420
diff changeset
590 # if @REPLACE_ISFINITE@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
591 _GL_EXTERN_C int gl_isfinitef (float x);
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
592 _GL_EXTERN_C int gl_isfinited (double x);
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
593 _GL_EXTERN_C int gl_isfinitel (long double x);
9414
1c5d0b856e8b Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9413
diff changeset
594 # undef isfinite
1c5d0b856e8b Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9413
diff changeset
595 # define isfinite(x) \
1c5d0b856e8b Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9413
diff changeset
596 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
1c5d0b856e8b Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9413
diff changeset
597 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
1c5d0b856e8b Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9413
diff changeset
598 gl_isfinitef (x))
1c5d0b856e8b Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9413
diff changeset
599 # endif
1c5d0b856e8b Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9413
diff changeset
600 #elif defined GNULIB_POSIXCHECK
12726
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
601 # if defined isfinite
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
602 _GL_WARN_REAL_FLOATING_DECL (isfinite);
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
603 # undef isfinite
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
604 # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
605 # endif
9414
1c5d0b856e8b Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9413
diff changeset
606 #endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
607
9418
5e7b33ec70ff Add/remove some blank lines.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
608
10287
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
609 #if @GNULIB_ISINF@
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
610 # if @REPLACE_ISINF@
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
611 _GL_EXTERN_C int gl_isinff (float x);
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
612 _GL_EXTERN_C int gl_isinfd (double x);
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
613 _GL_EXTERN_C int gl_isinfl (long double x);
10287
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
614 # undef isinf
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
615 # define isinf(x) \
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
616 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
617 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
618 gl_isinff (x))
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
619 # endif
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
620 #elif defined GNULIB_POSIXCHECK
12726
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
621 # if defined isinf
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
622 _GL_WARN_REAL_FLOATING_DECL (isinf);
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
623 # undef isinf
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
624 # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
625 # endif
10287
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
626 #endif
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
627
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
628
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
629 #if @GNULIB_ISNANF@
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
630 /* Test for NaN for 'float' numbers. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
631 # if @HAVE_ISNANF@
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
632 /* The original <math.h> included above provides a declaration of isnan macro
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
633 or (older) isnanf function. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
634 # if __GNUC__ >= 4
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
635 /* GCC 4.0 and newer provides three built-ins for isnan. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
636 # undef isnanf
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
637 # define isnanf(x) __builtin_isnanf ((float)(x))
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
638 # elif defined isnan
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
639 # undef isnanf
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
640 # define isnanf(x) isnan ((float)(x))
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
641 # endif
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
642 # else
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
643 /* Test whether X is a NaN. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
644 # undef isnanf
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
645 # define isnanf rpl_isnanf
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
646 _GL_EXTERN_C int isnanf (float x);
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
647 # endif
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
648 #endif
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
649
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
650 #if @GNULIB_ISNAND@
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
651 /* Test for NaN for 'double' numbers.
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
652 This function is a gnulib extension, unlike isnan() which applied only
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
653 to 'double' numbers earlier but now is a type-generic macro. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
654 # if @HAVE_ISNAND@
13758
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
655 /* The original <math.h> included above provides a declaration of isnan
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
656 macro. */
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
657 # if __GNUC__ >= 4
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
658 /* GCC 4.0 and newer provides three built-ins for isnan. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
659 # undef isnand
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
660 # define isnand(x) __builtin_isnan ((double)(x))
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
661 # else
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
662 # undef isnand
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
663 # define isnand(x) isnan ((double)(x))
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
664 # endif
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
665 # else
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
666 /* Test whether X is a NaN. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
667 # undef isnand
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
668 # define isnand rpl_isnand
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
669 _GL_EXTERN_C int isnand (double x);
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
670 # endif
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
671 #endif
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
672
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
673 #if @GNULIB_ISNANL@
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
674 /* Test for NaN for 'long double' numbers. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
675 # if @HAVE_ISNANL@
13758
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
676 /* The original <math.h> included above provides a declaration of isnan
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
677 macro or (older) isnanl function. */
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
678 # if __GNUC__ >= 4
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
679 /* GCC 4.0 and newer provides three built-ins for isnan. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
680 # undef isnanl
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
681 # define isnanl(x) __builtin_isnanl ((long double)(x))
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
682 # elif defined isnan
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
683 # undef isnanl
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
684 # define isnanl(x) isnan ((long double)(x))
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
685 # endif
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
686 # else
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
687 /* Test whether X is a NaN. */
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
688 # undef isnanl
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
689 # define isnanl rpl_isnanl
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
690 _GL_EXTERN_C int isnanl (long double x);
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
691 # endif
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
692 #endif
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
693
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
694 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
695 #if @GNULIB_ISNAN@
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
696 # if @REPLACE_ISNAN@
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
697 /* We can't just use the isnanf macro (e.g.) as exposed by
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
698 isnanf.h (e.g.) here, because those may end up being macros
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
699 that recursively expand back to isnan. So use the gnulib
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
700 replacements for them directly. */
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
701 # if @HAVE_ISNANF@ && __GNUC__ >= 4
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
702 # define gl_isnan_f(x) __builtin_isnan ((float)(x))
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
703 # else
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
704 _GL_EXTERN_C int rpl_isnanf (float x);
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
705 # define gl_isnan_f(x) rpl_isnanf (x)
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
706 # endif
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
707 # if @HAVE_ISNAND@ && __GNUC__ >= 4
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
708 # define gl_isnan_d(x) __builtin_isnan ((double)(x))
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
709 # else
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
710 _GL_EXTERN_C int rpl_isnand (double x);
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
711 # define gl_isnan_d(x) rpl_isnand (x)
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
712 # endif
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10655
diff changeset
713 # if @HAVE_ISNANL@ && __GNUC__ >= 4
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
714 # define gl_isnan_l(x) __builtin_isnan ((long double)(x))
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
715 # else
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
716 _GL_EXTERN_C int rpl_isnanl (long double x);
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
717 # define gl_isnan_l(x) rpl_isnanl (x)
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
718 # endif
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
719 # undef isnan
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
720 # define isnan(x) \
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
721 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
722 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
723 gl_isnan_f (x))
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
724 # endif
13960
51218504eb9d isnan: Ensure it is a macro.
Bruno Haible <bruno@clisp.org>
parents: 13761
diff changeset
725 /* Ensure isnan is a macro. */
51218504eb9d isnan: Ensure it is a macro.
Bruno Haible <bruno@clisp.org>
parents: 13761
diff changeset
726 # ifndef isnan
51218504eb9d isnan: Ensure it is a macro.
Bruno Haible <bruno@clisp.org>
parents: 13761
diff changeset
727 # define isnan isnan
51218504eb9d isnan: Ensure it is a macro.
Bruno Haible <bruno@clisp.org>
parents: 13761
diff changeset
728 # endif
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
729 #elif defined GNULIB_POSIXCHECK
12726
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
730 # if defined isnan
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
731 _GL_WARN_REAL_FLOATING_DECL (isnan);
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
732 # undef isnan
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
733 # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
734 # endif
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
735 #endif
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
736
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9913
diff changeset
737
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
738 #if @GNULIB_SIGNBIT@
9645
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
739 # if @REPLACE_SIGNBIT_USING_GCC@
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
740 # undef signbit
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
741 /* GCC 4.0 and newer provides three built-ins for signbit. */
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
742 # define signbit(x) \
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
743 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
744 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
745 __builtin_signbitf (x))
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
746 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
747 # if @REPLACE_SIGNBIT@
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
748 # undef signbit
12936
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
749 _GL_EXTERN_C int gl_signbitf (float arg);
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
750 _GL_EXTERN_C int gl_signbitd (double arg);
9be4aca41cee math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents: 12927
diff changeset
751 _GL_EXTERN_C int gl_signbitl (long double arg);
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
752 # if __GNUC__ >= 2 && !__STRICT_ANSI__
13758
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
753 # define _GL_NUM_UINT_WORDS(type) \
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
754 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
11506
d800366aa3fe Avoid link error when creating a namespace clean library.
Bruno Haible <bruno@clisp.org>
parents: 10836
diff changeset
755 # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
11525
0b09102d516e Fix compilation error introduced on 2009-04-25.
Bruno Haible <bruno@clisp.org>
parents: 11506
diff changeset
756 # define gl_signbitf_OPTIMIZED_MACRO
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
757 # define gl_signbitf(arg) \
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
758 ({ union { float _value; \
13758
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
759 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
760 } _m; \
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
761 _m._value = (arg); \
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
762 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
763 })
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
764 # endif
11506
d800366aa3fe Avoid link error when creating a namespace clean library.
Bruno Haible <bruno@clisp.org>
parents: 10836
diff changeset
765 # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
11525
0b09102d516e Fix compilation error introduced on 2009-04-25.
Bruno Haible <bruno@clisp.org>
parents: 11506
diff changeset
766 # define gl_signbitd_OPTIMIZED_MACRO
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
767 # define gl_signbitd(arg) \
13758
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
768 ({ union { double _value; \
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
769 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
770 } _m; \
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
771 _m._value = (arg); \
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
772 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
773 })
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
774 # endif
11506
d800366aa3fe Avoid link error when creating a namespace clean library.
Bruno Haible <bruno@clisp.org>
parents: 10836
diff changeset
775 # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
11525
0b09102d516e Fix compilation error introduced on 2009-04-25.
Bruno Haible <bruno@clisp.org>
parents: 11506
diff changeset
776 # define gl_signbitl_OPTIMIZED_MACRO
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
777 # define gl_signbitl(arg) \
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
778 ({ union { long double _value; \
13758
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
779 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
780 } _m; \
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 11741
diff changeset
781 _m._value = (arg); \
13758
e50f7d9e3040 Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents: 13164
diff changeset
782 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
783 })
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
784 # endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
785 # endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
786 # define signbit(x) \
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
787 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
788 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
789 gl_signbitf (x))
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
790 # endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
791 #elif defined GNULIB_POSIXCHECK
12726
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
792 # if defined signbit
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
793 _GL_WARN_REAL_FLOATING_DECL (signbit);
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
794 # undef signbit
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
795 # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
d6da6e5f2f62 math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents: 12559
diff changeset
796 # endif
9255
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
797 #endif
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
798
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
799
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
800 #endif /* _GL_MATH_H */
590a8ac4bca4 Rename math_.h to math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
801 #endif /* _GL_MATH_H */