Mercurial > hg > octave-kai > gnulib-hg
annotate lib/math.in.h @ 16415:7dac4948337f
New module 'remainderl'.
* lib/math.in.h (remainderh): New declaration.
* lib/remainderl.c: New file.
* m4/remainderl.m4: New file.
* modules/remainderl: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether remainderl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_REMAINDERL, HAVE_REMAINDERL.
* modules/math (Makefile.am): Substitute GNULIB_REMAINDERL,
HAVE_REMAINDERL.
* doc/posix-functions/remainderl.texi: Mention the new module.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 25 Feb 2012 20:37:43 +0100 |
parents | 3a9564d7a3a5 |
children | 271a263949d9 |
rev | line source |
---|---|
9255 | 1 /* A GNU-like <math.h>. |
2 | |
16201
8250f2777afc
maint: update all copyright year number ranges
Jim Meyering <meyering@redhat.com>
parents:
16128
diff
changeset
|
3 Copyright (C) 2002-2003, 2007-2012 Free Software Foundation, Inc. |
9255 | 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 | 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 | 9 |
10 This program is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 GNU General Public License for more details. | |
14 | |
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 | 17 |
14840
5f709022a256
Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents:
14274
diff
changeset
|
18 #ifndef _@GUARD_PREFIX@_MATH_H |
13094
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 | 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 | 27 |
14840
5f709022a256
Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents:
14274
diff
changeset
|
28 #ifndef _@GUARD_PREFIX@_MATH_H |
5f709022a256
Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents:
14274
diff
changeset
|
29 #define _@GUARD_PREFIX@_MATH_H |
9255 | 30 |
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 | 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 |
15982
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
38 #ifdef __cplusplus |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
39 /* Helper macros to define type-generic function FUNC as overloaded functions, |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
40 rather than as macros like in C. POSIX declares these with an argument of |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
41 real-floating (that is, one of float, double, or long double). */ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
42 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
43 static inline int \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
44 _gl_cxx_ ## func ## f (float f) \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
45 { \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
46 return func (f); \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
47 } \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
48 static inline int \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
49 _gl_cxx_ ## func ## d (double d) \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
50 { \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
51 return func (d); \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
52 } \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
53 static inline int \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
54 _gl_cxx_ ## func ## l (long double l) \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
55 { \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
56 return func (l); \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
57 } |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
58 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
59 inline int \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
60 func (float f) \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
61 { \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
62 return _gl_cxx_ ## func ## f (f); \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
63 } \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
64 inline int \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
65 func (double d) \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
66 { \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
67 return _gl_cxx_ ## func ## d (d); \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
68 } \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
69 inline int \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
70 func (long double l) \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
71 { \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
72 return _gl_cxx_ ## func ## l (l); \ |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
73 } |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
74 #endif |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
75 |
12726
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
76 /* 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
|
77 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
|
78 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
|
79 one of float, double, or long double). */ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
80 #define _GL_WARN_REAL_FLOATING_DECL(func) \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
81 static inline int \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
82 rpl_ ## func ## f (float f) \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
83 { \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
84 return func (f); \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
85 } \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
86 static inline int \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
87 rpl_ ## func ## d (double d) \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
88 { \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
89 return func (d); \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
90 } \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
91 static inline int \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
92 rpl_ ## func ## l (long double l) \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
93 { \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
94 return func (l); \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
95 } \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
96 _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
|
97 "use gnulib module " #func " for portability"); \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
98 _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
|
99 "use gnulib module " #func " for portability"); \ |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
100 _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
|
101 "use gnulib module " #func " for portability") |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
102 #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
|
103 (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
|
104 : 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
|
105 : rpl_ ## func ## l (value)) |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
106 |
9255 | 107 |
15803
ec6332cd8838
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64.
Bruno Haible <bruno@clisp.org>
parents:
15638
diff
changeset
|
108 #if @REPLACE_ITOLD@ |
ec6332cd8838
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64.
Bruno Haible <bruno@clisp.org>
parents:
15638
diff
changeset
|
109 /* Pull in a function that fixes the 'int' to 'long double' conversion |
ec6332cd8838
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64.
Bruno Haible <bruno@clisp.org>
parents:
15638
diff
changeset
|
110 of glibc 2.7. */ |
ec6332cd8838
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64.
Bruno Haible <bruno@clisp.org>
parents:
15638
diff
changeset
|
111 _GL_EXTERN_C void _Qp_itoq (long double *, int); |
ec6332cd8838
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64.
Bruno Haible <bruno@clisp.org>
parents:
15638
diff
changeset
|
112 static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq; |
ec6332cd8838
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64.
Bruno Haible <bruno@clisp.org>
parents:
15638
diff
changeset
|
113 #endif |
ec6332cd8838
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64.
Bruno Haible <bruno@clisp.org>
parents:
15638
diff
changeset
|
114 |
ec6332cd8838
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64.
Bruno Haible <bruno@clisp.org>
parents:
15638
diff
changeset
|
115 |
9850 | 116 /* POSIX allows platforms that don't support NAN. But all major |
117 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
|
118 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
|
119 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
|
120 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
|
121 #if !defined NAN || @REPLACE_NAN@ |
14274
da5595160b9f
Allow multiple gnulib generated replacements to coexist.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
122 # if !GNULIB_defined_NAN |
da5595160b9f
Allow multiple gnulib generated replacements to coexist.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
123 # undef NAN |
15595
328819af1c02
Support for MSVC compiler: Avoid division by a literal 0.
Bruno Haible <bruno@clisp.org>
parents:
14840
diff
changeset
|
124 /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler |
328819af1c02
Support for MSVC compiler: Avoid division by a literal 0.
Bruno Haible <bruno@clisp.org>
parents:
14840
diff
changeset
|
125 choke on the expression 0.0 / 0.0. */ |
328819af1c02
Support for MSVC compiler: Avoid division by a literal 0.
Bruno Haible <bruno@clisp.org>
parents:
14840
diff
changeset
|
126 # if defined __DECC || defined _MSC_VER |
9850 | 127 static float |
128 _NaN () | |
129 { | |
130 static float zero = 0.0f; | |
131 return zero / zero; | |
132 } | |
14274
da5595160b9f
Allow multiple gnulib generated replacements to coexist.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
133 # define NAN (_NaN()) |
da5595160b9f
Allow multiple gnulib generated replacements to coexist.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
134 # else |
da5595160b9f
Allow multiple gnulib generated replacements to coexist.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
135 # define NAN (0.0f / 0.0f) |
da5595160b9f
Allow multiple gnulib generated replacements to coexist.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
136 # endif |
da5595160b9f
Allow multiple gnulib generated replacements to coexist.
Bruno Haible <bruno@clisp.org>
parents:
14079
diff
changeset
|
137 # define GNULIB_defined_NAN 1 |
9850 | 138 # endif |
139 #endif | |
140 | |
9898
02bfc9acab82
Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents:
9850
diff
changeset
|
141 /* 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
|
142 than a floating point constant. */ |
02bfc9acab82
Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents:
9850
diff
changeset
|
143 #if @REPLACE_HUGE_VAL@ |
02bfc9acab82
Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents:
9850
diff
changeset
|
144 # undef HUGE_VAL |
02bfc9acab82
Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents:
9850
diff
changeset
|
145 # define HUGE_VAL (1.0 / 0.0) |
02bfc9acab82
Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents:
9850
diff
changeset
|
146 #endif |
02bfc9acab82
Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents:
9850
diff
changeset
|
147 |
12927
d3ea0f2aacfc
logb: Provide missing declaration for Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
12766
diff
changeset
|
148 |
15884 | 149 #if @GNULIB_ACOSF@ |
150 # if !@HAVE_ACOSF@ | |
151 # undef acosf | |
152 _GL_FUNCDECL_SYS (acosf, float, (float x)); | |
153 # endif | |
154 _GL_CXXALIAS_SYS (acosf, float, (float x)); | |
155 _GL_CXXALIASWARN (acosf); | |
156 #elif defined GNULIB_POSIXCHECK | |
157 # undef acosf | |
158 # if HAVE_RAW_DECL_ACOSF | |
159 _GL_WARN_ON_USE (acosf, "acosf is unportable - " | |
160 "use gnulib module acosf for portability"); | |
161 # endif | |
162 #endif | |
163 | |
12752
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
164 #if @GNULIB_ACOSL@ |
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
165 # if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@ |
16401
2e3db69dec4a
acosl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16400
diff
changeset
|
166 # undef acosl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
167 _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
|
168 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
169 _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
|
170 _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
|
171 #elif defined GNULIB_POSIXCHECK |
9255 | 172 # undef acosl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
173 # if HAVE_RAW_DECL_ACOSL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
174 _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
|
175 "use gnulib module mathl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
176 # endif |
9255 | 177 #endif |
178 | |
9285 | 179 |
15881 | 180 #if @GNULIB_ASINF@ |
181 # if !@HAVE_ASINF@ | |
182 # undef asinf | |
183 _GL_FUNCDECL_SYS (asinf, float, (float x)); | |
184 # endif | |
185 _GL_CXXALIAS_SYS (asinf, float, (float x)); | |
186 _GL_CXXALIASWARN (asinf); | |
187 #elif defined GNULIB_POSIXCHECK | |
188 # undef asinf | |
189 # if HAVE_RAW_DECL_ASINF | |
190 _GL_WARN_ON_USE (asinf, "asinf is unportable - " | |
191 "use gnulib module asinf for portability"); | |
192 # endif | |
193 #endif | |
194 | |
12752
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
195 #if @GNULIB_ASINL@ |
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
196 # if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@ |
16400
7f26a7ed91f4
asinl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16399
diff
changeset
|
197 # undef asinl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
198 _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
|
199 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
200 _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
|
201 _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
|
202 #elif defined GNULIB_POSIXCHECK |
9255 | 203 # undef asinl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
204 # if HAVE_RAW_DECL_ASINL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
205 _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
|
206 "use gnulib module mathl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
207 # endif |
9255 | 208 #endif |
209 | |
9285 | 210 |
15887 | 211 #if @GNULIB_ATANF@ |
212 # if !@HAVE_ATANF@ | |
213 # undef atanf | |
214 _GL_FUNCDECL_SYS (atanf, float, (float x)); | |
215 # endif | |
216 _GL_CXXALIAS_SYS (atanf, float, (float x)); | |
217 _GL_CXXALIASWARN (atanf); | |
218 #elif defined GNULIB_POSIXCHECK | |
219 # undef atanf | |
220 # if HAVE_RAW_DECL_ATANF | |
221 _GL_WARN_ON_USE (atanf, "atanf is unportable - " | |
222 "use gnulib module atanf for portability"); | |
223 # endif | |
224 #endif | |
225 | |
12752
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
226 #if @GNULIB_ATANL@ |
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
227 # if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@ |
16402
2c3775efa261
atanl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16401
diff
changeset
|
228 # undef atanl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
229 _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
|
230 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
231 _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
|
232 _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
|
233 #elif defined GNULIB_POSIXCHECK |
9255 | 234 # undef atanl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
235 # if HAVE_RAW_DECL_ATANL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
236 _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
|
237 "use gnulib module mathl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
238 # endif |
9255 | 239 #endif |
240 | |
9285 | 241 |
15890 | 242 #if @GNULIB_ATAN2F@ |
243 # if !@HAVE_ATAN2F@ | |
244 # undef atan2f | |
245 _GL_FUNCDECL_SYS (atan2f, float, (float y, float x)); | |
246 # endif | |
247 _GL_CXXALIAS_SYS (atan2f, float, (float y, float x)); | |
248 _GL_CXXALIASWARN (atan2f); | |
249 #elif defined GNULIB_POSIXCHECK | |
250 # undef atan2f | |
251 # if HAVE_RAW_DECL_ATAN2F | |
252 _GL_WARN_ON_USE (atan2f, "atan2f is unportable - " | |
253 "use gnulib module atan2f for portability"); | |
254 # endif | |
255 #endif | |
256 | |
257 | |
9295 | 258 #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
|
259 # if @REPLACE_CEILF@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
260 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
15638
f2a7b56d34a3
math: Avoid macro redefinition warnings on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
15595
diff
changeset
|
261 # undef ceilf |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
262 # define ceilf rpl_ceilf |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
263 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
264 _GL_FUNCDECL_RPL (ceilf, float, (float x)); |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
265 _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
|
266 # else |
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
267 # if !@HAVE_DECL_CEILF@ |
16391
4576be79e9e7
ceilf: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16390
diff
changeset
|
268 # undef ceilf |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
269 _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
|
270 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
271 _GL_CXXALIAS_SYS (ceilf, float, (float x)); |
9295 | 272 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
273 _GL_CXXALIASWARN (ceilf); |
9295 | 274 #elif defined GNULIB_POSIXCHECK |
275 # undef ceilf | |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
276 # if HAVE_RAW_DECL_CEILF |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
277 _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
|
278 "use gnulib module ceilf for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
279 # endif |
9295 | 280 #endif |
281 | |
13982 | 282 #if @GNULIB_CEIL@ |
283 # if @REPLACE_CEIL@ | |
284 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
285 # define ceil rpl_ceil | |
286 # endif | |
287 _GL_FUNCDECL_RPL (ceil, double, (double x)); | |
288 _GL_CXXALIAS_RPL (ceil, double, (double x)); | |
289 # else | |
290 _GL_CXXALIAS_SYS (ceil, double, (double x)); | |
291 # endif | |
292 _GL_CXXALIASWARN (ceil); | |
293 #endif | |
294 | |
9297 | 295 #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
|
296 # if @REPLACE_CEILL@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
297 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
15638
f2a7b56d34a3
math: Avoid macro redefinition warnings on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
15595
diff
changeset
|
298 # undef ceill |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
299 # define ceill rpl_ceill |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
300 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
301 _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
|
302 _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
|
303 # else |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
304 # if !@HAVE_DECL_CEILL@ |
16393
43820240f265
ceill: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16392
diff
changeset
|
305 # undef ceill |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
306 _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
|
307 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
308 _GL_CXXALIAS_SYS (ceill, long double, (long double x)); |
9297 | 309 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
310 _GL_CXXALIASWARN (ceill); |
9297 | 311 #elif defined GNULIB_POSIXCHECK |
9255 | 312 # undef ceill |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
313 # if HAVE_RAW_DECL_CEILL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
314 _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
|
315 "use gnulib module ceill for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
316 # endif |
9255 | 317 #endif |
318 | |
9285 | 319 |
15911 | 320 #if @GNULIB_COPYSIGNF@ |
321 # if !@HAVE_COPYSIGNF@ | |
322 _GL_FUNCDECL_SYS (copysignf, float, (float x, float y)); | |
323 # endif | |
324 _GL_CXXALIAS_SYS (copysignf, float, (float x, float y)); | |
325 _GL_CXXALIASWARN (copysignf); | |
326 #elif defined GNULIB_POSIXCHECK | |
327 # undef copysignf | |
328 # if HAVE_RAW_DECL_COPYSIGNF | |
329 _GL_WARN_ON_USE (copysignf, "copysignf is unportable - " | |
330 "use gnulib module copysignf for portability"); | |
331 # endif | |
332 #endif | |
333 | |
334 #if @GNULIB_COPYSIGN@ | |
335 # if !@HAVE_COPYSIGN@ | |
336 _GL_FUNCDECL_SYS (copysign, double, (double x, double y)); | |
337 # endif | |
338 _GL_CXXALIAS_SYS (copysign, double, (double x, double y)); | |
339 _GL_CXXALIASWARN (copysign); | |
340 #elif defined GNULIB_POSIXCHECK | |
341 # undef copysign | |
342 # if HAVE_RAW_DECL_COPYSIGN | |
343 _GL_WARN_ON_USE (copysign, "copysign is unportable - " | |
344 "use gnulib module copysign for portability"); | |
345 # endif | |
346 #endif | |
347 | |
15913 | 348 #if @GNULIB_COPYSIGNL@ |
349 # if !@HAVE_COPYSIGNL@ | |
350 _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y)); | |
351 # endif | |
352 _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y)); | |
353 _GL_CXXALIASWARN (copysignl); | |
354 #elif defined GNULIB_POSIXCHECK | |
355 # undef copysignl | |
356 # if HAVE_RAW_DECL_COPYSIGNL | |
357 _GL_WARN_ON_USE (copysign, "copysignl is unportable - " | |
358 "use gnulib module copysignl for portability"); | |
359 # endif | |
360 #endif | |
361 | |
15911 | 362 |
15875 | 363 #if @GNULIB_COSF@ |
364 # if !@HAVE_COSF@ | |
365 # undef cosf | |
366 _GL_FUNCDECL_SYS (cosf, float, (float x)); | |
367 # endif | |
368 _GL_CXXALIAS_SYS (cosf, float, (float x)); | |
369 _GL_CXXALIASWARN (cosf); | |
370 #elif defined GNULIB_POSIXCHECK | |
371 # undef cosf | |
372 # if HAVE_RAW_DECL_COSF | |
373 _GL_WARN_ON_USE (cosf, "cosf is unportable - " | |
374 "use gnulib module cosf for portability"); | |
375 # endif | |
376 #endif | |
377 | |
12752
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
378 #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
|
379 # if !@HAVE_COSL@ || !@HAVE_DECL_COSL@ |
16398
5c120a4f2e73
cosl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16397
diff
changeset
|
380 # undef cosl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
381 _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
|
382 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
383 _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
|
384 _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
|
385 #elif defined GNULIB_POSIXCHECK |
9255 | 386 # undef cosl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
387 # if HAVE_RAW_DECL_COSL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
388 _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
|
389 "use gnulib module mathl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
390 # endif |
9255 | 391 #endif |
392 | |
9285 | 393 |
15896 | 394 #if @GNULIB_COSHF@ |
395 # if !@HAVE_COSHF@ | |
396 # undef coshf | |
397 _GL_FUNCDECL_SYS (coshf, float, (float x)); | |
398 # endif | |
399 _GL_CXXALIAS_SYS (coshf, float, (float x)); | |
400 _GL_CXXALIASWARN (coshf); | |
401 #elif defined GNULIB_POSIXCHECK | |
402 # undef coshf | |
403 # if HAVE_RAW_DECL_COSHF | |
404 _GL_WARN_ON_USE (coshf, "coshf is unportable - " | |
405 "use gnulib module coshf for portability"); | |
406 # endif | |
407 #endif | |
408 | |
409 | |
15860 | 410 #if @GNULIB_EXPF@ |
411 # if !@HAVE_EXPF@ | |
412 # undef expf | |
413 _GL_FUNCDECL_SYS (expf, float, (float x)); | |
414 # endif | |
415 _GL_CXXALIAS_SYS (expf, float, (float x)); | |
416 _GL_CXXALIASWARN (expf); | |
417 #elif defined GNULIB_POSIXCHECK | |
418 # undef expf | |
419 # if HAVE_RAW_DECL_EXPF | |
420 _GL_WARN_ON_USE (expf, "expf is unportable - " | |
421 "use gnulib module expf for portability"); | |
422 # endif | |
423 #endif | |
424 | |
12752
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
425 #if @GNULIB_EXPL@ |
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
426 # if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@ |
16395
68bd0cc2f6dd
expl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16394
diff
changeset
|
427 # undef expl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
428 _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
|
429 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
430 _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
|
431 _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
|
432 #elif defined GNULIB_POSIXCHECK |
9255 | 433 # undef expl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
434 # if HAVE_RAW_DECL_EXPL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
435 _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
|
436 "use gnulib module mathl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
437 # endif |
9255 | 438 #endif |
439 | |
9285 | 440 |
15828 | 441 #if @GNULIB_FABSF@ |
442 # if !@HAVE_FABSF@ | |
443 # undef fabsf | |
444 _GL_FUNCDECL_SYS (fabsf, float, (float x)); | |
445 # endif | |
446 _GL_CXXALIAS_SYS (fabsf, float, (float x)); | |
447 _GL_CXXALIASWARN (fabsf); | |
448 #elif defined GNULIB_POSIXCHECK | |
449 # undef fabsf | |
450 # if HAVE_RAW_DECL_FABSF | |
451 _GL_WARN_ON_USE (fabsf, "fabsf is unportable - " | |
452 "use gnulib module fabsf for portability"); | |
453 # endif | |
454 #endif | |
455 | |
16405 | 456 #if @GNULIB_FABSL@ |
457 # if @REPLACE_FABSL@ | |
458 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
459 # undef fabsl | |
460 # define fabsl rpl_fabsl | |
461 # endif | |
462 _GL_FUNCDECL_RPL (fabsl, long double, (long double x)); | |
463 _GL_CXXALIAS_RPL (fabsl, long double, (long double x)); | |
464 # else | |
465 # if !@HAVE_FABSL@ | |
466 # undef fabsl | |
467 _GL_FUNCDECL_SYS (fabsl, long double, (long double x)); | |
468 # endif | |
469 _GL_CXXALIAS_SYS (fabsl, long double, (long double x)); | |
470 # endif | |
471 _GL_CXXALIASWARN (fabsl); | |
472 #elif defined GNULIB_POSIXCHECK | |
473 # undef fabsl | |
474 # if HAVE_RAW_DECL_FABSL | |
475 _GL_WARN_ON_USE (fabsl, "fabsl is unportable - " | |
476 "use gnulib module fabsl for portability"); | |
477 # endif | |
478 #endif | |
479 | |
15828 | 480 |
9291 | 481 #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
|
482 # if @REPLACE_FLOORF@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
483 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
15638
f2a7b56d34a3
math: Avoid macro redefinition warnings on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
15595
diff
changeset
|
484 # undef floorf |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
485 # define floorf rpl_floorf |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
486 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
487 _GL_FUNCDECL_RPL (floorf, float, (float x)); |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
488 _GL_CXXALIAS_RPL (floorf, float, (float x)); |
13973 | 489 # else |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
490 # if !@HAVE_DECL_FLOORF@ |
16390
60e9584368df
floorf: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16201
diff
changeset
|
491 # undef floorf |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
492 _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
|
493 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
494 _GL_CXXALIAS_SYS (floorf, float, (float x)); |
9291 | 495 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
496 _GL_CXXALIASWARN (floorf); |
9291 | 497 #elif defined GNULIB_POSIXCHECK |
498 # undef floorf | |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
499 # if HAVE_RAW_DECL_FLOORF |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
500 _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
|
501 "use gnulib module floorf for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
502 # endif |
9291 | 503 #endif |
504 | |
13981 | 505 #if @GNULIB_FLOOR@ |
506 # if @REPLACE_FLOOR@ | |
507 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
508 # define floor rpl_floor | |
509 # endif | |
510 _GL_FUNCDECL_RPL (floor, double, (double x)); | |
511 _GL_CXXALIAS_RPL (floor, double, (double x)); | |
512 # else | |
513 _GL_CXXALIAS_SYS (floor, double, (double x)); | |
514 # endif | |
515 _GL_CXXALIASWARN (floor); | |
516 #endif | |
517 | |
9293 | 518 #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
|
519 # if @REPLACE_FLOORL@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
520 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
15638
f2a7b56d34a3
math: Avoid macro redefinition warnings on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
15595
diff
changeset
|
521 # undef floorl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
522 # define floorl rpl_floorl |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
523 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
524 _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
|
525 _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
|
526 # else |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
527 # if !@HAVE_DECL_FLOORL@ |
16392
7e35e3b2a920
floorl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16391
diff
changeset
|
528 # undef floorl |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
529 _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
|
530 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
531 _GL_CXXALIAS_SYS (floorl, long double, (long double x)); |
9293 | 532 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
533 _GL_CXXALIASWARN (floorl); |
9293 | 534 #elif defined GNULIB_POSIXCHECK |
9255 | 535 # undef floorl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
536 # if HAVE_RAW_DECL_FLOORL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
537 _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
|
538 "use gnulib module floorl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
539 # endif |
9255 | 540 #endif |
541 | |
9285 | 542 |
16040 | 543 #if @GNULIB_FMAF@ |
544 # if @REPLACE_FMAF@ | |
545 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
546 # undef fmaf | |
547 # define fmaf rpl_fmaf | |
548 # endif | |
549 _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z)); | |
550 _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z)); | |
551 # else | |
552 # if !@HAVE_FMAF@ | |
553 _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z)); | |
554 # endif | |
555 _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z)); | |
556 # endif | |
557 _GL_CXXALIASWARN (fmaf); | |
558 #elif defined GNULIB_POSIXCHECK | |
559 # undef fmaf | |
560 # if HAVE_RAW_DECL_FMAF | |
561 _GL_WARN_ON_USE (fmaf, "fmaf is unportable - " | |
562 "use gnulib module fmaf for portability"); | |
563 # endif | |
564 #endif | |
565 | |
16038 | 566 #if @GNULIB_FMA@ |
567 # if @REPLACE_FMA@ | |
568 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
569 # undef fma | |
570 # define fma rpl_fma | |
571 # endif | |
572 _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z)); | |
573 _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z)); | |
574 # else | |
575 # if !@HAVE_FMA@ | |
576 _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z)); | |
577 # endif | |
578 _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z)); | |
579 # endif | |
580 _GL_CXXALIASWARN (fma); | |
581 #elif defined GNULIB_POSIXCHECK | |
582 # undef fma | |
583 # if HAVE_RAW_DECL_FMA | |
584 _GL_WARN_ON_USE (fma, "fma is unportable - " | |
585 "use gnulib module fma for portability"); | |
586 # endif | |
587 #endif | |
588 | |
16042 | 589 #if @GNULIB_FMAL@ |
590 # if @REPLACE_FMAL@ | |
591 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
592 # undef fmal | |
593 # define fmal rpl_fmal | |
594 # endif | |
595 _GL_FUNCDECL_RPL (fmal, long double, | |
596 (long double x, long double y, long double z)); | |
597 _GL_CXXALIAS_RPL (fmal, long double, | |
598 (long double x, long double y, long double z)); | |
599 # else | |
600 # if !@HAVE_FMAL@ | |
601 _GL_FUNCDECL_SYS (fmal, long double, | |
602 (long double x, long double y, long double z)); | |
603 # endif | |
604 _GL_CXXALIAS_SYS (fmal, long double, | |
605 (long double x, long double y, long double z)); | |
606 # endif | |
607 _GL_CXXALIASWARN (fmal); | |
608 #elif defined GNULIB_POSIXCHECK | |
609 # undef fmal | |
610 # if HAVE_RAW_DECL_FMAL | |
611 _GL_WARN_ON_USE (fmal, "fmal is unportable - " | |
612 "use gnulib module fmal for portability"); | |
613 # endif | |
614 #endif | |
615 | |
16038 | 616 |
15832 | 617 #if @GNULIB_FMODF@ |
618 # if !@HAVE_FMODF@ | |
619 # undef fmodf | |
620 _GL_FUNCDECL_SYS (fmodf, float, (float x, float y)); | |
621 # endif | |
622 _GL_CXXALIAS_SYS (fmodf, float, (float x, float y)); | |
623 _GL_CXXALIASWARN (fmodf); | |
624 #elif defined GNULIB_POSIXCHECK | |
625 # undef fmodf | |
626 # if HAVE_RAW_DECL_FMODF | |
627 _GL_WARN_ON_USE (fmodf, "fmodf is unportable - " | |
628 "use gnulib module fmodf for portability"); | |
629 # endif | |
630 #endif | |
631 | |
16410 | 632 #if @GNULIB_FMODL@ |
633 # if @REPLACE_FMODL@ | |
634 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
635 # undef fmodl | |
636 # define fmodl rpl_fmodl | |
637 # endif | |
638 _GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y)); | |
639 _GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y)); | |
640 # else | |
641 # if !@HAVE_FMODL@ | |
642 # undef fmodl | |
643 _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y)); | |
644 # endif | |
645 _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y)); | |
646 # endif | |
647 _GL_CXXALIASWARN (fmodl); | |
648 #elif defined GNULIB_POSIXCHECK | |
649 # undef fmodl | |
650 # if HAVE_RAW_DECL_FMODL | |
651 _GL_WARN_ON_USE (fmodl, "fmodl is unportable - " | |
652 "use gnulib module fmodl for portability"); | |
653 # endif | |
654 #endif | |
655 | |
15832 | 656 |
9255 | 657 /* Write x as |
658 x = mantissa * 2^exp | |
659 where | |
660 If x finite and nonzero: 0.5 <= |mantissa| < 1.0. | |
661 If x is zero: mantissa = x, exp = 0. | |
662 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
|
663 Store exp in *EXPPTR and return mantissa. */ |
15841 | 664 #if @GNULIB_FREXPF@ |
15845
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
665 # if @REPLACE_FREXPF@ |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
666 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
667 # undef frexpf |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
668 # define frexpf rpl_frexpf |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
669 # endif |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
670 _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2))); |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
671 _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr)); |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
672 # else |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
673 # if !@HAVE_FREXPF@ |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
674 # undef frexpf |
15841 | 675 _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2))); |
15845
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
676 # endif |
622d3734ca5a
frexpf: Work around problems on IRIX and mingw.
Bruno Haible <bruno@clisp.org>
parents:
15841
diff
changeset
|
677 _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr)); |
15841 | 678 # endif |
679 _GL_CXXALIASWARN (frexpf); | |
680 #elif defined GNULIB_POSIXCHECK | |
681 # undef frexpf | |
682 # if HAVE_RAW_DECL_FREXPF | |
683 _GL_WARN_ON_USE (frexpf, "frexpf is unportable - " | |
684 "use gnulib module frexpf for portability"); | |
685 # endif | |
686 #endif | |
687 | |
688 /* Write x as | |
689 x = mantissa * 2^exp | |
690 where | |
691 If x finite and nonzero: 0.5 <= |mantissa| < 1.0. | |
692 If x is zero: mantissa = x, exp = 0. | |
693 If x is infinite or NaN: mantissa = x, exp unspecified. | |
694 Store exp in *EXPPTR and return mantissa. */ | |
15840
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
695 #if @GNULIB_FREXP@ |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
696 # if @REPLACE_FREXP@ |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
697 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
698 # define frexp rpl_frexp |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
699 # endif |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
700 _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2))); |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
701 _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr)); |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
702 # else |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
703 _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr)); |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
704 # endif |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
705 _GL_CXXALIASWARN (frexp); |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
706 #elif defined GNULIB_POSIXCHECK |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
707 # undef frexp |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
708 /* Assume frexp is always declared. */ |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
709 _GL_WARN_ON_USE (frexp, "frexp is unportable - " |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
710 "use gnulib module frexp for portability"); |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
711 #endif |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
712 |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
713 /* Write x as |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
714 x = mantissa * 2^exp |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
715 where |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
716 If x finite and nonzero: 0.5 <= |mantissa| < 1.0. |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
717 If x is zero: mantissa = x, exp = 0. |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
718 If x is infinite or NaN: mantissa = x, exp unspecified. |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
719 Store exp in *EXPPTR and return mantissa. */ |
9255 | 720 #if @GNULIB_FREXPL@ && @REPLACE_FREXPL@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
721 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
15638
f2a7b56d34a3
math: Avoid macro redefinition warnings on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
15595
diff
changeset
|
722 # undef frexpl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
723 # define frexpl rpl_frexpl |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
724 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
725 _GL_FUNCDECL_RPL (frexpl, long double, |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
726 (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
|
727 _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
|
728 #else |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
729 # if !@HAVE_DECL_FREXPL@ |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
730 _GL_FUNCDECL_SYS (frexpl, long double, |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
731 (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
|
732 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
733 # if @GNULIB_FREXPL@ |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
734 _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
|
735 # endif |
9255 | 736 #endif |
13164
05d5602815b8
frexpl: Fix a C++ test error on Solaris 8 and Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13145
diff
changeset
|
737 #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
|
738 _GL_CXXALIASWARN (frexpl); |
9255 | 739 #endif |
740 #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK | |
741 # undef frexpl | |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
742 # if HAVE_RAW_DECL_FREXPL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
743 _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
|
744 "use gnulib module frexpl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
745 # endif |
9255 | 746 #endif |
747 | |
9285 | 748 |
9255 | 749 /* Return x * 2^exp. */ |
15847 | 750 #if @GNULIB_LDEXPF@ |
751 # if !@HAVE_LDEXPF@ | |
752 # undef ldexpf | |
753 _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp)); | |
754 # endif | |
755 _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp)); | |
756 _GL_CXXALIASWARN (ldexpf); | |
757 #elif defined GNULIB_POSIXCHECK | |
758 # undef ldexpf | |
759 # if HAVE_RAW_DECL_LDEXPF | |
760 _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - " | |
761 "use gnulib module ldexpf for portability"); | |
762 # endif | |
763 #endif | |
764 | |
765 /* Return x * 2^exp. */ | |
9255 | 766 #if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
767 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
15638
f2a7b56d34a3
math: Avoid macro redefinition warnings on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
15595
diff
changeset
|
768 # undef ldexpl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
769 # define ldexpl rpl_ldexpl |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
770 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
771 _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
|
772 _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
|
773 #else |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
774 # if !@HAVE_DECL_LDEXPL@ |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
775 _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
|
776 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
777 # if @GNULIB_LDEXPL@ |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
778 _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
|
779 # endif |
9255 | 780 #endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
781 #if @GNULIB_LDEXPL@ |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
782 _GL_CXXALIASWARN (ldexpl); |
9255 | 783 #endif |
784 #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK | |
785 # undef ldexpl | |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
786 # if HAVE_RAW_DECL_LDEXPL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
787 _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
|
788 "use gnulib module ldexpl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
789 # endif |
9255 | 790 #endif |
791 | |
9285 | 792 |
15840
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
793 #if @GNULIB_LOGB@ |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
794 # if !@HAVE_DECL_LOGB@ |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
795 _GL_EXTERN_C double logb (double x); |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
796 # endif |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
797 #elif defined GNULIB_POSIXCHECK |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
798 # undef logb |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
799 # if HAVE_RAW_DECL_LOGB |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
800 _GL_WARN_ON_USE (logb, "logb is unportable - " |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
801 "use gnulib module logb for portability"); |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
802 # endif |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
803 #endif |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
804 |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
805 |
15863 | 806 #if @GNULIB_LOGF@ |
807 # if !@HAVE_LOGF@ | |
808 # undef logf | |
809 _GL_FUNCDECL_SYS (logf, float, (float x)); | |
810 # endif | |
811 _GL_CXXALIAS_SYS (logf, float, (float x)); | |
812 _GL_CXXALIASWARN (logf); | |
813 #elif defined GNULIB_POSIXCHECK | |
814 # undef logf | |
815 # if HAVE_RAW_DECL_LOGF | |
816 _GL_WARN_ON_USE (logf, "logf is unportable - " | |
817 "use gnulib module logf for portability"); | |
818 # endif | |
819 #endif | |
820 | |
12752
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
821 #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
|
822 # if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@ |
16396
fd53e49c3d9c
logl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16395
diff
changeset
|
823 # undef logl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
824 _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
|
825 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
826 _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
|
827 _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
|
828 #elif defined GNULIB_POSIXCHECK |
9255 | 829 # undef logl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
830 # if HAVE_RAW_DECL_LOGL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
831 _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
|
832 "use gnulib module mathl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
833 # endif |
9255 | 834 #endif |
835 | |
9285 | 836 |
15866 | 837 #if @GNULIB_LOG10F@ |
838 # if !@HAVE_LOG10F@ | |
839 # undef log10f | |
840 _GL_FUNCDECL_SYS (log10f, float, (float x)); | |
841 # endif | |
842 _GL_CXXALIAS_SYS (log10f, float, (float x)); | |
843 _GL_CXXALIASWARN (log10f); | |
844 #elif defined GNULIB_POSIXCHECK | |
845 # undef log10f | |
846 # if HAVE_RAW_DECL_LOG10F | |
847 _GL_WARN_ON_USE (log10f, "log10f is unportable - " | |
848 "use gnulib module log10f for portability"); | |
849 # endif | |
850 #endif | |
851 | |
852 | |
15838 | 853 #if @GNULIB_MODFF@ |
854 # if !@HAVE_MODFF@ | |
855 # undef modff | |
856 _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2))); | |
857 # endif | |
858 _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr)); | |
859 _GL_CXXALIASWARN (modff); | |
860 #elif defined GNULIB_POSIXCHECK | |
861 # undef modff | |
862 # if HAVE_RAW_DECL_MODFF | |
863 _GL_WARN_ON_USE (modff, "modff is unportable - " | |
864 "use gnulib module modff for portability"); | |
865 # endif | |
866 #endif | |
867 | |
16408 | 868 #if @GNULIB_MODFL@ |
869 # if !@HAVE_MODFL@ | |
870 # undef modfl | |
871 _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr) | |
872 _GL_ARG_NONNULL ((2))); | |
873 # endif | |
874 _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr)); | |
875 _GL_CXXALIASWARN (modfl); | |
876 #elif defined GNULIB_POSIXCHECK | |
877 # undef modfl | |
878 # if HAVE_RAW_DECL_MODFL | |
879 _GL_WARN_ON_USE (modfl, "modfl is unportable - " | |
880 "use gnulib module modfl for portability"); | |
881 # endif | |
882 #endif | |
883 | |
15838 | 884 |
15869 | 885 #if @GNULIB_POWF@ |
886 # if !@HAVE_POWF@ | |
887 # undef powf | |
888 _GL_FUNCDECL_SYS (powf, float, (float x, float y)); | |
889 # endif | |
890 _GL_CXXALIAS_SYS (powf, float, (float x, float y)); | |
891 _GL_CXXALIASWARN (powf); | |
892 #elif defined GNULIB_POSIXCHECK | |
893 # undef powf | |
894 # if HAVE_RAW_DECL_POWF | |
895 _GL_WARN_ON_USE (powf, "powf is unportable - " | |
896 "use gnulib module powf for portability"); | |
897 # endif | |
898 #endif | |
899 | |
900 | |
16413 | 901 #if @GNULIB_REMAINDERF@ |
902 # if !@HAVE_REMAINDERF@ | |
903 _GL_FUNCDECL_SYS (remainderf, float, (float x, float y)); | |
904 # endif | |
905 _GL_CXXALIAS_SYS (remainderf, float, (float x, float y)); | |
906 _GL_CXXALIASWARN (remainderf); | |
907 #elif defined GNULIB_POSIXCHECK | |
908 # undef remainderf | |
909 # if HAVE_RAW_DECL_REMAINDERF | |
910 _GL_WARN_ON_USE (remainderf, "remainderf is unportable - " | |
911 "use gnulib module remainderf for portability"); | |
912 # endif | |
913 #endif | |
914 | |
16412
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
915 #if @GNULIB_REMAINDER@ |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
916 # if !@HAVE_REMAINDER@ || !@HAVE_DECL_REMAINDER@ |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
917 _GL_FUNCDECL_SYS (remainder, double, (double x, double y)); |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
918 # endif |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
919 _GL_CXXALIAS_SYS (remainder, double, (double x, double y)); |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
920 _GL_CXXALIASWARN (remainder); |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
921 #elif defined GNULIB_POSIXCHECK |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
922 # undef remainder |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
923 # if HAVE_RAW_DECL_REMAINDER |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
924 _GL_WARN_ON_USE (remainder, "remainder is unportable - " |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
925 "use gnulib module remainder for portability"); |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
926 # endif |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
927 #endif |
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
928 |
16415 | 929 #if @GNULIB_REMAINDERL@ |
930 # if !@HAVE_REMAINDERL@ | |
931 _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y)); | |
932 # endif | |
933 _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y)); | |
934 _GL_CXXALIASWARN (remainderl); | |
935 #elif defined GNULIB_POSIXCHECK | |
936 # undef remainderl | |
937 # if HAVE_RAW_DECL_REMAINDERL | |
938 _GL_WARN_ON_USE (remainderl, "remainderl is unportable - " | |
939 "use gnulib module remainderl for portability"); | |
940 # endif | |
941 #endif | |
942 | |
16412
a50ff00ce4ee
remainder: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16410
diff
changeset
|
943 |
15918 | 944 #if @GNULIB_RINTF@ |
945 # if !@HAVE_RINTF@ | |
946 _GL_FUNCDECL_SYS (rintf, float, (float x)); | |
947 # endif | |
948 _GL_CXXALIAS_SYS (rintf, float, (float x)); | |
949 _GL_CXXALIASWARN (rintf); | |
950 #elif defined GNULIB_POSIXCHECK | |
951 # undef rintf | |
952 # if HAVE_RAW_DECL_RINTF | |
953 _GL_WARN_ON_USE (rintf, "rintf is unportable - " | |
954 "use gnulib module rintf for portability"); | |
955 # endif | |
956 #endif | |
957 | |
15917 | 958 #if @GNULIB_RINT@ |
959 # if !@HAVE_RINT@ | |
960 _GL_FUNCDECL_SYS (rint, double, (double x)); | |
961 # endif | |
962 _GL_CXXALIAS_SYS (rint, double, (double x)); | |
963 _GL_CXXALIASWARN (rint); | |
964 #elif defined GNULIB_POSIXCHECK | |
965 # undef rint | |
966 # if HAVE_RAW_DECL_RINT | |
967 _GL_WARN_ON_USE (rint, "rint is unportable - " | |
968 "use gnulib module rint for portability"); | |
969 # endif | |
970 #endif | |
971 | |
15920 | 972 #if @GNULIB_RINTL@ |
973 # if !@HAVE_RINTL@ | |
974 _GL_FUNCDECL_SYS (rintl, long double, (long double x)); | |
975 # endif | |
976 _GL_CXXALIAS_SYS (rintl, long double, (long double x)); | |
977 _GL_CXXALIASWARN (rintl); | |
978 #elif defined GNULIB_POSIXCHECK | |
979 # undef rintl | |
980 # if HAVE_RAW_DECL_RINTL | |
981 _GL_WARN_ON_USE (rintl, "rintl is unportable - " | |
982 "use gnulib module rintl for portability"); | |
983 # endif | |
984 #endif | |
985 | |
15917 | 986 |
9375
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
987 #if @GNULIB_ROUNDF@ |
9465
4a3319c82e39
Use REPLACE_ROUND instead of HAVE_DECL_ROUND.
Bruno Haible <bruno@clisp.org>
parents:
9423
diff
changeset
|
988 # if @REPLACE_ROUNDF@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
989 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
990 # undef roundf |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
991 # define roundf rpl_roundf |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
992 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
993 _GL_FUNCDECL_RPL (roundf, float, (float x)); |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
994 _GL_CXXALIAS_RPL (roundf, float, (float x)); |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
995 # else |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
996 # if !@HAVE_DECL_ROUNDF@ |
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
997 _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
|
998 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
999 _GL_CXXALIAS_SYS (roundf, float, (float x)); |
9375
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1000 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1001 _GL_CXXALIASWARN (roundf); |
9375
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1002 #elif defined GNULIB_POSIXCHECK |
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1003 # undef roundf |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1004 # if HAVE_RAW_DECL_ROUNDF |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1005 _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
|
1006 "use gnulib module roundf for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1007 # endif |
9375
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1008 #endif |
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1009 |
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1010 #if @GNULIB_ROUND@ |
9465
4a3319c82e39
Use REPLACE_ROUND instead of HAVE_DECL_ROUND.
Bruno Haible <bruno@clisp.org>
parents:
9423
diff
changeset
|
1011 # if @REPLACE_ROUND@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1012 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1013 # undef round |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1014 # define round rpl_round |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1015 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1016 _GL_FUNCDECL_RPL (round, double, (double x)); |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1017 _GL_CXXALIAS_RPL (round, double, (double x)); |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1018 # else |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
1019 # if !@HAVE_DECL_ROUND@ |
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
1020 _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
|
1021 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1022 _GL_CXXALIAS_SYS (round, double, (double x)); |
9375
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1023 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1024 _GL_CXXALIASWARN (round); |
9375
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1025 #elif defined GNULIB_POSIXCHECK |
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1026 # undef round |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1027 # if HAVE_RAW_DECL_ROUND |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1028 _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
|
1029 "use gnulib module round for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1030 # endif |
9375
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1031 #endif |
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1032 |
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1033 #if @GNULIB_ROUNDL@ |
9465
4a3319c82e39
Use REPLACE_ROUND instead of HAVE_DECL_ROUND.
Bruno Haible <bruno@clisp.org>
parents:
9423
diff
changeset
|
1034 # if @REPLACE_ROUNDL@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1035 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1036 # undef roundl |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1037 # define roundl rpl_roundl |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1038 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1039 _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
|
1040 _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
|
1041 # else |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
1042 # if !@HAVE_DECL_ROUNDL@ |
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
1043 _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
|
1044 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1045 _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
|
1046 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1047 _GL_CXXALIASWARN (roundl); |
9375
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1048 #elif defined GNULIB_POSIXCHECK |
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1049 # undef roundl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1050 # if HAVE_RAW_DECL_ROUNDL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1051 _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
|
1052 "use gnulib module roundl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1053 # endif |
9375
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1054 #endif |
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1055 |
96fea5b2eb11
Implement 'round', 'roundf', 'roundl' modules.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9312
diff
changeset
|
1056 |
15872 | 1057 #if @GNULIB_SINF@ |
1058 # if !@HAVE_SINF@ | |
1059 # undef sinf | |
1060 _GL_FUNCDECL_SYS (sinf, float, (float x)); | |
1061 # endif | |
1062 _GL_CXXALIAS_SYS (sinf, float, (float x)); | |
1063 _GL_CXXALIASWARN (sinf); | |
1064 #elif defined GNULIB_POSIXCHECK | |
1065 # undef sinf | |
1066 # if HAVE_RAW_DECL_SINF | |
1067 _GL_WARN_ON_USE (sinf, "sinf is unportable - " | |
1068 "use gnulib module sinf for portability"); | |
1069 # endif | |
1070 #endif | |
1071 | |
12752
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
1072 #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
|
1073 # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@ |
16397
3dd8fb89c3a4
sinl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16396
diff
changeset
|
1074 # undef sinl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1075 _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
|
1076 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1077 _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
|
1078 _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
|
1079 #elif defined GNULIB_POSIXCHECK |
9255 | 1080 # undef sinl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1081 # if HAVE_RAW_DECL_SINL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1082 _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
|
1083 "use gnulib module mathl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1084 # endif |
9255 | 1085 #endif |
1086 | |
9285 | 1087 |
15893 | 1088 #if @GNULIB_SINHF@ |
1089 # if !@HAVE_SINHF@ | |
1090 # undef sinhf | |
1091 _GL_FUNCDECL_SYS (sinhf, float, (float x)); | |
1092 # endif | |
1093 _GL_CXXALIAS_SYS (sinhf, float, (float x)); | |
1094 _GL_CXXALIASWARN (sinhf); | |
1095 #elif defined GNULIB_POSIXCHECK | |
1096 # undef sinhf | |
1097 # if HAVE_RAW_DECL_SINHF | |
1098 _GL_WARN_ON_USE (sinhf, "sinhf is unportable - " | |
1099 "use gnulib module sinhf for portability"); | |
1100 # endif | |
1101 #endif | |
1102 | |
1103 | |
15857 | 1104 #if @GNULIB_SQRTF@ |
1105 # if !@HAVE_SQRTF@ | |
1106 # undef sqrtf | |
1107 _GL_FUNCDECL_SYS (sqrtf, float, (float x)); | |
1108 # endif | |
1109 _GL_CXXALIAS_SYS (sqrtf, float, (float x)); | |
1110 _GL_CXXALIASWARN (sqrtf); | |
1111 #elif defined GNULIB_POSIXCHECK | |
1112 # undef sqrtf | |
1113 # if HAVE_RAW_DECL_SQRTF | |
1114 _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - " | |
1115 "use gnulib module sqrtf for portability"); | |
1116 # endif | |
1117 #endif | |
1118 | |
12752
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
1119 #if @GNULIB_SQRTL@ |
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
1120 # if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@ |
16394
11a860d6f42d
sqrtl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16393
diff
changeset
|
1121 # undef sqrtl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1122 _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
|
1123 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1124 _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
|
1125 _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
|
1126 #elif defined GNULIB_POSIXCHECK |
9255 | 1127 # undef sqrtl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1128 # if HAVE_RAW_DECL_SQRTL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1129 _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
|
1130 "use gnulib module mathl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1131 # endif |
9255 | 1132 #endif |
1133 | |
9285 | 1134 |
15878 | 1135 #if @GNULIB_TANF@ |
1136 # if !@HAVE_TANF@ | |
1137 # undef tanf | |
1138 _GL_FUNCDECL_SYS (tanf, float, (float x)); | |
1139 # endif | |
1140 _GL_CXXALIAS_SYS (tanf, float, (float x)); | |
1141 _GL_CXXALIASWARN (tanf); | |
1142 #elif defined GNULIB_POSIXCHECK | |
1143 # undef tanf | |
1144 # if HAVE_RAW_DECL_TANF | |
1145 _GL_WARN_ON_USE (tanf, "tanf is unportable - " | |
1146 "use gnulib module tanf for portability"); | |
1147 # endif | |
1148 #endif | |
1149 | |
12752
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
1150 #if @GNULIB_TANL@ |
73d9dd27dc41
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Bruno Haible <bruno@clisp.org>
parents:
12726
diff
changeset
|
1151 # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@ |
16399
bffe229960ad
tanl: Provide function definition on MSVC.
Bruno Haible <bruno@clisp.org>
parents:
16398
diff
changeset
|
1152 # undef tanl |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1153 _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
|
1154 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1155 _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
|
1156 _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
|
1157 #elif defined GNULIB_POSIXCHECK |
9255 | 1158 # undef tanl |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1159 # if HAVE_RAW_DECL_TANL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1160 _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
|
1161 "use gnulib module mathl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1162 # endif |
9255 | 1163 #endif |
1164 | |
9285 | 1165 |
15899 | 1166 #if @GNULIB_TANHF@ |
1167 # if !@HAVE_TANHF@ | |
1168 # undef tanhf | |
1169 _GL_FUNCDECL_SYS (tanhf, float, (float x)); | |
1170 # endif | |
1171 _GL_CXXALIAS_SYS (tanhf, float, (float x)); | |
1172 _GL_CXXALIASWARN (tanhf); | |
1173 #elif defined GNULIB_POSIXCHECK | |
1174 # undef tanhf | |
1175 # if HAVE_RAW_DECL_TANHF | |
1176 _GL_WARN_ON_USE (tanhf, "tanhf is unportable - " | |
1177 "use gnulib module tanhf for portability"); | |
1178 # endif | |
1179 #endif | |
1180 | |
1181 | |
9285 | 1182 #if @GNULIB_TRUNCF@ |
13979 | 1183 # if @REPLACE_TRUNCF@ |
1184 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
1185 # define truncf rpl_truncf | |
1186 # endif | |
1187 _GL_FUNCDECL_RPL (truncf, float, (float x)); | |
1188 _GL_CXXALIAS_RPL (truncf, float, (float x)); | |
1189 # else | |
1190 # if !@HAVE_DECL_TRUNCF@ | |
13143
cdede380a9a1
math: Fix some C++ test errors on Solaris 8.
Bruno Haible <bruno@clisp.org>
parents:
13142
diff
changeset
|
1191 _GL_FUNCDECL_SYS (truncf, float, (float x)); |
13979 | 1192 # endif |
1193 _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
|
1194 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1195 _GL_CXXALIASWARN (truncf); |
9285 | 1196 #elif defined GNULIB_POSIXCHECK |
1197 # undef truncf | |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1198 # if HAVE_RAW_DECL_TRUNCF |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1199 _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
|
1200 "use gnulib module truncf for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1201 # endif |
9285 | 1202 #endif |
1203 | |
9282 | 1204 #if @GNULIB_TRUNC@ |
13983 | 1205 # if @REPLACE_TRUNC@ |
1206 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) | |
1207 # define trunc rpl_trunc | |
1208 # endif | |
1209 _GL_FUNCDECL_RPL (trunc, double, (double x)); | |
1210 _GL_CXXALIAS_RPL (trunc, double, (double x)); | |
1211 # else | |
1212 # if !@HAVE_DECL_TRUNC@ | |
13143
cdede380a9a1
math: Fix some C++ test errors on Solaris 8.
Bruno Haible <bruno@clisp.org>
parents:
13142
diff
changeset
|
1213 _GL_FUNCDECL_SYS (trunc, double, (double x)); |
13983 | 1214 # endif |
1215 _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
|
1216 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1217 _GL_CXXALIASWARN (trunc); |
9282 | 1218 #elif defined GNULIB_POSIXCHECK |
1219 # undef trunc | |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1220 # if HAVE_RAW_DECL_TRUNC |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1221 _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
|
1222 "use gnulib module trunc for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1223 # endif |
9282 | 1224 #endif |
1225 | |
9287 | 1226 #if @GNULIB_TRUNCL@ |
9913
d3f5a70dc1ba
Make truncl work on OSF/1 4.0.
Bruno Haible <bruno@clisp.org>
parents:
9898
diff
changeset
|
1227 # if @REPLACE_TRUNCL@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1228 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1229 # undef truncl |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1230 # define truncl rpl_truncl |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1231 # endif |
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1232 _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
|
1233 _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
|
1234 # else |
13142
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
1235 # if !@HAVE_DECL_TRUNCL@ |
6b79b839590c
math: Fix some C++ test errors on Cygwin.
Bruno Haible <bruno@clisp.org>
parents:
13094
diff
changeset
|
1236 _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
|
1237 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1238 _GL_CXXALIAS_SYS (truncl, long double, (long double x)); |
9287 | 1239 # endif |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1240 _GL_CXXALIASWARN (truncl); |
9287 | 1241 #elif defined GNULIB_POSIXCHECK |
1242 # undef truncl | |
12766
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1243 # if HAVE_RAW_DECL_TRUNCL |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1244 _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
|
1245 "use gnulib module truncl for portability"); |
2c14f1e449e5
warn-on-use: use instead of link-warning
Eric Blake <ebb9@byu.net>
parents:
12752
diff
changeset
|
1246 # endif |
9287 | 1247 #endif |
1248 | |
9418
5e7b33ec70ff
Add/remove some blank lines.
Bruno Haible <bruno@clisp.org>
parents:
9414
diff
changeset
|
1249 |
15840
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
1250 /* Definitions of function-like macros come here, after the function |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
1251 declarations. */ |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
1252 |
61fe30185561
math: Sort function declarations of math.in.h.
Bruno Haible <bruno@clisp.org>
parents:
15838
diff
changeset
|
1253 |
9414
1c5d0b856e8b
Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9413
diff
changeset
|
1254 #if @GNULIB_ISFINITE@ |
9423
fa47aa8bb105
Use REPLACE_ISFINITE instead of HAVE_DECL_ISFINITE.
Bruno Haible <bruno@clisp.org>
parents:
9420
diff
changeset
|
1255 # if @REPLACE_ISFINITE@ |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1256 _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
|
1257 _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
|
1258 _GL_EXTERN_C int gl_isfinitel (long double x); |
9414
1c5d0b856e8b
Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9413
diff
changeset
|
1259 # undef isfinite |
1c5d0b856e8b
Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9413
diff
changeset
|
1260 # define isfinite(x) \ |
1c5d0b856e8b
Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9413
diff
changeset
|
1261 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \ |
1c5d0b856e8b
Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9413
diff
changeset
|
1262 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \ |
1c5d0b856e8b
Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9413
diff
changeset
|
1263 gl_isfinitef (x)) |
1c5d0b856e8b
Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9413
diff
changeset
|
1264 # endif |
15982
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1265 # ifdef __cplusplus |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1266 # ifdef isfinite |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1267 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite) |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1268 # undef isfinite |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1269 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite) |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1270 # endif |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1271 # endif |
9414
1c5d0b856e8b
Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9413
diff
changeset
|
1272 #elif defined GNULIB_POSIXCHECK |
12726
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1273 # if defined isfinite |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1274 _GL_WARN_REAL_FLOATING_DECL (isfinite); |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1275 # undef isfinite |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1276 # 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
|
1277 # endif |
9414
1c5d0b856e8b
Implement 'isfinite' module.
Ben Pfaff <blp@cs.stanford.edu>
parents:
9413
diff
changeset
|
1278 #endif |
9255 | 1279 |
9418
5e7b33ec70ff
Add/remove some blank lines.
Bruno Haible <bruno@clisp.org>
parents:
9414
diff
changeset
|
1280 |
10287 | 1281 #if @GNULIB_ISINF@ |
1282 # if @REPLACE_ISINF@ | |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1283 _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
|
1284 _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
|
1285 _GL_EXTERN_C int gl_isinfl (long double x); |
10287 | 1286 # undef isinf |
1287 # define isinf(x) \ | |
1288 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \ | |
1289 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \ | |
1290 gl_isinff (x)) | |
1291 # endif | |
15982
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1292 # ifdef __cplusplus |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1293 # ifdef isinf |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1294 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf) |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1295 # undef isinf |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1296 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf) |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1297 # endif |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1298 # endif |
10287 | 1299 #elif defined GNULIB_POSIXCHECK |
12726
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1300 # if defined isinf |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1301 _GL_WARN_REAL_FLOATING_DECL (isinf); |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1302 # undef isinf |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1303 # 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
|
1304 # endif |
10287 | 1305 #endif |
1306 | |
1307 | |
10667
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1308 #if @GNULIB_ISNANF@ |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1309 /* 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
|
1310 # if @HAVE_ISNANF@ |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1311 /* 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
|
1312 or (older) isnanf function. */ |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1313 # if __GNUC__ >= 4 |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1314 /* 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
|
1315 # undef isnanf |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1316 # 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
|
1317 # elif defined isnan |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1318 # undef isnanf |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1319 # 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
|
1320 # endif |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1321 # else |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1322 /* 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
|
1323 # undef isnanf |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1324 # define isnanf rpl_isnanf |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1325 _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
|
1326 # endif |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1327 #endif |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1328 |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1329 #if @GNULIB_ISNAND@ |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1330 /* 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
|
1331 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
|
1332 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
|
1333 # if @HAVE_ISNAND@ |
13758
e50f7d9e3040
Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents:
13164
diff
changeset
|
1334 /* 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
|
1335 macro. */ |
10667
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1336 # if __GNUC__ >= 4 |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1337 /* 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
|
1338 # undef isnand |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1339 # 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
|
1340 # else |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1341 # undef isnand |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1342 # 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
|
1343 # endif |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1344 # else |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1345 /* 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
|
1346 # undef isnand |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1347 # define isnand rpl_isnand |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1348 _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
|
1349 # endif |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1350 #endif |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1351 |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1352 #if @GNULIB_ISNANL@ |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1353 /* 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
|
1354 # if @HAVE_ISNANL@ |
13758
e50f7d9e3040
Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents:
13164
diff
changeset
|
1355 /* 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
|
1356 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
|
1357 # if __GNUC__ >= 4 |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1358 /* 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
|
1359 # undef isnanl |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1360 # 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
|
1361 # elif defined isnan |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1362 # undef isnanl |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1363 # 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
|
1364 # endif |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1365 # else |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1366 /* 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
|
1367 # undef isnanl |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1368 # define isnanl rpl_isnanl |
16128
6beadb731202
mark functions with const and pure attributes
Jim Meyering <meyering@redhat.com>
parents:
16042
diff
changeset
|
1369 _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST; |
10667
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1370 # endif |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1371 #endif |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1372 |
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1373 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */ |
10267 | 1374 #if @GNULIB_ISNAN@ |
1375 # if @REPLACE_ISNAN@ | |
1376 /* We can't just use the isnanf macro (e.g.) as exposed by | |
1377 isnanf.h (e.g.) here, because those may end up being macros | |
1378 that recursively expand back to isnan. So use the gnulib | |
1379 replacements for them directly. */ | |
10667
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1380 # if @HAVE_ISNANF@ && __GNUC__ >= 4 |
14060
99b3a26ce54b
isnan: Use GCC built-ins when possible.
Bruno Haible <bruno@clisp.org>
parents:
13983
diff
changeset
|
1381 # define gl_isnan_f(x) __builtin_isnanf ((float)(x)) |
10267 | 1382 # else |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1383 _GL_EXTERN_C int rpl_isnanf (float x); |
10267 | 1384 # define gl_isnan_f(x) rpl_isnanf (x) |
1385 # endif | |
10667
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1386 # if @HAVE_ISNAND@ && __GNUC__ >= 4 |
10267 | 1387 # define gl_isnan_d(x) __builtin_isnan ((double)(x)) |
1388 # else | |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1389 _GL_EXTERN_C int rpl_isnand (double x); |
10267 | 1390 # define gl_isnan_d(x) rpl_isnand (x) |
1391 # endif | |
10667
678640901735
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents:
10655
diff
changeset
|
1392 # if @HAVE_ISNANL@ && __GNUC__ >= 4 |
14060
99b3a26ce54b
isnan: Use GCC built-ins when possible.
Bruno Haible <bruno@clisp.org>
parents:
13983
diff
changeset
|
1393 # define gl_isnan_l(x) __builtin_isnanl ((long double)(x)) |
10267 | 1394 # else |
16128
6beadb731202
mark functions with const and pure attributes
Jim Meyering <meyering@redhat.com>
parents:
16042
diff
changeset
|
1395 _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST; |
10267 | 1396 # define gl_isnan_l(x) rpl_isnanl (x) |
1397 # endif | |
1398 # undef isnan | |
1399 # define isnan(x) \ | |
1400 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \ | |
1401 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \ | |
1402 gl_isnan_f (x)) | |
14060
99b3a26ce54b
isnan: Use GCC built-ins when possible.
Bruno Haible <bruno@clisp.org>
parents:
13983
diff
changeset
|
1403 # elif __GNUC__ >= 4 |
99b3a26ce54b
isnan: Use GCC built-ins when possible.
Bruno Haible <bruno@clisp.org>
parents:
13983
diff
changeset
|
1404 # undef isnan |
99b3a26ce54b
isnan: Use GCC built-ins when possible.
Bruno Haible <bruno@clisp.org>
parents:
13983
diff
changeset
|
1405 # define isnan(x) \ |
99b3a26ce54b
isnan: Use GCC built-ins when possible.
Bruno Haible <bruno@clisp.org>
parents:
13983
diff
changeset
|
1406 (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \ |
99b3a26ce54b
isnan: Use GCC built-ins when possible.
Bruno Haible <bruno@clisp.org>
parents:
13983
diff
changeset
|
1407 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \ |
99b3a26ce54b
isnan: Use GCC built-ins when possible.
Bruno Haible <bruno@clisp.org>
parents:
13983
diff
changeset
|
1408 __builtin_isnanf ((float)(x))) |
10267 | 1409 # endif |
15982
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1410 # ifdef __cplusplus |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1411 # ifdef isnan |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1412 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan) |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1413 # undef isnan |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1414 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan) |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1415 # endif |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1416 # else |
13960
51218504eb9d
isnan: Ensure it is a macro.
Bruno Haible <bruno@clisp.org>
parents:
13761
diff
changeset
|
1417 /* Ensure isnan is a macro. */ |
15982
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1418 # ifndef isnan |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1419 # define isnan isnan |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1420 # endif |
13960
51218504eb9d
isnan: Ensure it is a macro.
Bruno Haible <bruno@clisp.org>
parents:
13761
diff
changeset
|
1421 # endif |
10267 | 1422 #elif defined GNULIB_POSIXCHECK |
12726
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1423 # if defined isnan |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1424 _GL_WARN_REAL_FLOATING_DECL (isnan); |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1425 # undef isnan |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1426 # 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
|
1427 # endif |
10267 | 1428 #endif |
1429 | |
1430 | |
9255 | 1431 #if @GNULIB_SIGNBIT@ |
9645
c8174371956e
Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents:
9465
diff
changeset
|
1432 # if @REPLACE_SIGNBIT_USING_GCC@ |
c8174371956e
Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents:
9465
diff
changeset
|
1433 # undef signbit |
c8174371956e
Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents:
9465
diff
changeset
|
1434 /* 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
|
1435 # define signbit(x) \ |
c8174371956e
Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents:
9465
diff
changeset
|
1436 (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
|
1437 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ |
c8174371956e
Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents:
9465
diff
changeset
|
1438 __builtin_signbitf (x)) |
c8174371956e
Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents:
9465
diff
changeset
|
1439 # endif |
9255 | 1440 # if @REPLACE_SIGNBIT@ |
1441 # undef signbit | |
12936
9be4aca41cee
math: Avoid #define replacements in C++ mode.
Bruno Haible <bruno@clisp.org>
parents:
12927
diff
changeset
|
1442 _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
|
1443 _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
|
1444 _GL_EXTERN_C int gl_signbitl (long double arg); |
15962
cfa1d5dbe78c
Support for old NeXTstep 3.3 gcc.
Daniel Richard G <skunk@iskunk.org>
parents:
15920
diff
changeset
|
1445 # if __GNUC__ >= 2 && !defined __STRICT_ANSI__ |
13758
e50f7d9e3040
Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents:
13164
diff
changeset
|
1446 # define _GL_NUM_UINT_WORDS(type) \ |
e50f7d9e3040
Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents:
13164
diff
changeset
|
1447 ((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
|
1448 # 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
|
1449 # define gl_signbitf_OPTIMIZED_MACRO |
9255 | 1450 # define gl_signbitf(arg) \ |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
11741
diff
changeset
|
1451 ({ union { float _value; \ |
13758
e50f7d9e3040
Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents:
13164
diff
changeset
|
1452 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
|
1453 } _m; \ |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
11741
diff
changeset
|
1454 _m._value = (arg); \ |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
11741
diff
changeset
|
1455 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \ |
9255 | 1456 }) |
1457 # endif | |
11506
d800366aa3fe
Avoid link error when creating a namespace clean library.
Bruno Haible <bruno@clisp.org>
parents:
10836
diff
changeset
|
1458 # 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
|
1459 # define gl_signbitd_OPTIMIZED_MACRO |
9255 | 1460 # define gl_signbitd(arg) \ |
13758
e50f7d9e3040
Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents:
13164
diff
changeset
|
1461 ({ union { double _value; \ |
e50f7d9e3040
Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents:
13164
diff
changeset
|
1462 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
|
1463 } _m; \ |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
11741
diff
changeset
|
1464 _m._value = (arg); \ |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
11741
diff
changeset
|
1465 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \ |
9255 | 1466 }) |
1467 # endif | |
11506
d800366aa3fe
Avoid link error when creating a namespace clean library.
Bruno Haible <bruno@clisp.org>
parents:
10836
diff
changeset
|
1468 # 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
|
1469 # define gl_signbitl_OPTIMIZED_MACRO |
9255 | 1470 # define gl_signbitl(arg) \ |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
11741
diff
changeset
|
1471 ({ union { long double _value; \ |
13758
e50f7d9e3040
Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents:
13164
diff
changeset
|
1472 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
|
1473 } _m; \ |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
11741
diff
changeset
|
1474 _m._value = (arg); \ |
13758
e50f7d9e3040
Avoid some lines longer than 80 characters.
Paul Eggert <eggert@cs.ucla.edu>
parents:
13164
diff
changeset
|
1475 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \ |
9255 | 1476 }) |
1477 # endif | |
1478 # endif | |
1479 # define signbit(x) \ | |
1480 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \ | |
1481 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \ | |
1482 gl_signbitf (x)) | |
1483 # endif | |
15982
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1484 # ifdef __cplusplus |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1485 # ifdef signbit |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1486 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit) |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1487 # undef signbit |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1488 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit) |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1489 # endif |
a63613865d90
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
Bruno Haible <bruno@clisp.org>
parents:
15962
diff
changeset
|
1490 # endif |
9255 | 1491 #elif defined GNULIB_POSIXCHECK |
12726
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1492 # if defined signbit |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1493 _GL_WARN_REAL_FLOATING_DECL (signbit); |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1494 # undef signbit |
d6da6e5f2f62
math: add portability warnings for classification macros
Eric Blake <ebb9@byu.net>
parents:
12559
diff
changeset
|
1495 # 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
|
1496 # endif |
9255 | 1497 #endif |
1498 | |
1499 | |
14840
5f709022a256
Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents:
14274
diff
changeset
|
1500 #endif /* _@GUARD_PREFIX@_MATH_H */ |
5f709022a256
Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents:
14274
diff
changeset
|
1501 #endif /* _@GUARD_PREFIX@_MATH_H */ |