summaryrefslogtreecommitdiffstats
path: root/gl/math.in.h
diff options
context:
space:
mode:
Diffstat (limited to 'gl/math.in.h')
-rw-r--r--gl/math.in.h722
1 files changed, 587 insertions, 135 deletions
diff --git a/gl/math.in.h b/gl/math.in.h
index 7189819b..f3d58afc 100644
--- a/gl/math.in.h
+++ b/gl/math.in.h
@@ -1,19 +1,19 @@
1/* A GNU-like <math.h>. 1/* A GNU-like <math.h>.
2 2
3 Copyright (C) 2002-2003, 2007-2013 Free Software Foundation, Inc. 3 Copyright (C) 2002-2003, 2007-2023 Free Software Foundation, Inc.
4 4
5 This program is free software: you can redistribute it and/or modify 5 This file is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU Lesser General Public License as
7 the Free Software Foundation; either version 3 of the License, or 7 published by the Free Software Foundation; either version 2.1 of the
8 (at your option) any later version. 8 License, or (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This file is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU Lesser General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Lesser General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 16 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 17
18#ifndef _@GUARD_PREFIX@_MATH_H 18#ifndef _@GUARD_PREFIX@_MATH_H
19 19
@@ -22,17 +22,50 @@
22#endif 22#endif
23@PRAGMA_COLUMNS@ 23@PRAGMA_COLUMNS@
24 24
25#if defined _GL_INCLUDING_MATH_H
26/* Special invocation convention:
27 - On FreeBSD 12.2 we have a sequence of nested includes
28 <math.h> -> <stdlib.h> -> <sys/wait.h> -> <sys/types.h> -> <sys/select.h>
29 -> <signal.h> -> <pthread.h> -> <stdlib.h> -> <math.h>
30 In this situation, the functions are not yet declared, therefore we cannot
31 provide the C++ aliases. */
32
33#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
34
35#else
36/* Normal invocation convention. */
37
25/* The include_next requires a split double-inclusion guard. */ 38/* The include_next requires a split double-inclusion guard. */
39#define _GL_INCLUDING_MATH_H
26#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ 40#@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
41#undef _GL_INCLUDING_MATH_H
27 42
28#ifndef _@GUARD_PREFIX@_MATH_H 43#ifndef _@GUARD_PREFIX@_MATH_H
29#define _@GUARD_PREFIX@_MATH_H 44#define _@GUARD_PREFIX@_MATH_H
30 45
46/* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>. */
47#if defined __VMS && ! defined NAN
48# include <fp.h>
49#endif
50
51#ifndef _GL_INLINE_HEADER_BEGIN
52 #error "Please include config.h first."
53#endif
31_GL_INLINE_HEADER_BEGIN 54_GL_INLINE_HEADER_BEGIN
32#ifndef _GL_MATH_INLINE 55#ifndef _GL_MATH_INLINE
33# define _GL_MATH_INLINE _GL_INLINE 56# define _GL_MATH_INLINE _GL_INLINE
34#endif 57#endif
35 58
59/* The __attribute__ feature is available in gcc versions 2.5 and later.
60 The attribute __const__ was added in gcc 2.95. */
61#ifndef _GL_ATTRIBUTE_CONST
62# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__
63# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
64# else
65# define _GL_ATTRIBUTE_CONST /* empty */
66# endif
67#endif
68
36/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ 69/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
37 70
38/* The definition of _GL_ARG_NONNULL is copied here. */ 71/* The definition of _GL_ARG_NONNULL is copied here. */
@@ -59,22 +92,24 @@ _gl_cxx_ ## func ## l (long double l) \
59{ \ 92{ \
60 return func (l); \ 93 return func (l); \
61} 94}
62# define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \ 95# define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func,rpl_func,rettype) \
63inline int \ 96_GL_BEGIN_NAMESPACE \
64func (float f) \ 97inline rettype \
98rpl_func (float f) \
65{ \ 99{ \
66 return _gl_cxx_ ## func ## f (f); \ 100 return _gl_cxx_ ## func ## f (f); \
67} \ 101} \
68inline int \ 102inline rettype \
69func (double d) \ 103rpl_func (double d) \
70{ \ 104{ \
71 return _gl_cxx_ ## func ## d (d); \ 105 return _gl_cxx_ ## func ## d (d); \
72} \ 106} \
73inline int \ 107inline rettype \
74func (long double l) \ 108rpl_func (long double l) \
75{ \ 109{ \
76 return _gl_cxx_ ## func ## l (l); \ 110 return _gl_cxx_ ## func ## l (l); \
77} 111} \
112_GL_END_NAMESPACE
78#endif 113#endif
79 114
80/* Helper macros to define a portability warning for the 115/* Helper macros to define a portability warning for the
@@ -82,27 +117,27 @@ func (long double l) \
82 classification macros with an argument of real-floating (that is, 117 classification macros with an argument of real-floating (that is,
83 one of float, double, or long double). */ 118 one of float, double, or long double). */
84#define _GL_WARN_REAL_FLOATING_DECL(func) \ 119#define _GL_WARN_REAL_FLOATING_DECL(func) \
85_GL_MATH_INLINE int \ 120_GL_MATH_INLINE int \
86rpl_ ## func ## f (float f) \ 121_GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \
87{ \ 122 "use gnulib module " #func " for portability") \
88 return func (f); \ 123rpl_ ## func ## f (float f) \
89} \ 124{ \
90_GL_MATH_INLINE int \ 125 return func (f); \
91rpl_ ## func ## d (double d) \ 126} \
92{ \ 127_GL_MATH_INLINE int \
93 return func (d); \ 128_GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \
94} \ 129 "use gnulib module " #func " for portability") \
95_GL_MATH_INLINE int \ 130rpl_ ## func ## d (double d) \
96rpl_ ## func ## l (long double l) \ 131{ \
97{ \ 132 return func (d); \
98 return func (l); \ 133} \
99} \ 134_GL_MATH_INLINE int \
100_GL_WARN_ON_USE (rpl_ ## func ## f, #func " is unportable - " \ 135_GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \
101 "use gnulib module " #func " for portability"); \ 136 "use gnulib module " #func " for portability") \
102_GL_WARN_ON_USE (rpl_ ## func ## d, #func " is unportable - " \ 137rpl_ ## func ## l (long double l) \
103 "use gnulib module " #func " for portability"); \ 138{ \
104_GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \ 139 return func (l); \
105 "use gnulib module " #func " for portability") 140}
106#define _GL_WARN_REAL_FLOATING_IMPL(func, value) \ 141#define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
107 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \ 142 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \
108 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \ 143 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \
@@ -184,8 +219,17 @@ _NaN ()
184#endif 219#endif
185 220
186 221
187/* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */ 222#if defined FP_ILOGB0 && defined FP_ILOGBNAN
188#if !(defined FP_ILOGB0 && defined FP_ILOGBNAN) 223 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are correct. */
224# if defined __HAIKU__
225 /* Haiku: match what ilogb() does */
226# undef FP_ILOGB0
227# undef FP_ILOGBNAN
228# define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
229# define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
230# endif
231#else
232 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */
189# if defined __NetBSD__ || defined __sgi 233# if defined __NetBSD__ || defined __sgi
190 /* NetBSD, IRIX 6.5: match what ilogb() does */ 234 /* NetBSD, IRIX 6.5: match what ilogb() does */
191# define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */ 235# define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
@@ -207,11 +251,20 @@ _NaN ()
207 251
208 252
209#if @GNULIB_ACOSF@ 253#if @GNULIB_ACOSF@
210# if !@HAVE_ACOSF@ 254# if @REPLACE_ACOSF@
211# undef acosf 255# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
256# undef acosf
257# define acosf rpl_acosf
258# endif
259_GL_FUNCDECL_RPL (acosf, float, (float x));
260_GL_CXXALIAS_RPL (acosf, float, (float x));
261# else
262# if !@HAVE_ACOSF@
263# undef acosf
212_GL_FUNCDECL_SYS (acosf, float, (float x)); 264_GL_FUNCDECL_SYS (acosf, float, (float x));
213# endif 265# endif
214_GL_CXXALIAS_SYS (acosf, float, (float x)); 266_GL_CXXALIAS_SYS (acosf, float, (float x));
267# endif
215_GL_CXXALIASWARN (acosf); 268_GL_CXXALIASWARN (acosf);
216#elif defined GNULIB_POSIXCHECK 269#elif defined GNULIB_POSIXCHECK
217# undef acosf 270# undef acosf
@@ -227,7 +280,9 @@ _GL_WARN_ON_USE (acosf, "acosf is unportable - "
227_GL_FUNCDECL_SYS (acosl, long double, (long double x)); 280_GL_FUNCDECL_SYS (acosl, long double, (long double x));
228# endif 281# endif
229_GL_CXXALIAS_SYS (acosl, long double, (long double x)); 282_GL_CXXALIAS_SYS (acosl, long double, (long double x));
283# if __GLIBC__ >= 2
230_GL_CXXALIASWARN (acosl); 284_GL_CXXALIASWARN (acosl);
285# endif
231#elif defined GNULIB_POSIXCHECK 286#elif defined GNULIB_POSIXCHECK
232# undef acosl 287# undef acosl
233# if HAVE_RAW_DECL_ACOSL 288# if HAVE_RAW_DECL_ACOSL
@@ -238,11 +293,20 @@ _GL_WARN_ON_USE (acosl, "acosl is unportable - "
238 293
239 294
240#if @GNULIB_ASINF@ 295#if @GNULIB_ASINF@
241# if !@HAVE_ASINF@ 296# if @REPLACE_ASINF@
242# undef asinf 297# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
298# undef asinf
299# define asinf rpl_asinf
300# endif
301_GL_FUNCDECL_RPL (asinf, float, (float x));
302_GL_CXXALIAS_RPL (asinf, float, (float x));
303# else
304# if !@HAVE_ASINF@
305# undef asinf
243_GL_FUNCDECL_SYS (asinf, float, (float x)); 306_GL_FUNCDECL_SYS (asinf, float, (float x));
244# endif 307# endif
245_GL_CXXALIAS_SYS (asinf, float, (float x)); 308_GL_CXXALIAS_SYS (asinf, float, (float x));
309# endif
246_GL_CXXALIASWARN (asinf); 310_GL_CXXALIASWARN (asinf);
247#elif defined GNULIB_POSIXCHECK 311#elif defined GNULIB_POSIXCHECK
248# undef asinf 312# undef asinf
@@ -258,7 +322,9 @@ _GL_WARN_ON_USE (asinf, "asinf is unportable - "
258_GL_FUNCDECL_SYS (asinl, long double, (long double x)); 322_GL_FUNCDECL_SYS (asinl, long double, (long double x));
259# endif 323# endif
260_GL_CXXALIAS_SYS (asinl, long double, (long double x)); 324_GL_CXXALIAS_SYS (asinl, long double, (long double x));
325# if __GLIBC__ >= 2
261_GL_CXXALIASWARN (asinl); 326_GL_CXXALIASWARN (asinl);
327# endif
262#elif defined GNULIB_POSIXCHECK 328#elif defined GNULIB_POSIXCHECK
263# undef asinl 329# undef asinl
264# if HAVE_RAW_DECL_ASINL 330# if HAVE_RAW_DECL_ASINL
@@ -269,11 +335,20 @@ _GL_WARN_ON_USE (asinl, "asinl is unportable - "
269 335
270 336
271#if @GNULIB_ATANF@ 337#if @GNULIB_ATANF@
272# if !@HAVE_ATANF@ 338# if @REPLACE_ATANF@
273# undef atanf 339# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
340# undef atanf
341# define atanf rpl_atanf
342# endif
343_GL_FUNCDECL_RPL (atanf, float, (float x));
344_GL_CXXALIAS_RPL (atanf, float, (float x));
345# else
346# if !@HAVE_ATANF@
347# undef atanf
274_GL_FUNCDECL_SYS (atanf, float, (float x)); 348_GL_FUNCDECL_SYS (atanf, float, (float x));
275# endif 349# endif
276_GL_CXXALIAS_SYS (atanf, float, (float x)); 350_GL_CXXALIAS_SYS (atanf, float, (float x));
351# endif
277_GL_CXXALIASWARN (atanf); 352_GL_CXXALIASWARN (atanf);
278#elif defined GNULIB_POSIXCHECK 353#elif defined GNULIB_POSIXCHECK
279# undef atanf 354# undef atanf
@@ -289,7 +364,9 @@ _GL_WARN_ON_USE (atanf, "atanf is unportable - "
289_GL_FUNCDECL_SYS (atanl, long double, (long double x)); 364_GL_FUNCDECL_SYS (atanl, long double, (long double x));
290# endif 365# endif
291_GL_CXXALIAS_SYS (atanl, long double, (long double x)); 366_GL_CXXALIAS_SYS (atanl, long double, (long double x));
367# if __GLIBC__ >= 2
292_GL_CXXALIASWARN (atanl); 368_GL_CXXALIASWARN (atanl);
369# endif
293#elif defined GNULIB_POSIXCHECK 370#elif defined GNULIB_POSIXCHECK
294# undef atanl 371# undef atanl
295# if HAVE_RAW_DECL_ATANL 372# if HAVE_RAW_DECL_ATANL
@@ -300,11 +377,20 @@ _GL_WARN_ON_USE (atanl, "atanl is unportable - "
300 377
301 378
302#if @GNULIB_ATAN2F@ 379#if @GNULIB_ATAN2F@
303# if !@HAVE_ATAN2F@ 380# if @REPLACE_ATAN2F@
304# undef atan2f 381# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
382# undef atan2f
383# define atan2f rpl_atan2f
384# endif
385_GL_FUNCDECL_RPL (atan2f, float, (float y, float x));
386_GL_CXXALIAS_RPL (atan2f, float, (float y, float x));
387# else
388# if !@HAVE_ATAN2F@
389# undef atan2f
305_GL_FUNCDECL_SYS (atan2f, float, (float y, float x)); 390_GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
306# endif 391# endif
307_GL_CXXALIAS_SYS (atan2f, float, (float y, float x)); 392_GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
393# endif
308_GL_CXXALIASWARN (atan2f); 394_GL_CXXALIASWARN (atan2f);
309#elif defined GNULIB_POSIXCHECK 395#elif defined GNULIB_POSIXCHECK
310# undef atan2f 396# undef atan2f
@@ -343,7 +429,9 @@ _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
343_GL_FUNCDECL_SYS (cbrt, double, (double x)); 429_GL_FUNCDECL_SYS (cbrt, double, (double x));
344# endif 430# endif
345_GL_CXXALIAS_SYS (cbrt, double, (double x)); 431_GL_CXXALIAS_SYS (cbrt, double, (double x));
346_GL_CXXALIASWARN (cbrt); 432# if __GLIBC__ >= 2
433_GL_CXXALIASWARN1 (cbrt, double, (double x));
434# endif
347#elif defined GNULIB_POSIXCHECK 435#elif defined GNULIB_POSIXCHECK
348# undef cbrt 436# undef cbrt
349# if HAVE_RAW_DECL_CBRT 437# if HAVE_RAW_DECL_CBRT
@@ -366,7 +454,9 @@ _GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
366# endif 454# endif
367_GL_CXXALIAS_SYS (cbrtl, long double, (long double x)); 455_GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
368# endif 456# endif
457# if __GLIBC__ >= 2
369_GL_CXXALIASWARN (cbrtl); 458_GL_CXXALIASWARN (cbrtl);
459# endif
370#elif defined GNULIB_POSIXCHECK 460#elif defined GNULIB_POSIXCHECK
371# undef cbrtl 461# undef cbrtl
372# if HAVE_RAW_DECL_CBRTL 462# if HAVE_RAW_DECL_CBRTL
@@ -403,6 +493,7 @@ _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
403#if @GNULIB_CEIL@ 493#if @GNULIB_CEIL@
404# if @REPLACE_CEIL@ 494# if @REPLACE_CEIL@
405# if !(defined __cplusplus && defined GNULIB_NAMESPACE) 495# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
496# undef ceil
406# define ceil rpl_ceil 497# define ceil rpl_ceil
407# endif 498# endif
408_GL_FUNCDECL_RPL (ceil, double, (double x)); 499_GL_FUNCDECL_RPL (ceil, double, (double x));
@@ -410,7 +501,9 @@ _GL_CXXALIAS_RPL (ceil, double, (double x));
410# else 501# else
411_GL_CXXALIAS_SYS (ceil, double, (double x)); 502_GL_CXXALIAS_SYS (ceil, double, (double x));
412# endif 503# endif
413_GL_CXXALIASWARN (ceil); 504# if __GLIBC__ >= 2
505_GL_CXXALIASWARN1 (ceil, double, (double x));
506# endif
414#endif 507#endif
415 508
416#if @GNULIB_CEILL@ 509#if @GNULIB_CEILL@
@@ -428,7 +521,9 @@ _GL_FUNCDECL_SYS (ceill, long double, (long double x));
428# endif 521# endif
429_GL_CXXALIAS_SYS (ceill, long double, (long double x)); 522_GL_CXXALIAS_SYS (ceill, long double, (long double x));
430# endif 523# endif
524# if __GLIBC__ >= 2
431_GL_CXXALIASWARN (ceill); 525_GL_CXXALIASWARN (ceill);
526# endif
432#elif defined GNULIB_POSIXCHECK 527#elif defined GNULIB_POSIXCHECK
433# undef ceill 528# undef ceill
434# if HAVE_RAW_DECL_CEILL 529# if HAVE_RAW_DECL_CEILL
@@ -440,6 +535,7 @@ _GL_WARN_ON_USE (ceill, "ceill is unportable - "
440 535
441#if @GNULIB_COPYSIGNF@ 536#if @GNULIB_COPYSIGNF@
442# if !@HAVE_DECL_COPYSIGNF@ 537# if !@HAVE_DECL_COPYSIGNF@
538# undef copysignf
443_GL_FUNCDECL_SYS (copysignf, float, (float x, float y)); 539_GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
444# endif 540# endif
445_GL_CXXALIAS_SYS (copysignf, float, (float x, float y)); 541_GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
@@ -457,7 +553,9 @@ _GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
457_GL_FUNCDECL_SYS (copysign, double, (double x, double y)); 553_GL_FUNCDECL_SYS (copysign, double, (double x, double y));
458# endif 554# endif
459_GL_CXXALIAS_SYS (copysign, double, (double x, double y)); 555_GL_CXXALIAS_SYS (copysign, double, (double x, double y));
460_GL_CXXALIASWARN (copysign); 556# if __GLIBC__ >= 2
557_GL_CXXALIASWARN1 (copysign, double, (double x, double y));
558# endif
461#elif defined GNULIB_POSIXCHECK 559#elif defined GNULIB_POSIXCHECK
462# undef copysign 560# undef copysign
463# if HAVE_RAW_DECL_COPYSIGN 561# if HAVE_RAW_DECL_COPYSIGN
@@ -471,7 +569,9 @@ _GL_WARN_ON_USE (copysign, "copysign is unportable - "
471_GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y)); 569_GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
472# endif 570# endif
473_GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y)); 571_GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
572# if __GLIBC__ >= 2
474_GL_CXXALIASWARN (copysignl); 573_GL_CXXALIASWARN (copysignl);
574# endif
475#elif defined GNULIB_POSIXCHECK 575#elif defined GNULIB_POSIXCHECK
476# undef copysignl 576# undef copysignl
477# if HAVE_RAW_DECL_COPYSIGNL 577# if HAVE_RAW_DECL_COPYSIGNL
@@ -482,11 +582,20 @@ _GL_WARN_ON_USE (copysign, "copysignl is unportable - "
482 582
483 583
484#if @GNULIB_COSF@ 584#if @GNULIB_COSF@
485# if !@HAVE_COSF@ 585# if @REPLACE_COSF@
486# undef cosf 586# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
587# undef cosf
588# define cosf rpl_cosf
589# endif
590_GL_FUNCDECL_RPL (cosf, float, (float x));
591_GL_CXXALIAS_RPL (cosf, float, (float x));
592# else
593# if !@HAVE_COSF@
594# undef cosf
487_GL_FUNCDECL_SYS (cosf, float, (float x)); 595_GL_FUNCDECL_SYS (cosf, float, (float x));
488# endif 596# endif
489_GL_CXXALIAS_SYS (cosf, float, (float x)); 597_GL_CXXALIAS_SYS (cosf, float, (float x));
598# endif
490_GL_CXXALIASWARN (cosf); 599_GL_CXXALIASWARN (cosf);
491#elif defined GNULIB_POSIXCHECK 600#elif defined GNULIB_POSIXCHECK
492# undef cosf 601# undef cosf
@@ -502,7 +611,9 @@ _GL_WARN_ON_USE (cosf, "cosf is unportable - "
502_GL_FUNCDECL_SYS (cosl, long double, (long double x)); 611_GL_FUNCDECL_SYS (cosl, long double, (long double x));
503# endif 612# endif
504_GL_CXXALIAS_SYS (cosl, long double, (long double x)); 613_GL_CXXALIAS_SYS (cosl, long double, (long double x));
614# if __GLIBC__ >= 2
505_GL_CXXALIASWARN (cosl); 615_GL_CXXALIASWARN (cosl);
616# endif
506#elif defined GNULIB_POSIXCHECK 617#elif defined GNULIB_POSIXCHECK
507# undef cosl 618# undef cosl
508# if HAVE_RAW_DECL_COSL 619# if HAVE_RAW_DECL_COSL
@@ -513,11 +624,20 @@ _GL_WARN_ON_USE (cosl, "cosl is unportable - "
513 624
514 625
515#if @GNULIB_COSHF@ 626#if @GNULIB_COSHF@
516# if !@HAVE_COSHF@ 627# if @REPLACE_COSHF@
517# undef coshf 628# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
629# undef coshf
630# define coshf rpl_coshf
631# endif
632_GL_FUNCDECL_RPL (coshf, float, (float x));
633_GL_CXXALIAS_RPL (coshf, float, (float x));
634# else
635# if !@HAVE_COSHF@
636# undef coshf
518_GL_FUNCDECL_SYS (coshf, float, (float x)); 637_GL_FUNCDECL_SYS (coshf, float, (float x));
519# endif 638# endif
520_GL_CXXALIAS_SYS (coshf, float, (float x)); 639_GL_CXXALIAS_SYS (coshf, float, (float x));
640# endif
521_GL_CXXALIASWARN (coshf); 641_GL_CXXALIASWARN (coshf);
522#elif defined GNULIB_POSIXCHECK 642#elif defined GNULIB_POSIXCHECK
523# undef coshf 643# undef coshf
@@ -529,11 +649,20 @@ _GL_WARN_ON_USE (coshf, "coshf is unportable - "
529 649
530 650
531#if @GNULIB_EXPF@ 651#if @GNULIB_EXPF@
532# if !@HAVE_EXPF@ 652# if @REPLACE_EXPF@
533# undef expf 653# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
654# undef expf
655# define expf rpl_expf
656# endif
657_GL_FUNCDECL_RPL (expf, float, (float x));
658_GL_CXXALIAS_RPL (expf, float, (float x));
659# else
660# if !@HAVE_EXPF@
661# undef expf
534_GL_FUNCDECL_SYS (expf, float, (float x)); 662_GL_FUNCDECL_SYS (expf, float, (float x));
535# endif 663# endif
536_GL_CXXALIAS_SYS (expf, float, (float x)); 664_GL_CXXALIAS_SYS (expf, float, (float x));
665# endif
537_GL_CXXALIASWARN (expf); 666_GL_CXXALIASWARN (expf);
538#elif defined GNULIB_POSIXCHECK 667#elif defined GNULIB_POSIXCHECK
539# undef expf 668# undef expf
@@ -544,12 +673,23 @@ _GL_WARN_ON_USE (expf, "expf is unportable - "
544#endif 673#endif
545 674
546#if @GNULIB_EXPL@ 675#if @GNULIB_EXPL@
547# if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@ 676# if @REPLACE_EXPL@
548# undef expl 677# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
678# undef expl
679# define expl rpl_expl
680# endif
681_GL_FUNCDECL_RPL (expl, long double, (long double x));
682_GL_CXXALIAS_RPL (expl, long double, (long double x));
683# else
684# if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@
685# undef expl
549_GL_FUNCDECL_SYS (expl, long double, (long double x)); 686_GL_FUNCDECL_SYS (expl, long double, (long double x));
550# endif 687# endif
551_GL_CXXALIAS_SYS (expl, long double, (long double x)); 688_GL_CXXALIAS_SYS (expl, long double, (long double x));
689# endif
690# if __GLIBC__ >= 2
552_GL_CXXALIASWARN (expl); 691_GL_CXXALIASWARN (expl);
692# endif
553#elif defined GNULIB_POSIXCHECK 693#elif defined GNULIB_POSIXCHECK
554# undef expl 694# undef expl
555# if HAVE_RAW_DECL_EXPL 695# if HAVE_RAW_DECL_EXPL
@@ -587,7 +727,9 @@ _GL_FUNCDECL_SYS (exp2, double, (double x));
587# endif 727# endif
588_GL_CXXALIAS_SYS (exp2, double, (double x)); 728_GL_CXXALIAS_SYS (exp2, double, (double x));
589# endif 729# endif
590_GL_CXXALIASWARN (exp2); 730# if __GLIBC__ >= 2
731_GL_CXXALIASWARN1 (exp2, double, (double x));
732# endif
591#elif defined GNULIB_POSIXCHECK 733#elif defined GNULIB_POSIXCHECK
592# undef exp2 734# undef exp2
593# if HAVE_RAW_DECL_EXP2 735# if HAVE_RAW_DECL_EXP2
@@ -611,7 +753,9 @@ _GL_FUNCDECL_SYS (exp2l, long double, (long double x));
611# endif 753# endif
612_GL_CXXALIAS_SYS (exp2l, long double, (long double x)); 754_GL_CXXALIAS_SYS (exp2l, long double, (long double x));
613# endif 755# endif
756# if __GLIBC__ >= 2
614_GL_CXXALIASWARN (exp2l); 757_GL_CXXALIASWARN (exp2l);
758# endif
615#elif defined GNULIB_POSIXCHECK 759#elif defined GNULIB_POSIXCHECK
616# undef exp2l 760# undef exp2l
617# if HAVE_RAW_DECL_EXP2L 761# if HAVE_RAW_DECL_EXP2L
@@ -658,7 +802,9 @@ _GL_FUNCDECL_SYS (expm1, double, (double x));
658# endif 802# endif
659_GL_CXXALIAS_SYS (expm1, double, (double x)); 803_GL_CXXALIAS_SYS (expm1, double, (double x));
660# endif 804# endif
661_GL_CXXALIASWARN (expm1); 805# if __GLIBC__ >= 2
806_GL_CXXALIASWARN1 (expm1, double, (double x));
807# endif
662#elif defined GNULIB_POSIXCHECK 808#elif defined GNULIB_POSIXCHECK
663# undef expm1 809# undef expm1
664# if HAVE_RAW_DECL_EXPM1 810# if HAVE_RAW_DECL_EXPM1
@@ -668,12 +814,25 @@ _GL_WARN_ON_USE (expm1, "expm1 is unportable - "
668#endif 814#endif
669 815
670#if @GNULIB_EXPM1L@ 816#if @GNULIB_EXPM1L@
671# if !@HAVE_DECL_EXPM1L@ 817# if @REPLACE_EXPM1L@
672# undef expm1l 818# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
819# undef expm1l
820# define expm1l rpl_expm1l
821# endif
822_GL_FUNCDECL_RPL (expm1l, long double, (long double x));
823_GL_CXXALIAS_RPL (expm1l, long double, (long double x));
824# else
825# if !@HAVE_DECL_EXPM1L@
826# undef expm1l
827# if !(defined __cplusplus && defined _AIX)
673_GL_FUNCDECL_SYS (expm1l, long double, (long double x)); 828_GL_FUNCDECL_SYS (expm1l, long double, (long double x));
674# endif 829# endif
830# endif
675_GL_CXXALIAS_SYS (expm1l, long double, (long double x)); 831_GL_CXXALIAS_SYS (expm1l, long double, (long double x));
832# endif
833# if __GLIBC__ >= 2
676_GL_CXXALIASWARN (expm1l); 834_GL_CXXALIASWARN (expm1l);
835# endif
677#elif defined GNULIB_POSIXCHECK 836#elif defined GNULIB_POSIXCHECK
678# undef expm1l 837# undef expm1l
679# if HAVE_RAW_DECL_EXPM1L 838# if HAVE_RAW_DECL_EXPM1L
@@ -689,7 +848,9 @@ _GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
689_GL_FUNCDECL_SYS (fabsf, float, (float x)); 848_GL_FUNCDECL_SYS (fabsf, float, (float x));
690# endif 849# endif
691_GL_CXXALIAS_SYS (fabsf, float, (float x)); 850_GL_CXXALIAS_SYS (fabsf, float, (float x));
851# if __GLIBC__ >= 2
692_GL_CXXALIASWARN (fabsf); 852_GL_CXXALIASWARN (fabsf);
853# endif
693#elif defined GNULIB_POSIXCHECK 854#elif defined GNULIB_POSIXCHECK
694# undef fabsf 855# undef fabsf
695# if HAVE_RAW_DECL_FABSF 856# if HAVE_RAW_DECL_FABSF
@@ -713,7 +874,9 @@ _GL_FUNCDECL_SYS (fabsl, long double, (long double x));
713# endif 874# endif
714_GL_CXXALIAS_SYS (fabsl, long double, (long double x)); 875_GL_CXXALIAS_SYS (fabsl, long double, (long double x));
715# endif 876# endif
877# if __GLIBC__ >= 2
716_GL_CXXALIASWARN (fabsl); 878_GL_CXXALIASWARN (fabsl);
879# endif
717#elif defined GNULIB_POSIXCHECK 880#elif defined GNULIB_POSIXCHECK
718# undef fabsl 881# undef fabsl
719# if HAVE_RAW_DECL_FABSL 882# if HAVE_RAW_DECL_FABSL
@@ -750,6 +913,7 @@ _GL_WARN_ON_USE (floorf, "floorf is unportable - "
750#if @GNULIB_FLOOR@ 913#if @GNULIB_FLOOR@
751# if @REPLACE_FLOOR@ 914# if @REPLACE_FLOOR@
752# if !(defined __cplusplus && defined GNULIB_NAMESPACE) 915# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
916# undef floor
753# define floor rpl_floor 917# define floor rpl_floor
754# endif 918# endif
755_GL_FUNCDECL_RPL (floor, double, (double x)); 919_GL_FUNCDECL_RPL (floor, double, (double x));
@@ -757,7 +921,9 @@ _GL_CXXALIAS_RPL (floor, double, (double x));
757# else 921# else
758_GL_CXXALIAS_SYS (floor, double, (double x)); 922_GL_CXXALIAS_SYS (floor, double, (double x));
759# endif 923# endif
760_GL_CXXALIASWARN (floor); 924# if __GLIBC__ >= 2
925_GL_CXXALIASWARN1 (floor, double, (double x));
926# endif
761#endif 927#endif
762 928
763#if @GNULIB_FLOORL@ 929#if @GNULIB_FLOORL@
@@ -775,7 +941,9 @@ _GL_FUNCDECL_SYS (floorl, long double, (long double x));
775# endif 941# endif
776_GL_CXXALIAS_SYS (floorl, long double, (long double x)); 942_GL_CXXALIAS_SYS (floorl, long double, (long double x));
777# endif 943# endif
944# if __GLIBC__ >= 2
778_GL_CXXALIASWARN (floorl); 945_GL_CXXALIASWARN (floorl);
946# endif
779#elif defined GNULIB_POSIXCHECK 947#elif defined GNULIB_POSIXCHECK
780# undef floorl 948# undef floorl
781# if HAVE_RAW_DECL_FLOORL 949# if HAVE_RAW_DECL_FLOORL
@@ -795,6 +963,7 @@ _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
795_GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z)); 963_GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
796# else 964# else
797# if !@HAVE_FMAF@ 965# if !@HAVE_FMAF@
966# undef fmaf
798_GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z)); 967_GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
799# endif 968# endif
800_GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z)); 969_GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
@@ -818,11 +987,14 @@ _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
818_GL_CXXALIAS_RPL (fma, double, (double x, double y, double z)); 987_GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
819# else 988# else
820# if !@HAVE_FMA@ 989# if !@HAVE_FMA@
990# undef fma
821_GL_FUNCDECL_SYS (fma, double, (double x, double y, double z)); 991_GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
822# endif 992# endif
823_GL_CXXALIAS_SYS (fma, double, (double x, double y, double z)); 993_GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
824# endif 994# endif
825_GL_CXXALIASWARN (fma); 995# if __GLIBC__ >= 2
996_GL_CXXALIASWARN1 (fma, double, (double x, double y, double z));
997# endif
826#elif defined GNULIB_POSIXCHECK 998#elif defined GNULIB_POSIXCHECK
827# undef fma 999# undef fma
828# if HAVE_RAW_DECL_FMA 1000# if HAVE_RAW_DECL_FMA
@@ -844,13 +1016,17 @@ _GL_CXXALIAS_RPL (fmal, long double,
844# else 1016# else
845# if !@HAVE_FMAL@ 1017# if !@HAVE_FMAL@
846# undef fmal 1018# undef fmal
1019# if !(defined __cplusplus && defined _AIX)
847_GL_FUNCDECL_SYS (fmal, long double, 1020_GL_FUNCDECL_SYS (fmal, long double,
848 (long double x, long double y, long double z)); 1021 (long double x, long double y, long double z));
1022# endif
849# endif 1023# endif
850_GL_CXXALIAS_SYS (fmal, long double, 1024_GL_CXXALIAS_SYS (fmal, long double,
851 (long double x, long double y, long double z)); 1025 (long double x, long double y, long double z));
852# endif 1026# endif
1027# if __GLIBC__ >= 2
853_GL_CXXALIASWARN (fmal); 1028_GL_CXXALIASWARN (fmal);
1029# endif
854#elif defined GNULIB_POSIXCHECK 1030#elif defined GNULIB_POSIXCHECK
855# undef fmal 1031# undef fmal
856# if HAVE_RAW_DECL_FMAL 1032# if HAVE_RAW_DECL_FMAL
@@ -895,7 +1071,9 @@ _GL_CXXALIAS_RPL (fmod, double, (double x, double y));
895# else 1071# else
896_GL_CXXALIAS_SYS (fmod, double, (double x, double y)); 1072_GL_CXXALIAS_SYS (fmod, double, (double x, double y));
897# endif 1073# endif
898_GL_CXXALIASWARN (fmod); 1074# if __GLIBC__ >= 2
1075_GL_CXXALIASWARN1 (fmod, double, (double x, double y));
1076# endif
899#elif defined GNULIB_POSIXCHECK 1077#elif defined GNULIB_POSIXCHECK
900# undef fmod 1078# undef fmod
901# if HAVE_RAW_DECL_FMOD 1079# if HAVE_RAW_DECL_FMOD
@@ -919,7 +1097,9 @@ _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
919# endif 1097# endif
920_GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y)); 1098_GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
921# endif 1099# endif
1100# if __GLIBC__ >= 2
922_GL_CXXALIASWARN (fmodl); 1101_GL_CXXALIASWARN (fmodl);
1102# endif
923#elif defined GNULIB_POSIXCHECK 1103#elif defined GNULIB_POSIXCHECK
924# undef fmodl 1104# undef fmodl
925# if HAVE_RAW_DECL_FMODL 1105# if HAVE_RAW_DECL_FMODL
@@ -951,7 +1131,9 @@ _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
951# endif 1131# endif
952_GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr)); 1132_GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
953# endif 1133# endif
1134# if __GLIBC__ >= 2
954_GL_CXXALIASWARN (frexpf); 1135_GL_CXXALIASWARN (frexpf);
1136# endif
955#elif defined GNULIB_POSIXCHECK 1137#elif defined GNULIB_POSIXCHECK
956# undef frexpf 1138# undef frexpf
957# if HAVE_RAW_DECL_FREXPF 1139# if HAVE_RAW_DECL_FREXPF
@@ -970,6 +1152,7 @@ _GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
970#if @GNULIB_FREXP@ 1152#if @GNULIB_FREXP@
971# if @REPLACE_FREXP@ 1153# if @REPLACE_FREXP@
972# if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1154# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1155# undef frexp
973# define frexp rpl_frexp 1156# define frexp rpl_frexp
974# endif 1157# endif
975_GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2))); 1158_GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
@@ -977,7 +1160,9 @@ _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
977# else 1160# else
978_GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr)); 1161_GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
979# endif 1162# endif
980_GL_CXXALIASWARN (frexp); 1163# if __GLIBC__ >= 2
1164_GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr));
1165# endif
981#elif defined GNULIB_POSIXCHECK 1166#elif defined GNULIB_POSIXCHECK
982# undef frexp 1167# undef frexp
983/* Assume frexp is always declared. */ 1168/* Assume frexp is always declared. */
@@ -1010,7 +1195,9 @@ _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
1010# endif 1195# endif
1011#endif 1196#endif
1012#if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@) 1197#if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@)
1198# if __GLIBC__ >= 2
1013_GL_CXXALIASWARN (frexpl); 1199_GL_CXXALIASWARN (frexpl);
1200# endif
1014#endif 1201#endif
1015#if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK 1202#if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
1016# undef frexpl 1203# undef frexpl
@@ -1036,7 +1223,9 @@ _GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
1036# endif 1223# endif
1037_GL_CXXALIAS_SYS (hypotf, float, (float x, float y)); 1224_GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
1038# endif 1225# endif
1226# if __GLIBC__ >= 2
1039_GL_CXXALIASWARN (hypotf); 1227_GL_CXXALIASWARN (hypotf);
1228# endif
1040#elif defined GNULIB_POSIXCHECK 1229#elif defined GNULIB_POSIXCHECK
1041# undef hypotf 1230# undef hypotf
1042# if HAVE_RAW_DECL_HYPOTF 1231# if HAVE_RAW_DECL_HYPOTF
@@ -1057,7 +1246,9 @@ _GL_CXXALIAS_RPL (hypot, double, (double x, double y));
1057# else 1246# else
1058_GL_CXXALIAS_SYS (hypot, double, (double x, double y)); 1247_GL_CXXALIAS_SYS (hypot, double, (double x, double y));
1059# endif 1248# endif
1060_GL_CXXALIASWARN (hypot); 1249# if __GLIBC__ >= 2
1250_GL_CXXALIASWARN1 (hypot, double, (double x, double y));
1251# endif
1061#elif defined GNULIB_POSIXCHECK 1252#elif defined GNULIB_POSIXCHECK
1062# undef hypot 1253# undef hypot
1063# if HAVE_RAW_DECL_HYPOT 1254# if HAVE_RAW_DECL_HYPOT
@@ -1081,7 +1272,9 @@ _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
1081# endif 1272# endif
1082_GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y)); 1273_GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
1083# endif 1274# endif
1275# if __GLIBC__ >= 2
1084_GL_CXXALIASWARN (hypotl); 1276_GL_CXXALIASWARN (hypotl);
1277# endif
1085#elif defined GNULIB_POSIXCHECK 1278#elif defined GNULIB_POSIXCHECK
1086# undef hypotl 1279# undef hypotl
1087# if HAVE_RAW_DECL_HYPOTL 1280# if HAVE_RAW_DECL_HYPOTL
@@ -1128,7 +1321,9 @@ _GL_FUNCDECL_SYS (ilogb, int, (double x));
1128# endif 1321# endif
1129_GL_CXXALIAS_SYS (ilogb, int, (double x)); 1322_GL_CXXALIAS_SYS (ilogb, int, (double x));
1130# endif 1323# endif
1131_GL_CXXALIASWARN (ilogb); 1324# if __GLIBC__ >= 2
1325_GL_CXXALIASWARN1 (ilogb, int, (double x));
1326# endif
1132#elif defined GNULIB_POSIXCHECK 1327#elif defined GNULIB_POSIXCHECK
1133# undef ilogb 1328# undef ilogb
1134# if HAVE_RAW_DECL_ILOGB 1329# if HAVE_RAW_DECL_ILOGB
@@ -1138,11 +1333,23 @@ _GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
1138#endif 1333#endif
1139 1334
1140#if @GNULIB_ILOGBL@ 1335#if @GNULIB_ILOGBL@
1141# if !@HAVE_ILOGBL@ 1336# if @REPLACE_ILOGBL@
1337# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1338# undef ilogbl
1339# define ilogbl rpl_ilogbl
1340# endif
1341_GL_FUNCDECL_RPL (ilogbl, int, (long double x));
1342_GL_CXXALIAS_RPL (ilogbl, int, (long double x));
1343# else
1344# if !@HAVE_ILOGBL@
1345# undef ilogbl
1142_GL_FUNCDECL_SYS (ilogbl, int, (long double x)); 1346_GL_FUNCDECL_SYS (ilogbl, int, (long double x));
1143# endif 1347# endif
1144_GL_CXXALIAS_SYS (ilogbl, int, (long double x)); 1348_GL_CXXALIAS_SYS (ilogbl, int, (long double x));
1349# endif
1350# if __GLIBC__ >= 2
1145_GL_CXXALIASWARN (ilogbl); 1351_GL_CXXALIASWARN (ilogbl);
1352# endif
1146#elif defined GNULIB_POSIXCHECK 1353#elif defined GNULIB_POSIXCHECK
1147# undef ilogbl 1354# undef ilogbl
1148# if HAVE_RAW_DECL_ILOGBL 1355# if HAVE_RAW_DECL_ILOGBL
@@ -1152,6 +1359,55 @@ _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
1152#endif 1359#endif
1153 1360
1154 1361
1362#if @GNULIB_MDA_J0@
1363/* On native Windows, map 'j0' to '_j0', so that -loldnames is not
1364 required. In C++ with GNULIB_NAMESPACE, avoid differences between
1365 platforms by defining GNULIB_NAMESPACE::j0 always. */
1366# if defined _WIN32 && !defined __CYGWIN__
1367# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1368# undef j0
1369# define j0 _j0
1370# endif
1371_GL_CXXALIAS_MDA (j0, double, (double x));
1372# else
1373_GL_CXXALIAS_SYS (j0, double, (double x));
1374# endif
1375_GL_CXXALIASWARN (j0);
1376#endif
1377
1378#if @GNULIB_MDA_J1@
1379/* On native Windows, map 'j1' to '_j1', so that -loldnames is not
1380 required. In C++ with GNULIB_NAMESPACE, avoid differences between
1381 platforms by defining GNULIB_NAMESPACE::j1 always. */
1382# if defined _WIN32 && !defined __CYGWIN__
1383# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1384# undef j1
1385# define j1 _j1
1386# endif
1387_GL_CXXALIAS_MDA (j1, double, (double x));
1388# else
1389_GL_CXXALIAS_SYS (j1, double, (double x));
1390# endif
1391_GL_CXXALIASWARN (j1);
1392#endif
1393
1394#if @GNULIB_MDA_JN@
1395/* On native Windows, map 'jn' to '_jn', so that -loldnames is not
1396 required. In C++ with GNULIB_NAMESPACE, avoid differences between
1397 platforms by defining GNULIB_NAMESPACE::jn always. */
1398# if defined _WIN32 && !defined __CYGWIN__
1399# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1400# undef jn
1401# define jn _jn
1402# endif
1403_GL_CXXALIAS_MDA (jn, double, (int n, double x));
1404# else
1405_GL_CXXALIAS_SYS (jn, double, (int n, double x));
1406# endif
1407_GL_CXXALIASWARN (jn);
1408#endif
1409
1410
1155/* Return x * 2^exp. */ 1411/* Return x * 2^exp. */
1156#if @GNULIB_LDEXPF@ 1412#if @GNULIB_LDEXPF@
1157# if !@HAVE_LDEXPF@ 1413# if !@HAVE_LDEXPF@
@@ -1159,7 +1415,9 @@ _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
1159_GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp)); 1415_GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
1160# endif 1416# endif
1161_GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp)); 1417_GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
1418# if __GLIBC__ >= 2
1162_GL_CXXALIASWARN (ldexpf); 1419_GL_CXXALIASWARN (ldexpf);
1420# endif
1163#elif defined GNULIB_POSIXCHECK 1421#elif defined GNULIB_POSIXCHECK
1164# undef ldexpf 1422# undef ldexpf
1165# if HAVE_RAW_DECL_LDEXPF 1423# if HAVE_RAW_DECL_LDEXPF
@@ -1185,7 +1443,9 @@ _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
1185# endif 1443# endif
1186#endif 1444#endif
1187#if @GNULIB_LDEXPL@ 1445#if @GNULIB_LDEXPL@
1446# if __GLIBC__ >= 2
1188_GL_CXXALIASWARN (ldexpl); 1447_GL_CXXALIASWARN (ldexpl);
1448# endif
1189#endif 1449#endif
1190#if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK 1450#if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
1191# undef ldexpl 1451# undef ldexpl
@@ -1231,7 +1491,9 @@ _GL_CXXALIAS_RPL (log, double, (double x));
1231# else 1491# else
1232_GL_CXXALIAS_SYS (log, double, (double x)); 1492_GL_CXXALIAS_SYS (log, double, (double x));
1233# endif 1493# endif
1234_GL_CXXALIASWARN (log); 1494# if __GLIBC__ >= 2
1495_GL_CXXALIASWARN1 (log, double, (double x));
1496# endif
1235#elif defined GNULIB_POSIXCHECK 1497#elif defined GNULIB_POSIXCHECK
1236# undef log 1498# undef log
1237# if HAVE_RAW_DECL_LOG 1499# if HAVE_RAW_DECL_LOG
@@ -1255,7 +1517,9 @@ _GL_FUNCDECL_SYS (logl, long double, (long double x));
1255# endif 1517# endif
1256_GL_CXXALIAS_SYS (logl, long double, (long double x)); 1518_GL_CXXALIAS_SYS (logl, long double, (long double x));
1257# endif 1519# endif
1520# if __GLIBC__ >= 2
1258_GL_CXXALIASWARN (logl); 1521_GL_CXXALIASWARN (logl);
1522# endif
1259#elif defined GNULIB_POSIXCHECK 1523#elif defined GNULIB_POSIXCHECK
1260# undef logl 1524# undef logl
1261# if HAVE_RAW_DECL_LOGL 1525# if HAVE_RAW_DECL_LOGL
@@ -1300,7 +1564,9 @@ _GL_CXXALIAS_RPL (log10, double, (double x));
1300# else 1564# else
1301_GL_CXXALIAS_SYS (log10, double, (double x)); 1565_GL_CXXALIAS_SYS (log10, double, (double x));
1302# endif 1566# endif
1303_GL_CXXALIASWARN (log10); 1567# if __GLIBC__ >= 2
1568_GL_CXXALIASWARN1 (log10, double, (double x));
1569# endif
1304#elif defined GNULIB_POSIXCHECK 1570#elif defined GNULIB_POSIXCHECK
1305# undef log10 1571# undef log10
1306# if HAVE_RAW_DECL_LOG10 1572# if HAVE_RAW_DECL_LOG10
@@ -1324,7 +1590,9 @@ _GL_FUNCDECL_SYS (log10l, long double, (long double x));
1324# endif 1590# endif
1325_GL_CXXALIAS_SYS (log10l, long double, (long double x)); 1591_GL_CXXALIAS_SYS (log10l, long double, (long double x));
1326# endif 1592# endif
1593# if __GLIBC__ >= 2
1327_GL_CXXALIASWARN (log10l); 1594_GL_CXXALIASWARN (log10l);
1595# endif
1328#elif defined GNULIB_POSIXCHECK 1596#elif defined GNULIB_POSIXCHECK
1329# undef log10l 1597# undef log10l
1330# if HAVE_RAW_DECL_LOG10L 1598# if HAVE_RAW_DECL_LOG10L
@@ -1371,7 +1639,9 @@ _GL_FUNCDECL_SYS (log1p, double, (double x));
1371# endif 1639# endif
1372_GL_CXXALIAS_SYS (log1p, double, (double x)); 1640_GL_CXXALIAS_SYS (log1p, double, (double x));
1373# endif 1641# endif
1374_GL_CXXALIASWARN (log1p); 1642# if __GLIBC__ >= 2
1643_GL_CXXALIASWARN1 (log1p, double, (double x));
1644# endif
1375#elif defined GNULIB_POSIXCHECK 1645#elif defined GNULIB_POSIXCHECK
1376# undef log1p 1646# undef log1p
1377# if HAVE_RAW_DECL_LOG1P 1647# if HAVE_RAW_DECL_LOG1P
@@ -1394,7 +1664,9 @@ _GL_FUNCDECL_SYS (log1pl, long double, (long double x));
1394# endif 1664# endif
1395_GL_CXXALIAS_SYS (log1pl, long double, (long double x)); 1665_GL_CXXALIAS_SYS (log1pl, long double, (long double x));
1396# endif 1666# endif
1667# if __GLIBC__ >= 2
1397_GL_CXXALIASWARN (log1pl); 1668_GL_CXXALIASWARN (log1pl);
1669# endif
1398#elif defined GNULIB_POSIXCHECK 1670#elif defined GNULIB_POSIXCHECK
1399# undef log1pl 1671# undef log1pl
1400# if HAVE_RAW_DECL_LOG1PL 1672# if HAVE_RAW_DECL_LOG1PL
@@ -1443,7 +1715,9 @@ _GL_FUNCDECL_SYS (log2, double, (double x));
1443# endif 1715# endif
1444_GL_CXXALIAS_SYS (log2, double, (double x)); 1716_GL_CXXALIAS_SYS (log2, double, (double x));
1445# endif 1717# endif
1446_GL_CXXALIASWARN (log2); 1718# if __GLIBC__ >= 2
1719_GL_CXXALIASWARN1 (log2, double, (double x));
1720# endif
1447#elif defined GNULIB_POSIXCHECK 1721#elif defined GNULIB_POSIXCHECK
1448# undef log2 1722# undef log2
1449# if HAVE_RAW_DECL_LOG2 1723# if HAVE_RAW_DECL_LOG2
@@ -1466,7 +1740,9 @@ _GL_FUNCDECL_SYS (log2l, long double, (long double x));
1466# endif 1740# endif
1467_GL_CXXALIAS_SYS (log2l, long double, (long double x)); 1741_GL_CXXALIAS_SYS (log2l, long double, (long double x));
1468# endif 1742# endif
1743# if __GLIBC__ >= 2
1469_GL_CXXALIASWARN (log2l); 1744_GL_CXXALIASWARN (log2l);
1745# endif
1470#elif defined GNULIB_POSIXCHECK 1746#elif defined GNULIB_POSIXCHECK
1471# undef log2l 1747# undef log2l
1472# if HAVE_RAW_DECL_LOG2L 1748# if HAVE_RAW_DECL_LOG2L
@@ -1513,7 +1789,9 @@ _GL_FUNCDECL_SYS (logb, double, (double x));
1513# endif 1789# endif
1514_GL_CXXALIAS_SYS (logb, double, (double x)); 1790_GL_CXXALIAS_SYS (logb, double, (double x));
1515# endif 1791# endif
1516_GL_CXXALIASWARN (logb); 1792# if __GLIBC__ >= 2
1793_GL_CXXALIASWARN1 (logb, double, (double x));
1794# endif
1517#elif defined GNULIB_POSIXCHECK 1795#elif defined GNULIB_POSIXCHECK
1518# undef logb 1796# undef logb
1519# if HAVE_RAW_DECL_LOGB 1797# if HAVE_RAW_DECL_LOGB
@@ -1536,7 +1814,9 @@ _GL_FUNCDECL_SYS (logbl, long double, (long double x));
1536# endif 1814# endif
1537_GL_CXXALIAS_SYS (logbl, long double, (long double x)); 1815_GL_CXXALIAS_SYS (logbl, long double, (long double x));
1538# endif 1816# endif
1817# if __GLIBC__ >= 2
1539_GL_CXXALIASWARN (logbl); 1818_GL_CXXALIASWARN (logbl);
1819# endif
1540#elif defined GNULIB_POSIXCHECK 1820#elif defined GNULIB_POSIXCHECK
1541# undef logbl 1821# undef logbl
1542# if HAVE_RAW_DECL_LOGBL 1822# if HAVE_RAW_DECL_LOGBL
@@ -1581,7 +1861,9 @@ _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
1581# else 1861# else
1582_GL_CXXALIAS_SYS (modf, double, (double x, double *iptr)); 1862_GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
1583# endif 1863# endif
1584_GL_CXXALIASWARN (modf); 1864# if __GLIBC__ >= 2
1865_GL_CXXALIASWARN1 (modf, double, (double x, double *iptr));
1866# endif
1585#elif defined GNULIB_POSIXCHECK 1867#elif defined GNULIB_POSIXCHECK
1586# undef modf 1868# undef modf
1587# if HAVE_RAW_DECL_MODF 1869# if HAVE_RAW_DECL_MODF
@@ -1607,7 +1889,9 @@ _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
1607# endif 1889# endif
1608_GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr)); 1890_GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
1609# endif 1891# endif
1892# if __GLIBC__ >= 2
1610_GL_CXXALIASWARN (modfl); 1893_GL_CXXALIASWARN (modfl);
1894# endif
1611#elif defined GNULIB_POSIXCHECK 1895#elif defined GNULIB_POSIXCHECK
1612# undef modfl 1896# undef modfl
1613# if HAVE_RAW_DECL_MODFL 1897# if HAVE_RAW_DECL_MODFL
@@ -1670,7 +1954,9 @@ _GL_FUNCDECL_SYS (remainder, double, (double x, double y));
1670# endif 1954# endif
1671_GL_CXXALIAS_SYS (remainder, double, (double x, double y)); 1955_GL_CXXALIAS_SYS (remainder, double, (double x, double y));
1672# endif 1956# endif
1673_GL_CXXALIASWARN (remainder); 1957# if __GLIBC__ >= 2
1958_GL_CXXALIASWARN1 (remainder, double, (double x, double y));
1959# endif
1674#elif defined GNULIB_POSIXCHECK 1960#elif defined GNULIB_POSIXCHECK
1675# undef remainder 1961# undef remainder
1676# if HAVE_RAW_DECL_REMAINDER 1962# if HAVE_RAW_DECL_REMAINDER
@@ -1690,11 +1976,15 @@ _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
1690# else 1976# else
1691# if !@HAVE_DECL_REMAINDERL@ 1977# if !@HAVE_DECL_REMAINDERL@
1692# undef remainderl 1978# undef remainderl
1979# if !(defined __cplusplus && defined _AIX)
1693_GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y)); 1980_GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
1981# endif
1694# endif 1982# endif
1695_GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y)); 1983_GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
1696# endif 1984# endif
1985# if __GLIBC__ >= 2
1697_GL_CXXALIASWARN (remainderl); 1986_GL_CXXALIASWARN (remainderl);
1987# endif
1698#elif defined GNULIB_POSIXCHECK 1988#elif defined GNULIB_POSIXCHECK
1699# undef remainderl 1989# undef remainderl
1700# if HAVE_RAW_DECL_REMAINDERL 1990# if HAVE_RAW_DECL_REMAINDERL
@@ -1723,7 +2013,9 @@ _GL_WARN_ON_USE (rintf, "rintf is unportable - "
1723_GL_FUNCDECL_SYS (rint, double, (double x)); 2013_GL_FUNCDECL_SYS (rint, double, (double x));
1724# endif 2014# endif
1725_GL_CXXALIAS_SYS (rint, double, (double x)); 2015_GL_CXXALIAS_SYS (rint, double, (double x));
1726_GL_CXXALIASWARN (rint); 2016# if __GLIBC__ >= 2
2017_GL_CXXALIASWARN1 (rint, double, (double x));
2018# endif
1727#elif defined GNULIB_POSIXCHECK 2019#elif defined GNULIB_POSIXCHECK
1728# undef rint 2020# undef rint
1729# if HAVE_RAW_DECL_RINT 2021# if HAVE_RAW_DECL_RINT
@@ -1733,11 +2025,22 @@ _GL_WARN_ON_USE (rint, "rint is unportable - "
1733#endif 2025#endif
1734 2026
1735#if @GNULIB_RINTL@ 2027#if @GNULIB_RINTL@
1736# if !@HAVE_RINTL@ 2028# if @REPLACE_RINTL@
2029# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2030# undef rintl
2031# define rintl rpl_rintl
2032# endif
2033_GL_FUNCDECL_RPL (rintl, long double, (long double x));
2034_GL_CXXALIAS_RPL (rintl, long double, (long double x));
2035# else
2036# if !@HAVE_RINTL@
1737_GL_FUNCDECL_SYS (rintl, long double, (long double x)); 2037_GL_FUNCDECL_SYS (rintl, long double, (long double x));
1738# endif 2038# endif
1739_GL_CXXALIAS_SYS (rintl, long double, (long double x)); 2039_GL_CXXALIAS_SYS (rintl, long double, (long double x));
2040# endif
2041# if __GLIBC__ >= 2
1740_GL_CXXALIASWARN (rintl); 2042_GL_CXXALIASWARN (rintl);
2043# endif
1741#elif defined GNULIB_POSIXCHECK 2044#elif defined GNULIB_POSIXCHECK
1742# undef rintl 2045# undef rintl
1743# if HAVE_RAW_DECL_RINTL 2046# if HAVE_RAW_DECL_RINTL
@@ -1784,7 +2087,9 @@ _GL_FUNCDECL_SYS (round, double, (double x));
1784# endif 2087# endif
1785_GL_CXXALIAS_SYS (round, double, (double x)); 2088_GL_CXXALIAS_SYS (round, double, (double x));
1786# endif 2089# endif
1787_GL_CXXALIASWARN (round); 2090# if __GLIBC__ >= 2
2091_GL_CXXALIASWARN1 (round, double, (double x));
2092# endif
1788#elif defined GNULIB_POSIXCHECK 2093#elif defined GNULIB_POSIXCHECK
1789# undef round 2094# undef round
1790# if HAVE_RAW_DECL_ROUND 2095# if HAVE_RAW_DECL_ROUND
@@ -1804,11 +2109,15 @@ _GL_CXXALIAS_RPL (roundl, long double, (long double x));
1804# else 2109# else
1805# if !@HAVE_DECL_ROUNDL@ 2110# if !@HAVE_DECL_ROUNDL@
1806# undef roundl 2111# undef roundl
2112# if !(defined __cplusplus && defined _AIX)
1807_GL_FUNCDECL_SYS (roundl, long double, (long double x)); 2113_GL_FUNCDECL_SYS (roundl, long double, (long double x));
2114# endif
1808# endif 2115# endif
1809_GL_CXXALIAS_SYS (roundl, long double, (long double x)); 2116_GL_CXXALIAS_SYS (roundl, long double, (long double x));
1810# endif 2117# endif
2118# if __GLIBC__ >= 2
1811_GL_CXXALIASWARN (roundl); 2119_GL_CXXALIASWARN (roundl);
2120# endif
1812#elif defined GNULIB_POSIXCHECK 2121#elif defined GNULIB_POSIXCHECK
1813# undef roundl 2122# undef roundl
1814# if HAVE_RAW_DECL_ROUNDL 2123# if HAVE_RAW_DECL_ROUNDL
@@ -1819,11 +2128,20 @@ _GL_WARN_ON_USE (roundl, "roundl is unportable - "
1819 2128
1820 2129
1821#if @GNULIB_SINF@ 2130#if @GNULIB_SINF@
1822# if !@HAVE_SINF@ 2131# if @REPLACE_SINF@
1823# undef sinf 2132# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2133# undef sinf
2134# define sinf rpl_sinf
2135# endif
2136_GL_FUNCDECL_RPL (sinf, float, (float x));
2137_GL_CXXALIAS_RPL (sinf, float, (float x));
2138# else
2139# if !@HAVE_SINF@
2140# undef sinf
1824_GL_FUNCDECL_SYS (sinf, float, (float x)); 2141_GL_FUNCDECL_SYS (sinf, float, (float x));
1825# endif 2142# endif
1826_GL_CXXALIAS_SYS (sinf, float, (float x)); 2143_GL_CXXALIAS_SYS (sinf, float, (float x));
2144# endif
1827_GL_CXXALIASWARN (sinf); 2145_GL_CXXALIASWARN (sinf);
1828#elif defined GNULIB_POSIXCHECK 2146#elif defined GNULIB_POSIXCHECK
1829# undef sinf 2147# undef sinf
@@ -1839,7 +2157,9 @@ _GL_WARN_ON_USE (sinf, "sinf is unportable - "
1839_GL_FUNCDECL_SYS (sinl, long double, (long double x)); 2157_GL_FUNCDECL_SYS (sinl, long double, (long double x));
1840# endif 2158# endif
1841_GL_CXXALIAS_SYS (sinl, long double, (long double x)); 2159_GL_CXXALIAS_SYS (sinl, long double, (long double x));
2160# if __GLIBC__ >= 2
1842_GL_CXXALIASWARN (sinl); 2161_GL_CXXALIASWARN (sinl);
2162# endif
1843#elif defined GNULIB_POSIXCHECK 2163#elif defined GNULIB_POSIXCHECK
1844# undef sinl 2164# undef sinl
1845# if HAVE_RAW_DECL_SINL 2165# if HAVE_RAW_DECL_SINL
@@ -1850,11 +2170,20 @@ _GL_WARN_ON_USE (sinl, "sinl is unportable - "
1850 2170
1851 2171
1852#if @GNULIB_SINHF@ 2172#if @GNULIB_SINHF@
1853# if !@HAVE_SINHF@ 2173# if @REPLACE_SINHF@
1854# undef sinhf 2174# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2175# undef sinhf
2176# define sinhf rpl_sinhf
2177# endif
2178_GL_FUNCDECL_RPL (sinhf, float, (float x));
2179_GL_CXXALIAS_RPL (sinhf, float, (float x));
2180# else
2181# if !@HAVE_SINHF@
2182# undef sinhf
1855_GL_FUNCDECL_SYS (sinhf, float, (float x)); 2183_GL_FUNCDECL_SYS (sinhf, float, (float x));
1856# endif 2184# endif
1857_GL_CXXALIAS_SYS (sinhf, float, (float x)); 2185_GL_CXXALIAS_SYS (sinhf, float, (float x));
2186# endif
1858_GL_CXXALIASWARN (sinhf); 2187_GL_CXXALIASWARN (sinhf);
1859#elif defined GNULIB_POSIXCHECK 2188#elif defined GNULIB_POSIXCHECK
1860# undef sinhf 2189# undef sinhf
@@ -1866,11 +2195,20 @@ _GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
1866 2195
1867 2196
1868#if @GNULIB_SQRTF@ 2197#if @GNULIB_SQRTF@
1869# if !@HAVE_SQRTF@ 2198# if @REPLACE_SQRTF@
1870# undef sqrtf 2199# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2200# undef sqrtf
2201# define sqrtf rpl_sqrtf
2202# endif
2203_GL_FUNCDECL_RPL (sqrtf, float, (float x));
2204_GL_CXXALIAS_RPL (sqrtf, float, (float x));
2205# else
2206# if !@HAVE_SQRTF@
2207# undef sqrtf
1871_GL_FUNCDECL_SYS (sqrtf, float, (float x)); 2208_GL_FUNCDECL_SYS (sqrtf, float, (float x));
1872# endif 2209# endif
1873_GL_CXXALIAS_SYS (sqrtf, float, (float x)); 2210_GL_CXXALIAS_SYS (sqrtf, float, (float x));
2211# endif
1874_GL_CXXALIASWARN (sqrtf); 2212_GL_CXXALIASWARN (sqrtf);
1875#elif defined GNULIB_POSIXCHECK 2213#elif defined GNULIB_POSIXCHECK
1876# undef sqrtf 2214# undef sqrtf
@@ -1895,7 +2233,9 @@ _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
1895# endif 2233# endif
1896_GL_CXXALIAS_SYS (sqrtl, long double, (long double x)); 2234_GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
1897# endif 2235# endif
2236# if __GLIBC__ >= 2
1898_GL_CXXALIASWARN (sqrtl); 2237_GL_CXXALIASWARN (sqrtl);
2238# endif
1899#elif defined GNULIB_POSIXCHECK 2239#elif defined GNULIB_POSIXCHECK
1900# undef sqrtl 2240# undef sqrtl
1901# if HAVE_RAW_DECL_SQRTL 2241# if HAVE_RAW_DECL_SQRTL
@@ -1906,11 +2246,20 @@ _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
1906 2246
1907 2247
1908#if @GNULIB_TANF@ 2248#if @GNULIB_TANF@
1909# if !@HAVE_TANF@ 2249# if @REPLACE_TANF@
1910# undef tanf 2250# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2251# undef tanf
2252# define tanf rpl_tanf
2253# endif
2254_GL_FUNCDECL_RPL (tanf, float, (float x));
2255_GL_CXXALIAS_RPL (tanf, float, (float x));
2256# else
2257# if !@HAVE_TANF@
2258# undef tanf
1911_GL_FUNCDECL_SYS (tanf, float, (float x)); 2259_GL_FUNCDECL_SYS (tanf, float, (float x));
1912# endif 2260# endif
1913_GL_CXXALIAS_SYS (tanf, float, (float x)); 2261_GL_CXXALIAS_SYS (tanf, float, (float x));
2262# endif
1914_GL_CXXALIASWARN (tanf); 2263_GL_CXXALIASWARN (tanf);
1915#elif defined GNULIB_POSIXCHECK 2264#elif defined GNULIB_POSIXCHECK
1916# undef tanf 2265# undef tanf
@@ -1926,7 +2275,9 @@ _GL_WARN_ON_USE (tanf, "tanf is unportable - "
1926_GL_FUNCDECL_SYS (tanl, long double, (long double x)); 2275_GL_FUNCDECL_SYS (tanl, long double, (long double x));
1927# endif 2276# endif
1928_GL_CXXALIAS_SYS (tanl, long double, (long double x)); 2277_GL_CXXALIAS_SYS (tanl, long double, (long double x));
2278# if __GLIBC__ >= 2
1929_GL_CXXALIASWARN (tanl); 2279_GL_CXXALIASWARN (tanl);
2280# endif
1930#elif defined GNULIB_POSIXCHECK 2281#elif defined GNULIB_POSIXCHECK
1931# undef tanl 2282# undef tanl
1932# if HAVE_RAW_DECL_TANL 2283# if HAVE_RAW_DECL_TANL
@@ -1937,11 +2288,20 @@ _GL_WARN_ON_USE (tanl, "tanl is unportable - "
1937 2288
1938 2289
1939#if @GNULIB_TANHF@ 2290#if @GNULIB_TANHF@
1940# if !@HAVE_TANHF@ 2291# if @REPLACE_TANHF@
1941# undef tanhf 2292# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2293# undef tanhf
2294# define tanhf rpl_tanhf
2295# endif
2296_GL_FUNCDECL_RPL (tanhf, float, (float x));
2297_GL_CXXALIAS_RPL (tanhf, float, (float x));
2298# else
2299# if !@HAVE_TANHF@
2300# undef tanhf
1942_GL_FUNCDECL_SYS (tanhf, float, (float x)); 2301_GL_FUNCDECL_SYS (tanhf, float, (float x));
1943# endif 2302# endif
1944_GL_CXXALIAS_SYS (tanhf, float, (float x)); 2303_GL_CXXALIAS_SYS (tanhf, float, (float x));
2304# endif
1945_GL_CXXALIASWARN (tanhf); 2305_GL_CXXALIASWARN (tanhf);
1946#elif defined GNULIB_POSIXCHECK 2306#elif defined GNULIB_POSIXCHECK
1947# undef tanhf 2307# undef tanhf
@@ -1955,6 +2315,7 @@ _GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
1955#if @GNULIB_TRUNCF@ 2315#if @GNULIB_TRUNCF@
1956# if @REPLACE_TRUNCF@ 2316# if @REPLACE_TRUNCF@
1957# if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2317# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2318# undef truncf
1958# define truncf rpl_truncf 2319# define truncf rpl_truncf
1959# endif 2320# endif
1960_GL_FUNCDECL_RPL (truncf, float, (float x)); 2321_GL_FUNCDECL_RPL (truncf, float, (float x));
@@ -1977,6 +2338,7 @@ _GL_WARN_ON_USE (truncf, "truncf is unportable - "
1977#if @GNULIB_TRUNC@ 2338#if @GNULIB_TRUNC@
1978# if @REPLACE_TRUNC@ 2339# if @REPLACE_TRUNC@
1979# if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2340# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2341# undef trunc
1980# define trunc rpl_trunc 2342# define trunc rpl_trunc
1981# endif 2343# endif
1982_GL_FUNCDECL_RPL (trunc, double, (double x)); 2344_GL_FUNCDECL_RPL (trunc, double, (double x));
@@ -1987,7 +2349,9 @@ _GL_FUNCDECL_SYS (trunc, double, (double x));
1987# endif 2349# endif
1988_GL_CXXALIAS_SYS (trunc, double, (double x)); 2350_GL_CXXALIAS_SYS (trunc, double, (double x));
1989# endif 2351# endif
1990_GL_CXXALIASWARN (trunc); 2352# if __GLIBC__ >= 2
2353_GL_CXXALIASWARN1 (trunc, double, (double x));
2354# endif
1991#elif defined GNULIB_POSIXCHECK 2355#elif defined GNULIB_POSIXCHECK
1992# undef trunc 2356# undef trunc
1993# if HAVE_RAW_DECL_TRUNC 2357# if HAVE_RAW_DECL_TRUNC
@@ -2010,7 +2374,9 @@ _GL_FUNCDECL_SYS (truncl, long double, (long double x));
2010# endif 2374# endif
2011_GL_CXXALIAS_SYS (truncl, long double, (long double x)); 2375_GL_CXXALIAS_SYS (truncl, long double, (long double x));
2012# endif 2376# endif
2377# if __GLIBC__ >= 2
2013_GL_CXXALIASWARN (truncl); 2378_GL_CXXALIASWARN (truncl);
2379# endif
2014#elif defined GNULIB_POSIXCHECK 2380#elif defined GNULIB_POSIXCHECK
2015# undef truncl 2381# undef truncl
2016# if HAVE_RAW_DECL_TRUNCL 2382# if HAVE_RAW_DECL_TRUNCL
@@ -2020,6 +2386,55 @@ _GL_WARN_ON_USE (truncl, "truncl is unportable - "
2020#endif 2386#endif
2021 2387
2022 2388
2389#if @GNULIB_MDA_Y0@
2390/* On native Windows, map 'y0' to '_y0', so that -loldnames is not
2391 required. In C++ with GNULIB_NAMESPACE, avoid differences between
2392 platforms by defining GNULIB_NAMESPACE::y0 always. */
2393# if defined _WIN32 && !defined __CYGWIN__
2394# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2395# undef y0
2396# define y0 _y0
2397# endif
2398_GL_CXXALIAS_MDA (y0, double, (double x));
2399# else
2400_GL_CXXALIAS_SYS (y0, double, (double x));
2401# endif
2402_GL_CXXALIASWARN (y0);
2403#endif
2404
2405#if @GNULIB_MDA_Y1@
2406/* On native Windows, map 'y1' to '_y1', so that -loldnames is not
2407 required. In C++ with GNULIB_NAMESPACE, avoid differences between
2408 platforms by defining GNULIB_NAMESPACE::y1 always. */
2409# if defined _WIN32 && !defined __CYGWIN__
2410# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2411# undef y1
2412# define y1 _y1
2413# endif
2414_GL_CXXALIAS_MDA (y1, double, (double x));
2415# else
2416_GL_CXXALIAS_SYS (y1, double, (double x));
2417# endif
2418_GL_CXXALIASWARN (y1);
2419#endif
2420
2421#if @GNULIB_MDA_YN@
2422/* On native Windows, map 'yn' to '_yn', so that -loldnames is not
2423 required. In C++ with GNULIB_NAMESPACE, avoid differences between
2424 platforms by defining GNULIB_NAMESPACE::yn always. */
2425# if defined _WIN32 && !defined __CYGWIN__
2426# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2427# undef yn
2428# define yn _yn
2429# endif
2430_GL_CXXALIAS_MDA (yn, double, (int n, double x));
2431# else
2432_GL_CXXALIAS_SYS (yn, double, (int n, double x));
2433# endif
2434_GL_CXXALIASWARN (yn);
2435#endif
2436
2437
2023/* Definitions of function-like macros come here, after the function 2438/* Definitions of function-like macros come here, after the function
2024 declarations. */ 2439 declarations. */
2025 2440
@@ -2036,10 +2451,18 @@ _GL_EXTERN_C int gl_isfinitel (long double x);
2036 gl_isfinitef (x)) 2451 gl_isfinitef (x))
2037# endif 2452# endif
2038# ifdef __cplusplus 2453# ifdef __cplusplus
2039# ifdef isfinite 2454# if defined isfinite || defined GNULIB_NAMESPACE
2040_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite) 2455_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
2041# undef isfinite 2456# undef isfinite
2042_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite) 2457# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
2458 /* This platform's <cmath> possibly defines isfinite through a set of inline
2459 functions. */
2460_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool)
2461# define isfinite rpl_isfinite
2462# define GNULIB_NAMESPACE_LACKS_ISFINITE 1
2463# else
2464_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool)
2465# endif
2043# endif 2466# endif
2044# endif 2467# endif
2045#elif defined GNULIB_POSIXCHECK 2468#elif defined GNULIB_POSIXCHECK
@@ -2063,10 +2486,18 @@ _GL_EXTERN_C int gl_isinfl (long double x);
2063 gl_isinff (x)) 2486 gl_isinff (x))
2064# endif 2487# endif
2065# ifdef __cplusplus 2488# ifdef __cplusplus
2066# ifdef isinf 2489# if defined isinf || defined GNULIB_NAMESPACE
2067_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf) 2490_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
2068# undef isinf 2491# undef isinf
2069_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf) 2492# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
2493 /* This platform's <cmath> possibly defines isinf through a set of inline
2494 functions. */
2495_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, rpl_isinf, bool)
2496# define isinf rpl_isinf
2497# define GNULIB_NAMESPACE_LACKS_ISINF 1
2498# else
2499_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool)
2500# endif
2070# endif 2501# endif
2071# endif 2502# endif
2072#elif defined GNULIB_POSIXCHECK 2503#elif defined GNULIB_POSIXCHECK
@@ -2083,10 +2514,11 @@ _GL_WARN_REAL_FLOATING_DECL (isinf);
2083# if @HAVE_ISNANF@ 2514# if @HAVE_ISNANF@
2084/* The original <math.h> included above provides a declaration of isnan macro 2515/* The original <math.h> included above provides a declaration of isnan macro
2085 or (older) isnanf function. */ 2516 or (older) isnanf function. */
2086# if __GNUC__ >= 4 2517# if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2087 /* GCC 4.0 and newer provides three built-ins for isnan. */ 2518 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
2519 GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't. */
2088# undef isnanf 2520# undef isnanf
2089# define isnanf(x) __builtin_isnanf ((float)(x)) 2521# define isnanf(x) __builtin_isnan ((float)(x))
2090# elif defined isnan 2522# elif defined isnan
2091# undef isnanf 2523# undef isnanf
2092# define isnanf(x) isnan ((float)(x)) 2524# define isnanf(x) isnan ((float)(x))
@@ -2106,8 +2538,8 @@ _GL_EXTERN_C int isnanf (float x);
2106# if @HAVE_ISNAND@ 2538# if @HAVE_ISNAND@
2107/* The original <math.h> included above provides a declaration of isnan 2539/* The original <math.h> included above provides a declaration of isnan
2108 macro. */ 2540 macro. */
2109# if __GNUC__ >= 4 2541# if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2110 /* GCC 4.0 and newer provides three built-ins for isnan. */ 2542 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. */
2111# undef isnand 2543# undef isnand
2112# define isnand(x) __builtin_isnan ((double)(x)) 2544# define isnand(x) __builtin_isnan ((double)(x))
2113# else 2545# else
@@ -2127,10 +2559,11 @@ _GL_EXTERN_C int isnand (double x);
2127# if @HAVE_ISNANL@ 2559# if @HAVE_ISNANL@
2128/* The original <math.h> included above provides a declaration of isnan 2560/* The original <math.h> included above provides a declaration of isnan
2129 macro or (older) isnanl function. */ 2561 macro or (older) isnanl function. */
2130# if __GNUC__ >= 4 2562# if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2131 /* GCC 4.0 and newer provides three built-ins for isnan. */ 2563 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
2564 GCC >= 4.0 also provides __builtin_isnanl, but clang doesn't. */
2132# undef isnanl 2565# undef isnanl
2133# define isnanl(x) __builtin_isnanl ((long double)(x)) 2566# define isnanl(x) __builtin_isnan ((long double)(x))
2134# elif defined isnan 2567# elif defined isnan
2135# undef isnanl 2568# undef isnanl
2136# define isnanl(x) isnan ((long double)(x)) 2569# define isnanl(x) isnan ((long double)(x))
@@ -2150,20 +2583,20 @@ _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
2150 isnanf.h (e.g.) here, because those may end up being macros 2583 isnanf.h (e.g.) here, because those may end up being macros
2151 that recursively expand back to isnan. So use the gnulib 2584 that recursively expand back to isnan. So use the gnulib
2152 replacements for them directly. */ 2585 replacements for them directly. */
2153# if @HAVE_ISNANF@ && __GNUC__ >= 4 2586# if @HAVE_ISNANF@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2154# define gl_isnan_f(x) __builtin_isnanf ((float)(x)) 2587# define gl_isnan_f(x) __builtin_isnan ((float)(x))
2155# else 2588# else
2156_GL_EXTERN_C int rpl_isnanf (float x); 2589_GL_EXTERN_C int rpl_isnanf (float x);
2157# define gl_isnan_f(x) rpl_isnanf (x) 2590# define gl_isnan_f(x) rpl_isnanf (x)
2158# endif 2591# endif
2159# if @HAVE_ISNAND@ && __GNUC__ >= 4 2592# if @HAVE_ISNAND@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2160# define gl_isnan_d(x) __builtin_isnan ((double)(x)) 2593# define gl_isnan_d(x) __builtin_isnan ((double)(x))
2161# else 2594# else
2162_GL_EXTERN_C int rpl_isnand (double x); 2595_GL_EXTERN_C int rpl_isnand (double x);
2163# define gl_isnan_d(x) rpl_isnand (x) 2596# define gl_isnan_d(x) rpl_isnand (x)
2164# endif 2597# endif
2165# if @HAVE_ISNANL@ && __GNUC__ >= 4 2598# if @HAVE_ISNANL@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2166# define gl_isnan_l(x) __builtin_isnanl ((long double)(x)) 2599# define gl_isnan_l(x) __builtin_isnan ((long double)(x))
2167# else 2600# else
2168_GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST; 2601_GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
2169# define gl_isnan_l(x) rpl_isnanl (x) 2602# define gl_isnan_l(x) rpl_isnanl (x)
@@ -2173,18 +2606,26 @@ _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
2173 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \ 2606 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
2174 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \ 2607 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
2175 gl_isnan_f (x)) 2608 gl_isnan_f (x))
2176# elif __GNUC__ >= 4 2609# elif (__GNUC__ >= 4) || (__clang_major__ >= 4)
2177# undef isnan 2610# undef isnan
2178# define isnan(x) \ 2611# define isnan(x) \
2179 (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \ 2612 (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \
2180 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \ 2613 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
2181 __builtin_isnanf ((float)(x))) 2614 __builtin_isnan ((float)(x)))
2182# endif 2615# endif
2183# ifdef __cplusplus 2616# ifdef __cplusplus
2184# ifdef isnan 2617# if defined isnan || defined GNULIB_NAMESPACE
2185_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan) 2618_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
2186# undef isnan 2619# undef isnan
2187_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan) 2620# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__ && __clang_major__ < 12) || (defined __FreeBSD__ && (__clang_major__ < 7 || __clang_major__ >= 11)) || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
2621 /* This platform's <cmath> possibly defines isnan through a set of inline
2622 functions. */
2623_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, rpl_isnan, bool)
2624# define isnan rpl_isnan
2625# define GNULIB_NAMESPACE_LACKS_ISNAN 1
2626# else
2627_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool)
2628# endif
2188# endif 2629# endif
2189# else 2630# else
2190/* Ensure isnan is a macro. */ 2631/* Ensure isnan is a macro. */
@@ -2202,20 +2643,21 @@ _GL_WARN_REAL_FLOATING_DECL (isnan);
2202 2643
2203 2644
2204#if @GNULIB_SIGNBIT@ 2645#if @GNULIB_SIGNBIT@
2205# if @REPLACE_SIGNBIT_USING_GCC@ 2646# if (@REPLACE_SIGNBIT_USING_BUILTINS@ \
2647 && (!defined __cplusplus || __cplusplus < 201103))
2206# undef signbit 2648# undef signbit
2207 /* GCC 4.0 and newer provides three built-ins for signbit. */ 2649 /* GCC >= 4.0 and clang provide three built-ins for signbit. */
2208# define signbit(x) \ 2650# define signbit(x) \
2209 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ 2651 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
2210 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ 2652 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
2211 __builtin_signbitf (x)) 2653 __builtin_signbitf (x))
2212# endif 2654# endif
2213# if @REPLACE_SIGNBIT@ 2655# if @REPLACE_SIGNBIT@ && !GNULIB_defined_signbit
2214# undef signbit 2656# undef signbit
2215_GL_EXTERN_C int gl_signbitf (float arg); 2657_GL_EXTERN_C int gl_signbitf (float arg);
2216_GL_EXTERN_C int gl_signbitd (double arg); 2658_GL_EXTERN_C int gl_signbitd (double arg);
2217_GL_EXTERN_C int gl_signbitl (long double arg); 2659_GL_EXTERN_C int gl_signbitl (long double arg);
2218# if __GNUC__ >= 2 && !defined __STRICT_ANSI__ 2660# if (__GNUC__ >= 2 || defined __clang__) && !defined __STRICT_ANSI__
2219# define _GL_NUM_UINT_WORDS(type) \ 2661# define _GL_NUM_UINT_WORDS(type) \
2220 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) 2662 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
2221# if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf 2663# if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
@@ -2253,12 +2695,21 @@ _GL_EXTERN_C int gl_signbitl (long double arg);
2253 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \ 2695 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
2254 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \ 2696 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
2255 gl_signbitf (x)) 2697 gl_signbitf (x))
2698# define GNULIB_defined_signbit 1
2256# endif 2699# endif
2257# ifdef __cplusplus 2700# ifdef __cplusplus
2258# ifdef signbit 2701# if defined signbit || defined GNULIB_NAMESPACE
2259_GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit) 2702_GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
2260# undef signbit 2703# undef signbit
2261_GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit) 2704# if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
2705 /* This platform's <cmath> possibly defines signbit through a set of inline
2706 functions. */
2707_GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, rpl_signbit, bool)
2708# define signbit rpl_signbit
2709# define GNULIB_NAMESPACE_LACKS_SIGNBIT 1
2710# else
2711_GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, signbit, bool)
2712# endif
2262# endif 2713# endif
2263# endif 2714# endif
2264#elif defined GNULIB_POSIXCHECK 2715#elif defined GNULIB_POSIXCHECK
@@ -2272,4 +2723,5 @@ _GL_WARN_REAL_FLOATING_DECL (signbit);
2272_GL_INLINE_HEADER_END 2723_GL_INLINE_HEADER_END
2273 2724
2274#endif /* _@GUARD_PREFIX@_MATH_H */ 2725#endif /* _@GUARD_PREFIX@_MATH_H */
2726#endif /* _GL_INCLUDING_MATH_H */
2275#endif /* _@GUARD_PREFIX@_MATH_H */ 2727#endif /* _@GUARD_PREFIX@_MATH_H */