1 /* A GNU-like <math.h>.
3 Copyright (C) 2002-2003, 2007-2024 Free Software Foundation, Inc.
5 This file is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as
7 published by the Free Software Foundation; either version 2.1 of the
8 License, or (at your option) any later version.
10 This file 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 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */
18 /* On Android, in C++ mode, when /usr/include/c++/v1/math.h is being included
19 and /usr/include/math.h has not yet been included, skip this file, since it
20 would lead to many syntax errors. */
21 #if !(defined __ANDROID__ && defined _LIBCPP_MATH_H && !defined INFINITY)
23 #ifndef _@GUARD_PREFIX@_MATH_H
26 @PRAGMA_SYSTEM_HEADER@
30 #if defined _GL_INCLUDING_MATH_H
31 /* Special invocation convention:
32 - On FreeBSD 12.2 we have a sequence of nested includes
33 <math.h> -> <stdlib.h> -> <sys/wait.h> -> <sys/types.h> -> <sys/select.h>
34 -> <signal.h> -> <pthread.h> -> <stdlib.h> -> <math.h>
35 In this situation, the functions are not yet declared, therefore we cannot
36 provide the C++ aliases. */
38 #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
41 /* Normal invocation convention. */
43 /* The include_next requires a split double-inclusion guard. */
44 #define _GL_INCLUDING_MATH_H
45 #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
46 #undef _GL_INCLUDING_MATH_H
48 #ifndef _@GUARD_PREFIX@_MATH_H
49 #define _@GUARD_PREFIX@_MATH_H
51 /* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_CONST,
52 GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */
53 #if !_GL_CONFIG_H_INCLUDED
54 #error "Please include config.h first."
57 /* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>. */
58 #if defined __VMS && ! defined NAN
62 _GL_INLINE_HEADER_BEGIN
63 #ifndef _GL_MATH_INLINE
64 # define _GL_MATH_INLINE _GL_INLINE
67 /* The __attribute__ feature is available in gcc versions 2.5 and later.
68 The attribute __const__ was added in gcc 2.95. */
69 #ifndef _GL_ATTRIBUTE_CONST
70 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__
71 # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
73 # define _GL_ATTRIBUTE_CONST /* empty */
77 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
79 /* The definition of _GL_ARG_NONNULL is copied here. */
81 /* The definition of _GL_WARN_ON_USE is copied here. */
84 /* Helper macros to define type-generic function FUNC as overloaded functions,
85 rather than as macros like in C. POSIX declares these with an argument of
86 real-floating (that is, one of float, double, or long double). */
87 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \
89 _gl_cxx_ ## func ## f (float f) \
94 _gl_cxx_ ## func ## d (double d) \
99 _gl_cxx_ ## func ## l (long double l) \
103 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func,rpl_func,rettype) \
104 _GL_BEGIN_NAMESPACE \
108 return _gl_cxx_ ## func ## f (f); \
111 rpl_func (double d) \
113 return _gl_cxx_ ## func ## d (d); \
116 rpl_func (long double l) \
118 return _gl_cxx_ ## func ## l (l); \
123 /* Helper macros to define a portability warning for the
124 classification macro FUNC called with VALUE. POSIX declares the
125 classification macros with an argument of real-floating (that is,
126 one of float, double, or long double). */
127 #define _GL_WARN_REAL_FLOATING_DECL(func) \
128 _GL_MATH_INLINE int \
129 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \
130 "use gnulib module " #func " for portability") \
131 rpl_ ## func ## f (float f) \
135 _GL_MATH_INLINE int \
136 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \
137 "use gnulib module " #func " for portability") \
138 rpl_ ## func ## d (double d) \
142 _GL_MATH_INLINE int \
143 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \
144 "use gnulib module " #func " for portability") \
145 rpl_ ## func ## l (long double l) \
149 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
150 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \
151 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \
152 : rpl_ ## func ## l (value))
156 /* Pull in a function that fixes the 'int' to 'long double' conversion
158 _GL_EXTERN_C
void _Qp_itoq (long double *, int);
159 static void (*_gl_math_fix_itold
) (long double *, int) = _Qp_itoq
;
163 /* POSIX allows platforms that don't support NAN. But all major
164 machines in the past 15 years have supported something close to
165 IEEE NaN, so we define this unconditionally. We also must define
166 it on platforms like Solaris 10, where NAN is present but defined
167 as a function pointer rather than a floating point constant. */
168 #if !defined NAN || @REPLACE_NAN@
169 # if !GNULIB_defined_NAN
171 /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
172 choke on the expression 0.0 / 0.0. */
173 # if defined __DECC || defined _MSC_VER
174 _GL_MATH_INLINE
float
177 static float zero
= 0.0f
;
180 # define NAN (_NaN())
182 # define NAN (0.0f / 0.0f)
184 # define GNULIB_defined_NAN 1
188 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
189 than a floating point constant. */
190 #if @REPLACE_HUGE_VAL@
192 # define HUGE_VALF (1.0f / 0.0f)
194 # define HUGE_VAL (1.0 / 0.0)
196 # define HUGE_VALL (1.0L / 0.0L)
199 /* HUGE_VALF is a 'float' Infinity. */
201 # if defined _MSC_VER
202 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f. */
203 # define HUGE_VALF (1e25f * 1e25f)
205 # define HUGE_VALF (1.0f / 0.0f)
209 /* HUGE_VAL is a 'double' Infinity. */
211 # if defined _MSC_VER
212 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0. */
213 # define HUGE_VAL (1e250 * 1e250)
215 # define HUGE_VAL (1.0 / 0.0)
219 /* HUGE_VALL is a 'long double' Infinity. */
221 # if defined _MSC_VER
222 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L. */
223 # define HUGE_VALL (1e250L * 1e250L)
225 # define HUGE_VALL (1.0L / 0.0L)
230 #if defined FP_ILOGB0 && defined FP_ILOGBNAN
231 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are correct. */
232 # if defined __HAIKU__
233 /* Haiku: match what ilogb() does */
236 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
237 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
240 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */
241 # if defined __NetBSD__ || defined __sgi
242 /* NetBSD, IRIX 6.5: match what ilogb() does */
243 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
244 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
246 /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */
247 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
248 # define FP_ILOGBNAN 2147483647 /* INT_MAX */
250 /* Solaris 9: match what ilogb() does */
251 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
252 # define FP_ILOGBNAN 2147483647 /* INT_MAX */
254 /* Gnulib defined values. */
255 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
256 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
263 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
265 # define acosf rpl_acosf
267 _GL_FUNCDECL_RPL (acosf
, float, (float x
));
268 _GL_CXXALIAS_RPL (acosf
, float, (float x
));
272 _GL_FUNCDECL_SYS (acosf
, float, (float x
));
274 _GL_CXXALIAS_SYS (acosf
, float, (float x
));
276 _GL_CXXALIASWARN (acosf
);
277 #elif defined GNULIB_POSIXCHECK
279 # if HAVE_RAW_DECL_ACOSF
280 _GL_WARN_ON_USE (acosf
, "acosf is unportable - "
281 "use gnulib module acosf for portability");
286 # if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@
288 _GL_FUNCDECL_SYS (acosl
, long double, (long double x
));
290 _GL_CXXALIAS_SYS (acosl
, long double, (long double x
));
292 _GL_CXXALIASWARN (acosl
);
294 #elif defined GNULIB_POSIXCHECK
296 # if HAVE_RAW_DECL_ACOSL
297 _GL_WARN_ON_USE (acosl
, "acosl is unportable - "
298 "use gnulib module acosl for portability");
305 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
307 # define asinf rpl_asinf
309 _GL_FUNCDECL_RPL (asinf
, float, (float x
));
310 _GL_CXXALIAS_RPL (asinf
, float, (float x
));
314 _GL_FUNCDECL_SYS (asinf
, float, (float x
));
316 _GL_CXXALIAS_SYS (asinf
, float, (float x
));
318 _GL_CXXALIASWARN (asinf
);
319 #elif defined GNULIB_POSIXCHECK
321 # if HAVE_RAW_DECL_ASINF
322 _GL_WARN_ON_USE (asinf
, "asinf is unportable - "
323 "use gnulib module asinf for portability");
328 # if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@
330 _GL_FUNCDECL_SYS (asinl
, long double, (long double x
));
332 _GL_CXXALIAS_SYS (asinl
, long double, (long double x
));
334 _GL_CXXALIASWARN (asinl
);
336 #elif defined GNULIB_POSIXCHECK
338 # if HAVE_RAW_DECL_ASINL
339 _GL_WARN_ON_USE (asinl
, "asinl is unportable - "
340 "use gnulib module asinl for portability");
347 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
349 # define atanf rpl_atanf
351 _GL_FUNCDECL_RPL (atanf
, float, (float x
));
352 _GL_CXXALIAS_RPL (atanf
, float, (float x
));
356 _GL_FUNCDECL_SYS (atanf
, float, (float x
));
358 _GL_CXXALIAS_SYS (atanf
, float, (float x
));
360 _GL_CXXALIASWARN (atanf
);
361 #elif defined GNULIB_POSIXCHECK
363 # if HAVE_RAW_DECL_ATANF
364 _GL_WARN_ON_USE (atanf
, "atanf is unportable - "
365 "use gnulib module atanf for portability");
370 # if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@
372 _GL_FUNCDECL_SYS (atanl
, long double, (long double x
));
374 _GL_CXXALIAS_SYS (atanl
, long double, (long double x
));
376 _GL_CXXALIASWARN (atanl
);
378 #elif defined GNULIB_POSIXCHECK
380 # if HAVE_RAW_DECL_ATANL
381 _GL_WARN_ON_USE (atanl
, "atanl is unportable - "
382 "use gnulib module atanl for portability");
388 # if @REPLACE_ATAN2F@
389 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
391 # define atan2f rpl_atan2f
393 _GL_FUNCDECL_RPL (atan2f
, float, (float y
, float x
));
394 _GL_CXXALIAS_RPL (atan2f
, float, (float y
, float x
));
398 _GL_FUNCDECL_SYS (atan2f
, float, (float y
, float x
));
400 _GL_CXXALIAS_SYS (atan2f
, float, (float y
, float x
));
402 _GL_CXXALIASWARN (atan2f
);
403 #elif defined GNULIB_POSIXCHECK
405 # if HAVE_RAW_DECL_ATAN2F
406 _GL_WARN_ON_USE (atan2f
, "atan2f is unportable - "
407 "use gnulib module atan2f for portability");
414 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
416 # define cbrtf rpl_cbrtf
418 _GL_FUNCDECL_RPL (cbrtf
, float, (float x
));
419 _GL_CXXALIAS_RPL (cbrtf
, float, (float x
));
421 # if !@HAVE_DECL_CBRTF@
422 _GL_FUNCDECL_SYS (cbrtf
, float, (float x
));
424 _GL_CXXALIAS_SYS (cbrtf
, float, (float x
));
426 _GL_CXXALIASWARN (cbrtf
);
427 #elif defined GNULIB_POSIXCHECK
429 # if HAVE_RAW_DECL_CBRTF
430 _GL_WARN_ON_USE (cbrtf
, "cbrtf is unportable - "
431 "use gnulib module cbrtf for portability");
437 _GL_FUNCDECL_SYS (cbrt
, double, (double x
));
439 _GL_CXXALIAS_SYS (cbrt
, double, (double x
));
441 _GL_CXXALIASWARN1 (cbrt
, double, (double x
));
443 #elif defined GNULIB_POSIXCHECK
445 # if HAVE_RAW_DECL_CBRT
446 _GL_WARN_ON_USE (cbrt
, "cbrt is unportable - "
447 "use gnulib module cbrt for portability");
453 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
455 # define cbrtl rpl_cbrtl
457 _GL_FUNCDECL_RPL (cbrtl
, long double, (long double x
));
458 _GL_CXXALIAS_RPL (cbrtl
, long double, (long double x
));
460 # if !@HAVE_DECL_CBRTL@
461 _GL_FUNCDECL_SYS (cbrtl
, long double, (long double x
));
463 _GL_CXXALIAS_SYS (cbrtl
, long double, (long double x
));
466 _GL_CXXALIASWARN (cbrtl
);
468 #elif defined GNULIB_POSIXCHECK
470 # if HAVE_RAW_DECL_CBRTL
471 _GL_WARN_ON_USE (cbrtl
, "cbrtl is unportable - "
472 "use gnulib module cbrtl for portability");
479 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
481 # define ceilf rpl_ceilf
483 _GL_FUNCDECL_RPL (ceilf
, float, (float x
));
484 _GL_CXXALIAS_RPL (ceilf
, float, (float x
));
486 # if !@HAVE_DECL_CEILF@
488 _GL_FUNCDECL_SYS (ceilf
, float, (float x
));
490 _GL_CXXALIAS_SYS (ceilf
, float, (float x
));
492 _GL_CXXALIASWARN (ceilf
);
493 #elif defined GNULIB_POSIXCHECK
495 # if HAVE_RAW_DECL_CEILF
496 _GL_WARN_ON_USE (ceilf
, "ceilf is unportable - "
497 "use gnulib module ceilf for portability");
503 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
505 # define ceil rpl_ceil
507 _GL_FUNCDECL_RPL (ceil
, double, (double x
));
508 _GL_CXXALIAS_RPL (ceil
, double, (double x
));
510 _GL_CXXALIAS_SYS (ceil
, double, (double x
));
513 _GL_CXXALIASWARN1 (ceil
, double, (double x
));
519 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
521 # define ceill rpl_ceill
523 _GL_FUNCDECL_RPL (ceill
, long double, (long double x
));
524 _GL_CXXALIAS_RPL (ceill
, long double, (long double x
));
526 # if !@HAVE_DECL_CEILL@
528 _GL_FUNCDECL_SYS (ceill
, long double, (long double x
));
530 _GL_CXXALIAS_SYS (ceill
, long double, (long double x
));
533 _GL_CXXALIASWARN (ceill
);
535 #elif defined GNULIB_POSIXCHECK
537 # if HAVE_RAW_DECL_CEILL
538 _GL_WARN_ON_USE (ceill
, "ceill is unportable - "
539 "use gnulib module ceill for portability");
544 #if @GNULIB_COPYSIGNF@
545 # if !@HAVE_DECL_COPYSIGNF@
547 _GL_FUNCDECL_SYS (copysignf
, float, (float x
, float y
));
549 _GL_CXXALIAS_SYS (copysignf
, float, (float x
, float y
));
550 _GL_CXXALIASWARN (copysignf
);
551 #elif defined GNULIB_POSIXCHECK
553 # if HAVE_RAW_DECL_COPYSIGNF
554 _GL_WARN_ON_USE (copysignf
, "copysignf is unportable - "
555 "use gnulib module copysignf for portability");
559 #if @GNULIB_COPYSIGN@
560 # if !@HAVE_COPYSIGN@
561 _GL_FUNCDECL_SYS (copysign
, double, (double x
, double y
));
563 _GL_CXXALIAS_SYS (copysign
, double, (double x
, double y
));
565 _GL_CXXALIASWARN1 (copysign
, double, (double x
, double y
));
567 #elif defined GNULIB_POSIXCHECK
569 # if HAVE_RAW_DECL_COPYSIGN
570 _GL_WARN_ON_USE (copysign
, "copysign is unportable - "
571 "use gnulib module copysign for portability");
575 #if @GNULIB_COPYSIGNL@
576 # if !@HAVE_COPYSIGNL@
577 _GL_FUNCDECL_SYS (copysignl
, long double, (long double x
, long double y
));
579 _GL_CXXALIAS_SYS (copysignl
, long double, (long double x
, long double y
));
581 _GL_CXXALIASWARN (copysignl
);
583 #elif defined GNULIB_POSIXCHECK
585 # if HAVE_RAW_DECL_COPYSIGNL
586 _GL_WARN_ON_USE (copysign
, "copysignl is unportable - "
587 "use gnulib module copysignl for portability");
594 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
596 # define cosf rpl_cosf
598 _GL_FUNCDECL_RPL (cosf
, float, (float x
));
599 _GL_CXXALIAS_RPL (cosf
, float, (float x
));
603 _GL_FUNCDECL_SYS (cosf
, float, (float x
));
605 _GL_CXXALIAS_SYS (cosf
, float, (float x
));
607 _GL_CXXALIASWARN (cosf
);
608 #elif defined GNULIB_POSIXCHECK
610 # if HAVE_RAW_DECL_COSF
611 _GL_WARN_ON_USE (cosf
, "cosf is unportable - "
612 "use gnulib module cosf for portability");
617 # if !@HAVE_COSL@ || !@HAVE_DECL_COSL@
619 _GL_FUNCDECL_SYS (cosl
, long double, (long double x
));
621 _GL_CXXALIAS_SYS (cosl
, long double, (long double x
));
623 _GL_CXXALIASWARN (cosl
);
625 #elif defined GNULIB_POSIXCHECK
627 # if HAVE_RAW_DECL_COSL
628 _GL_WARN_ON_USE (cosl
, "cosl is unportable - "
629 "use gnulib module cosl for portability");
636 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
638 # define coshf rpl_coshf
640 _GL_FUNCDECL_RPL (coshf
, float, (float x
));
641 _GL_CXXALIAS_RPL (coshf
, float, (float x
));
645 _GL_FUNCDECL_SYS (coshf
, float, (float x
));
647 _GL_CXXALIAS_SYS (coshf
, float, (float x
));
649 _GL_CXXALIASWARN (coshf
);
650 #elif defined GNULIB_POSIXCHECK
652 # if HAVE_RAW_DECL_COSHF
653 _GL_WARN_ON_USE (coshf
, "coshf is unportable - "
654 "use gnulib module coshf for portability");
661 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
663 # define expf rpl_expf
665 _GL_FUNCDECL_RPL (expf
, float, (float x
));
666 _GL_CXXALIAS_RPL (expf
, float, (float x
));
670 _GL_FUNCDECL_SYS (expf
, float, (float x
));
672 _GL_CXXALIAS_SYS (expf
, float, (float x
));
674 _GL_CXXALIASWARN (expf
);
675 #elif defined GNULIB_POSIXCHECK
677 # if HAVE_RAW_DECL_EXPF
678 _GL_WARN_ON_USE (expf
, "expf is unportable - "
679 "use gnulib module expf for portability");
685 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
687 # define expl rpl_expl
689 _GL_FUNCDECL_RPL (expl
, long double, (long double x
));
690 _GL_CXXALIAS_RPL (expl
, long double, (long double x
));
692 # if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@
694 _GL_FUNCDECL_SYS (expl
, long double, (long double x
));
696 _GL_CXXALIAS_SYS (expl
, long double, (long double x
));
699 _GL_CXXALIASWARN (expl
);
701 #elif defined GNULIB_POSIXCHECK
703 # if HAVE_RAW_DECL_EXPL
704 _GL_WARN_ON_USE (expl
, "expl is unportable - "
705 "use gnulib module expl for portability");
711 # if !@HAVE_DECL_EXP2F@
712 _GL_FUNCDECL_SYS (exp2f
, float, (float x
));
714 _GL_CXXALIAS_SYS (exp2f
, float, (float x
));
715 _GL_CXXALIASWARN (exp2f
);
716 #elif defined GNULIB_POSIXCHECK
718 # if HAVE_RAW_DECL_EXP2F
719 _GL_WARN_ON_USE (exp2f
, "exp2f is unportable - "
720 "use gnulib module exp2f for portability");
726 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
728 # define exp2 rpl_exp2
730 _GL_FUNCDECL_RPL (exp2
, double, (double x
));
731 _GL_CXXALIAS_RPL (exp2
, double, (double x
));
733 # if !@HAVE_DECL_EXP2@
734 _GL_FUNCDECL_SYS (exp2
, double, (double x
));
736 _GL_CXXALIAS_SYS (exp2
, double, (double x
));
739 _GL_CXXALIASWARN1 (exp2
, double, (double x
));
741 #elif defined GNULIB_POSIXCHECK
743 # if HAVE_RAW_DECL_EXP2
744 _GL_WARN_ON_USE (exp2
, "exp2 is unportable - "
745 "use gnulib module exp2 for portability");
751 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
753 # define exp2l rpl_exp2l
755 _GL_FUNCDECL_RPL (exp2l
, long double, (long double x
));
756 _GL_CXXALIAS_RPL (exp2l
, long double, (long double x
));
758 # if !@HAVE_DECL_EXP2L@
760 _GL_FUNCDECL_SYS (exp2l
, long double, (long double x
));
762 _GL_CXXALIAS_SYS (exp2l
, long double, (long double x
));
765 _GL_CXXALIASWARN (exp2l
);
767 #elif defined GNULIB_POSIXCHECK
769 # if HAVE_RAW_DECL_EXP2L
770 _GL_WARN_ON_USE (exp2l
, "exp2l is unportable - "
771 "use gnulib module exp2l for portability");
777 # if @REPLACE_EXPM1F@
778 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
780 # define expm1f rpl_expm1f
782 _GL_FUNCDECL_RPL (expm1f
, float, (float x
));
783 _GL_CXXALIAS_RPL (expm1f
, float, (float x
));
786 _GL_FUNCDECL_SYS (expm1f
, float, (float x
));
788 _GL_CXXALIAS_SYS (expm1f
, float, (float x
));
790 _GL_CXXALIASWARN (expm1f
);
791 #elif defined GNULIB_POSIXCHECK
793 # if HAVE_RAW_DECL_EXPM1F
794 _GL_WARN_ON_USE (expm1f
, "expm1f is unportable - "
795 "use gnulib module expm1f for portability");
801 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
803 # define expm1 rpl_expm1
805 _GL_FUNCDECL_RPL (expm1
, double, (double x
));
806 _GL_CXXALIAS_RPL (expm1
, double, (double x
));
809 _GL_FUNCDECL_SYS (expm1
, double, (double x
));
811 _GL_CXXALIAS_SYS (expm1
, double, (double x
));
814 _GL_CXXALIASWARN1 (expm1
, double, (double x
));
816 #elif defined GNULIB_POSIXCHECK
818 # if HAVE_RAW_DECL_EXPM1
819 _GL_WARN_ON_USE (expm1
, "expm1 is unportable - "
820 "use gnulib module expm1 for portability");
825 # if @REPLACE_EXPM1L@
826 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
828 # define expm1l rpl_expm1l
830 _GL_FUNCDECL_RPL (expm1l
, long double, (long double x
));
831 _GL_CXXALIAS_RPL (expm1l
, long double, (long double x
));
833 # if !@HAVE_DECL_EXPM1L@
835 # if !(defined __cplusplus && defined _AIX)
836 _GL_FUNCDECL_SYS (expm1l
, long double, (long double x
));
839 _GL_CXXALIAS_SYS (expm1l
, long double, (long double x
));
842 _GL_CXXALIASWARN (expm1l
);
844 #elif defined GNULIB_POSIXCHECK
846 # if HAVE_RAW_DECL_EXPM1L
847 _GL_WARN_ON_USE (expm1l
, "expm1l is unportable - "
848 "use gnulib module expm1l for portability");
856 _GL_FUNCDECL_SYS (fabsf
, float, (float x
));
858 _GL_CXXALIAS_SYS (fabsf
, float, (float x
));
860 _GL_CXXALIASWARN (fabsf
);
862 #elif defined GNULIB_POSIXCHECK
864 # if HAVE_RAW_DECL_FABSF
865 _GL_WARN_ON_USE (fabsf
, "fabsf is unportable - "
866 "use gnulib module fabsf for portability");
872 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
874 # define fabsl rpl_fabsl
876 _GL_FUNCDECL_RPL (fabsl
, long double, (long double x
));
877 _GL_CXXALIAS_RPL (fabsl
, long double, (long double x
));
881 _GL_FUNCDECL_SYS (fabsl
, long double, (long double x
));
883 _GL_CXXALIAS_SYS (fabsl
, long double, (long double x
));
886 _GL_CXXALIASWARN (fabsl
);
888 #elif defined GNULIB_POSIXCHECK
890 # if HAVE_RAW_DECL_FABSL
891 _GL_WARN_ON_USE (fabsl
, "fabsl is unportable - "
892 "use gnulib module fabsl for portability");
898 # if @REPLACE_FLOORF@
899 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
901 # define floorf rpl_floorf
903 _GL_FUNCDECL_RPL (floorf
, float, (float x
));
904 _GL_CXXALIAS_RPL (floorf
, float, (float x
));
906 # if !@HAVE_DECL_FLOORF@
908 _GL_FUNCDECL_SYS (floorf
, float, (float x
));
910 _GL_CXXALIAS_SYS (floorf
, float, (float x
));
912 _GL_CXXALIASWARN (floorf
);
913 #elif defined GNULIB_POSIXCHECK
915 # if HAVE_RAW_DECL_FLOORF
916 _GL_WARN_ON_USE (floorf
, "floorf is unportable - "
917 "use gnulib module floorf for portability");
923 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
925 # define floor rpl_floor
927 _GL_FUNCDECL_RPL (floor
, double, (double x
));
928 _GL_CXXALIAS_RPL (floor
, double, (double x
));
930 _GL_CXXALIAS_SYS (floor
, double, (double x
));
933 _GL_CXXALIASWARN1 (floor
, double, (double x
));
938 # if @REPLACE_FLOORL@
939 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
941 # define floorl rpl_floorl
943 _GL_FUNCDECL_RPL (floorl
, long double, (long double x
));
944 _GL_CXXALIAS_RPL (floorl
, long double, (long double x
));
946 # if !@HAVE_DECL_FLOORL@
948 _GL_FUNCDECL_SYS (floorl
, long double, (long double x
));
950 _GL_CXXALIAS_SYS (floorl
, long double, (long double x
));
953 _GL_CXXALIASWARN (floorl
);
955 #elif defined GNULIB_POSIXCHECK
957 # if HAVE_RAW_DECL_FLOORL
958 _GL_WARN_ON_USE (floorl
, "floorl is unportable - "
959 "use gnulib module floorl for portability");
966 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
968 # define fmaf rpl_fmaf
970 _GL_FUNCDECL_RPL (fmaf
, float, (float x
, float y
, float z
));
971 _GL_CXXALIAS_RPL (fmaf
, float, (float x
, float y
, float z
));
975 _GL_FUNCDECL_SYS (fmaf
, float, (float x
, float y
, float z
));
977 _GL_CXXALIAS_SYS (fmaf
, float, (float x
, float y
, float z
));
979 _GL_CXXALIASWARN (fmaf
);
980 #elif defined GNULIB_POSIXCHECK
982 # if HAVE_RAW_DECL_FMAF
983 _GL_WARN_ON_USE (fmaf
, "fmaf is unportable - "
984 "use gnulib module fmaf for portability");
990 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
994 _GL_FUNCDECL_RPL (fma
, double, (double x
, double y
, double z
));
995 _GL_CXXALIAS_RPL (fma
, double, (double x
, double y
, double z
));
999 _GL_FUNCDECL_SYS (fma
, double, (double x
, double y
, double z
));
1001 _GL_CXXALIAS_SYS (fma
, double, (double x
, double y
, double z
));
1004 _GL_CXXALIASWARN1 (fma
, double, (double x
, double y
, double z
));
1006 #elif defined GNULIB_POSIXCHECK
1008 # if HAVE_RAW_DECL_FMA
1009 _GL_WARN_ON_USE (fma
, "fma is unportable - "
1010 "use gnulib module fma for portability");
1016 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1018 # define fmal rpl_fmal
1020 _GL_FUNCDECL_RPL (fmal
, long double,
1021 (long double x
, long double y
, long double z
));
1022 _GL_CXXALIAS_RPL (fmal
, long double,
1023 (long double x
, long double y
, long double z
));
1027 # if !(defined __cplusplus && defined _AIX)
1028 _GL_FUNCDECL_SYS (fmal
, long double,
1029 (long double x
, long double y
, long double z
));
1032 _GL_CXXALIAS_SYS (fmal
, long double,
1033 (long double x
, long double y
, long double z
));
1036 _GL_CXXALIASWARN (fmal
);
1038 #elif defined GNULIB_POSIXCHECK
1040 # if HAVE_RAW_DECL_FMAL
1041 _GL_WARN_ON_USE (fmal
, "fmal is unportable - "
1042 "use gnulib module fmal for portability");
1048 # if @REPLACE_FMODF@
1049 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1051 # define fmodf rpl_fmodf
1053 _GL_FUNCDECL_RPL (fmodf
, float, (float x
, float y
));
1054 _GL_CXXALIAS_RPL (fmodf
, float, (float x
, float y
));
1058 _GL_FUNCDECL_SYS (fmodf
, float, (float x
, float y
));
1060 _GL_CXXALIAS_SYS (fmodf
, float, (float x
, float y
));
1062 _GL_CXXALIASWARN (fmodf
);
1063 #elif defined GNULIB_POSIXCHECK
1065 # if HAVE_RAW_DECL_FMODF
1066 _GL_WARN_ON_USE (fmodf
, "fmodf is unportable - "
1067 "use gnulib module fmodf for portability");
1073 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1075 # define fmod rpl_fmod
1077 _GL_FUNCDECL_RPL (fmod
, double, (double x
, double y
));
1078 _GL_CXXALIAS_RPL (fmod
, double, (double x
, double y
));
1080 _GL_CXXALIAS_SYS (fmod
, double, (double x
, double y
));
1083 _GL_CXXALIASWARN1 (fmod
, double, (double x
, double y
));
1085 #elif defined GNULIB_POSIXCHECK
1087 # if HAVE_RAW_DECL_FMOD
1088 _GL_WARN_ON_USE (fmod
, "fmod has portability problems - "
1089 "use gnulib module fmod for portability");
1094 # if @REPLACE_FMODL@
1095 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1097 # define fmodl rpl_fmodl
1099 _GL_FUNCDECL_RPL (fmodl
, long double, (long double x
, long double y
));
1100 _GL_CXXALIAS_RPL (fmodl
, long double, (long double x
, long double y
));
1104 _GL_FUNCDECL_SYS (fmodl
, long double, (long double x
, long double y
));
1106 _GL_CXXALIAS_SYS (fmodl
, long double, (long double x
, long double y
));
1109 _GL_CXXALIASWARN (fmodl
);
1111 #elif defined GNULIB_POSIXCHECK
1113 # if HAVE_RAW_DECL_FMODL
1114 _GL_WARN_ON_USE (fmodl
, "fmodl is unportable - "
1115 "use gnulib module fmodl for portability");
1121 x = mantissa * 2^exp
1123 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1124 If x is zero: mantissa = x, exp = 0.
1125 If x is infinite or NaN: mantissa = x, exp unspecified.
1126 Store exp in *EXPPTR and return mantissa. */
1128 # if @REPLACE_FREXPF@
1129 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1131 # define frexpf rpl_frexpf
1133 _GL_FUNCDECL_RPL (frexpf
, float, (float x
, int *expptr
) _GL_ARG_NONNULL ((2)));
1134 _GL_CXXALIAS_RPL (frexpf
, float, (float x
, int *expptr
));
1138 _GL_FUNCDECL_SYS (frexpf
, float, (float x
, int *expptr
) _GL_ARG_NONNULL ((2)));
1140 _GL_CXXALIAS_SYS (frexpf
, float, (float x
, int *expptr
));
1143 _GL_CXXALIASWARN (frexpf
);
1145 #elif defined GNULIB_POSIXCHECK
1147 # if HAVE_RAW_DECL_FREXPF
1148 _GL_WARN_ON_USE (frexpf
, "frexpf is unportable - "
1149 "use gnulib module frexpf for portability");
1154 x = mantissa * 2^exp
1156 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1157 If x is zero: mantissa = x, exp = 0.
1158 If x is infinite or NaN: mantissa = x, exp unspecified.
1159 Store exp in *EXPPTR and return mantissa. */
1161 # if @REPLACE_FREXP@
1162 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1164 # define frexp rpl_frexp
1166 _GL_FUNCDECL_RPL (frexp
, double, (double x
, int *expptr
) _GL_ARG_NONNULL ((2)));
1167 _GL_CXXALIAS_RPL (frexp
, double, (double x
, int *expptr
));
1169 _GL_CXXALIAS_SYS (frexp
, double, (double x
, int *expptr
));
1172 _GL_CXXALIASWARN1 (frexp
, double, (double x
, int *expptr
));
1174 #elif defined GNULIB_POSIXCHECK
1176 /* Assume frexp is always declared. */
1177 _GL_WARN_ON_USE (frexp
, "frexp is unportable - "
1178 "use gnulib module frexp for portability");
1182 x = mantissa * 2^exp
1184 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1185 If x is zero: mantissa = x, exp = 0.
1186 If x is infinite or NaN: mantissa = x, exp unspecified.
1187 Store exp in *EXPPTR and return mantissa. */
1188 #if @GNULIB_FREXPL@ && @REPLACE_FREXPL@
1189 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1191 # define frexpl rpl_frexpl
1193 _GL_FUNCDECL_RPL (frexpl
, long double,
1194 (long double x
, int *expptr
) _GL_ARG_NONNULL ((2)));
1195 _GL_CXXALIAS_RPL (frexpl
, long double, (long double x
, int *expptr
));
1197 # if !@HAVE_DECL_FREXPL@
1198 _GL_FUNCDECL_SYS (frexpl
, long double,
1199 (long double x
, int *expptr
) _GL_ARG_NONNULL ((2)));
1201 # if @GNULIB_FREXPL@
1202 _GL_CXXALIAS_SYS (frexpl
, long double, (long double x
, int *expptr
));
1205 #if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@)
1207 _GL_CXXALIASWARN (frexpl
);
1210 #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
1212 # if HAVE_RAW_DECL_FREXPL
1213 _GL_WARN_ON_USE (frexpl
, "frexpl is unportable - "
1214 "use gnulib module frexpl for portability");
1219 /* Return sqrt(x^2+y^2). */
1221 # if @REPLACE_HYPOTF@
1222 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1224 # define hypotf rpl_hypotf
1226 _GL_FUNCDECL_RPL (hypotf
, float, (float x
, float y
));
1227 _GL_CXXALIAS_RPL (hypotf
, float, (float x
, float y
));
1230 _GL_FUNCDECL_SYS (hypotf
, float, (float x
, float y
));
1232 _GL_CXXALIAS_SYS (hypotf
, float, (float x
, float y
));
1235 _GL_CXXALIASWARN (hypotf
);
1237 #elif defined GNULIB_POSIXCHECK
1239 # if HAVE_RAW_DECL_HYPOTF
1240 _GL_WARN_ON_USE (hypotf
, "hypotf is unportable - "
1241 "use gnulib module hypotf for portability");
1245 /* Return sqrt(x^2+y^2). */
1247 # if @REPLACE_HYPOT@
1248 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1250 # define hypot rpl_hypot
1252 _GL_FUNCDECL_RPL (hypot
, double, (double x
, double y
));
1253 _GL_CXXALIAS_RPL (hypot
, double, (double x
, double y
));
1255 _GL_CXXALIAS_SYS (hypot
, double, (double x
, double y
));
1258 _GL_CXXALIASWARN1 (hypot
, double, (double x
, double y
));
1260 #elif defined GNULIB_POSIXCHECK
1262 # if HAVE_RAW_DECL_HYPOT
1263 _GL_WARN_ON_USE (hypotf
, "hypot has portability problems - "
1264 "use gnulib module hypot for portability");
1268 /* Return sqrt(x^2+y^2). */
1270 # if @REPLACE_HYPOTL@
1271 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1273 # define hypotl rpl_hypotl
1275 _GL_FUNCDECL_RPL (hypotl
, long double, (long double x
, long double y
));
1276 _GL_CXXALIAS_RPL (hypotl
, long double, (long double x
, long double y
));
1279 _GL_FUNCDECL_SYS (hypotl
, long double, (long double x
, long double y
));
1281 _GL_CXXALIAS_SYS (hypotl
, long double, (long double x
, long double y
));
1284 _GL_CXXALIASWARN (hypotl
);
1286 #elif defined GNULIB_POSIXCHECK
1288 # if HAVE_RAW_DECL_HYPOTL
1289 _GL_WARN_ON_USE (hypotl
, "hypotl is unportable - "
1290 "use gnulib module hypotl for portability");
1296 # if @REPLACE_ILOGBF@
1297 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1299 # define ilogbf rpl_ilogbf
1301 _GL_FUNCDECL_RPL (ilogbf
, int, (float x
));
1302 _GL_CXXALIAS_RPL (ilogbf
, int, (float x
));
1305 _GL_FUNCDECL_SYS (ilogbf
, int, (float x
));
1307 _GL_CXXALIAS_SYS (ilogbf
, int, (float x
));
1309 _GL_CXXALIASWARN (ilogbf
);
1310 #elif defined GNULIB_POSIXCHECK
1312 # if HAVE_RAW_DECL_ILOGBF
1313 _GL_WARN_ON_USE (ilogbf
, "ilogbf is unportable - "
1314 "use gnulib module ilogbf for portability");
1319 # if @REPLACE_ILOGB@
1320 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1322 # define ilogb rpl_ilogb
1324 _GL_FUNCDECL_RPL (ilogb
, int, (double x
));
1325 _GL_CXXALIAS_RPL (ilogb
, int, (double x
));
1328 _GL_FUNCDECL_SYS (ilogb
, int, (double x
));
1330 _GL_CXXALIAS_SYS (ilogb
, int, (double x
));
1333 _GL_CXXALIASWARN1 (ilogb
, int, (double x
));
1335 #elif defined GNULIB_POSIXCHECK
1337 # if HAVE_RAW_DECL_ILOGB
1338 _GL_WARN_ON_USE (ilogb
, "ilogb is unportable - "
1339 "use gnulib module ilogb for portability");
1344 # if @REPLACE_ILOGBL@
1345 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1347 # define ilogbl rpl_ilogbl
1349 _GL_FUNCDECL_RPL (ilogbl
, int, (long double x
));
1350 _GL_CXXALIAS_RPL (ilogbl
, int, (long double x
));
1354 _GL_FUNCDECL_SYS (ilogbl
, int, (long double x
));
1356 _GL_CXXALIAS_SYS (ilogbl
, int, (long double x
));
1359 _GL_CXXALIASWARN (ilogbl
);
1361 #elif defined GNULIB_POSIXCHECK
1363 # if HAVE_RAW_DECL_ILOGBL
1364 _GL_WARN_ON_USE (ilogbl
, "ilogbl is unportable - "
1365 "use gnulib module ilogbl for portability");
1371 /* On native Windows, map 'j0' to '_j0', so that -loldnames is not
1372 required. In C++ with GNULIB_NAMESPACE, avoid differences between
1373 platforms by defining GNULIB_NAMESPACE::j0 always. */
1374 # if defined _WIN32 && !defined __CYGWIN__
1375 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1379 _GL_CXXALIAS_MDA (j0
, double, (double x
));
1381 _GL_CXXALIAS_SYS (j0
, double, (double x
));
1383 _GL_CXXALIASWARN (j0
);
1387 /* On native Windows, map 'j1' to '_j1', so that -loldnames is not
1388 required. In C++ with GNULIB_NAMESPACE, avoid differences between
1389 platforms by defining GNULIB_NAMESPACE::j1 always. */
1390 # if defined _WIN32 && !defined __CYGWIN__
1391 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1395 _GL_CXXALIAS_MDA (j1
, double, (double x
));
1397 _GL_CXXALIAS_SYS (j1
, double, (double x
));
1399 _GL_CXXALIASWARN (j1
);
1403 /* On native Windows, map 'jn' to '_jn', so that -loldnames is not
1404 required. In C++ with GNULIB_NAMESPACE, avoid differences between
1405 platforms by defining GNULIB_NAMESPACE::jn always. */
1406 # if defined _WIN32 && !defined __CYGWIN__
1407 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1411 _GL_CXXALIAS_MDA (jn
, double, (int n
, double x
));
1413 _GL_CXXALIAS_SYS (jn
, double, (int n
, double x
));
1415 _GL_CXXALIASWARN (jn
);
1419 /* Return x * 2^exp. */
1423 _GL_FUNCDECL_SYS (ldexpf
, float, (float x
, int exp
));
1425 _GL_CXXALIAS_SYS (ldexpf
, float, (float x
, int exp
));
1427 _GL_CXXALIASWARN (ldexpf
);
1429 #elif defined GNULIB_POSIXCHECK
1431 # if HAVE_RAW_DECL_LDEXPF
1432 _GL_WARN_ON_USE (ldexpf
, "ldexpf is unportable - "
1433 "use gnulib module ldexpf for portability");
1437 /* Return x * 2^exp. */
1439 # if @REPLACE_LDEXP@
1440 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1442 # define ldexp rpl_ldexp
1444 _GL_FUNCDECL_RPL (ldexp
, double, (double x
, int exp
));
1445 _GL_CXXALIAS_RPL (ldexp
, double, (double x
, int exp
));
1447 /* Assume ldexp is always declared. */
1448 _GL_CXXALIAS_SYS (ldexp
, double, (double x
, int exp
));
1451 _GL_CXXALIASWARN1 (ldexp
, double, (double x
, int exp
));
1453 #elif defined GNULIB_POSIXCHECK
1455 /* Assume ldexp is always declared. */
1456 _GL_WARN_ON_USE (ldexp
, "ldexp is unportable - "
1457 "use gnulib module ldexp for portability");
1460 /* Return x * 2^exp. */
1461 #if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
1462 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1464 # define ldexpl rpl_ldexpl
1466 _GL_FUNCDECL_RPL (ldexpl
, long double, (long double x
, int exp
));
1467 _GL_CXXALIAS_RPL (ldexpl
, long double, (long double x
, int exp
));
1469 # if !@HAVE_DECL_LDEXPL@
1470 _GL_FUNCDECL_SYS (ldexpl
, long double, (long double x
, int exp
));
1472 # if @GNULIB_LDEXPL@
1473 _GL_CXXALIAS_SYS (ldexpl
, long double, (long double x
, int exp
));
1478 _GL_CXXALIASWARN (ldexpl
);
1481 #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
1483 # if HAVE_RAW_DECL_LDEXPL
1484 _GL_WARN_ON_USE (ldexpl
, "ldexpl is unportable - "
1485 "use gnulib module ldexpl for portability");
1492 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1494 # define logf rpl_logf
1496 _GL_FUNCDECL_RPL (logf
, float, (float x
));
1497 _GL_CXXALIAS_RPL (logf
, float, (float x
));
1501 _GL_FUNCDECL_SYS (logf
, float, (float x
));
1503 _GL_CXXALIAS_SYS (logf
, float, (float x
));
1505 _GL_CXXALIASWARN (logf
);
1506 #elif defined GNULIB_POSIXCHECK
1508 # if HAVE_RAW_DECL_LOGF
1509 _GL_WARN_ON_USE (logf
, "logf is unportable - "
1510 "use gnulib module logf for portability");
1516 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1518 # define log rpl_log
1520 _GL_FUNCDECL_RPL (log
, double, (double x
));
1521 _GL_CXXALIAS_RPL (log
, double, (double x
));
1523 _GL_CXXALIAS_SYS (log
, double, (double x
));
1526 _GL_CXXALIASWARN1 (log
, double, (double x
));
1528 #elif defined GNULIB_POSIXCHECK
1530 # if HAVE_RAW_DECL_LOG
1531 _GL_WARN_ON_USE (log
, "log has portability problems - "
1532 "use gnulib module log for portability");
1538 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1540 # define logl rpl_logl
1542 _GL_FUNCDECL_RPL (logl
, long double, (long double x
));
1543 _GL_CXXALIAS_RPL (logl
, long double, (long double x
));
1545 # if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
1547 _GL_FUNCDECL_SYS (logl
, long double, (long double x
));
1549 _GL_CXXALIAS_SYS (logl
, long double, (long double x
));
1552 _GL_CXXALIASWARN (logl
);
1554 #elif defined GNULIB_POSIXCHECK
1556 # if HAVE_RAW_DECL_LOGL
1557 _GL_WARN_ON_USE (logl
, "logl is unportable - "
1558 "use gnulib module logl for portability");
1564 # if @REPLACE_LOG10F@
1565 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1567 # define log10f rpl_log10f
1569 _GL_FUNCDECL_RPL (log10f
, float, (float x
));
1570 _GL_CXXALIAS_RPL (log10f
, float, (float x
));
1574 _GL_FUNCDECL_SYS (log10f
, float, (float x
));
1576 _GL_CXXALIAS_SYS (log10f
, float, (float x
));
1578 _GL_CXXALIASWARN (log10f
);
1579 #elif defined GNULIB_POSIXCHECK
1581 # if HAVE_RAW_DECL_LOG10F
1582 _GL_WARN_ON_USE (log10f
, "log10f is unportable - "
1583 "use gnulib module log10f for portability");
1588 # if @REPLACE_LOG10@
1589 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1591 # define log10 rpl_log10
1593 _GL_FUNCDECL_RPL (log10
, double, (double x
));
1594 _GL_CXXALIAS_RPL (log10
, double, (double x
));
1596 _GL_CXXALIAS_SYS (log10
, double, (double x
));
1599 _GL_CXXALIASWARN1 (log10
, double, (double x
));
1601 #elif defined GNULIB_POSIXCHECK
1603 # if HAVE_RAW_DECL_LOG10
1604 _GL_WARN_ON_USE (log10
, "log10 has portability problems - "
1605 "use gnulib module log10 for portability");
1610 # if @REPLACE_LOG10L@
1611 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1613 # define log10l rpl_log10l
1615 _GL_FUNCDECL_RPL (log10l
, long double, (long double x
));
1616 _GL_CXXALIAS_RPL (log10l
, long double, (long double x
));
1618 # if !@HAVE_LOG10L@ || !@HAVE_DECL_LOG10L@
1620 _GL_FUNCDECL_SYS (log10l
, long double, (long double x
));
1622 _GL_CXXALIAS_SYS (log10l
, long double, (long double x
));
1625 _GL_CXXALIASWARN (log10l
);
1627 #elif defined GNULIB_POSIXCHECK
1629 # if HAVE_RAW_DECL_LOG10L
1630 _GL_WARN_ON_USE (log10l
, "log10l is unportable - "
1631 "use gnulib module log10l for portability");
1637 # if @REPLACE_LOG1PF@
1638 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1640 # define log1pf rpl_log1pf
1642 _GL_FUNCDECL_RPL (log1pf
, float, (float x
));
1643 _GL_CXXALIAS_RPL (log1pf
, float, (float x
));
1646 _GL_FUNCDECL_SYS (log1pf
, float, (float x
));
1648 _GL_CXXALIAS_SYS (log1pf
, float, (float x
));
1650 _GL_CXXALIASWARN (log1pf
);
1651 #elif defined GNULIB_POSIXCHECK
1653 # if HAVE_RAW_DECL_LOG1PF
1654 _GL_WARN_ON_USE (log1pf
, "log1pf is unportable - "
1655 "use gnulib module log1pf for portability");
1660 # if @REPLACE_LOG1P@
1661 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1663 # define log1p rpl_log1p
1665 _GL_FUNCDECL_RPL (log1p
, double, (double x
));
1666 _GL_CXXALIAS_RPL (log1p
, double, (double x
));
1669 _GL_FUNCDECL_SYS (log1p
, double, (double x
));
1671 _GL_CXXALIAS_SYS (log1p
, double, (double x
));
1674 _GL_CXXALIASWARN1 (log1p
, double, (double x
));
1676 #elif defined GNULIB_POSIXCHECK
1678 # if HAVE_RAW_DECL_LOG1P
1679 _GL_WARN_ON_USE (log1p
, "log1p has portability problems - "
1680 "use gnulib module log1p for portability");
1685 # if @REPLACE_LOG1PL@
1686 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1688 # define log1pl rpl_log1pl
1690 _GL_FUNCDECL_RPL (log1pl
, long double, (long double x
));
1691 _GL_CXXALIAS_RPL (log1pl
, long double, (long double x
));
1694 _GL_FUNCDECL_SYS (log1pl
, long double, (long double x
));
1696 _GL_CXXALIAS_SYS (log1pl
, long double, (long double x
));
1699 _GL_CXXALIASWARN (log1pl
);
1701 #elif defined GNULIB_POSIXCHECK
1703 # if HAVE_RAW_DECL_LOG1PL
1704 _GL_WARN_ON_USE (log1pl
, "log1pl has portability problems - "
1705 "use gnulib module log1pl for portability");
1711 # if @REPLACE_LOG2F@
1712 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1714 # define log2f rpl_log2f
1716 _GL_FUNCDECL_RPL (log2f
, float, (float x
));
1717 _GL_CXXALIAS_RPL (log2f
, float, (float x
));
1719 # if !@HAVE_DECL_LOG2F@
1721 _GL_FUNCDECL_SYS (log2f
, float, (float x
));
1723 _GL_CXXALIAS_SYS (log2f
, float, (float x
));
1726 _GL_CXXALIASWARN (log2f
);
1728 #elif defined GNULIB_POSIXCHECK
1730 # if HAVE_RAW_DECL_LOG2F
1731 _GL_WARN_ON_USE (log2f
, "log2f is unportable - "
1732 "use gnulib module log2f for portability");
1738 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1740 # define log2 rpl_log2
1742 _GL_FUNCDECL_RPL (log2
, double, (double x
));
1743 _GL_CXXALIAS_RPL (log2
, double, (double x
));
1745 # if !@HAVE_DECL_LOG2@
1747 _GL_FUNCDECL_SYS (log2
, double, (double x
));
1749 _GL_CXXALIAS_SYS (log2
, double, (double x
));
1752 _GL_CXXALIASWARN1 (log2
, double, (double x
));
1754 #elif defined GNULIB_POSIXCHECK
1756 # if HAVE_RAW_DECL_LOG2
1757 _GL_WARN_ON_USE (log2
, "log2 is unportable - "
1758 "use gnulib module log2 for portability");
1763 # if @REPLACE_LOG2L@
1764 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1766 # define log2l rpl_log2l
1768 _GL_FUNCDECL_RPL (log2l
, long double, (long double x
));
1769 _GL_CXXALIAS_RPL (log2l
, long double, (long double x
));
1771 # if !@HAVE_DECL_LOG2L@
1772 _GL_FUNCDECL_SYS (log2l
, long double, (long double x
));
1774 _GL_CXXALIAS_SYS (log2l
, long double, (long double x
));
1777 _GL_CXXALIASWARN (log2l
);
1779 #elif defined GNULIB_POSIXCHECK
1781 # if HAVE_RAW_DECL_LOG2L
1782 _GL_WARN_ON_USE (log2l
, "log2l is unportable - "
1783 "use gnulib module log2l for portability");
1789 # if @REPLACE_LOGBF@
1790 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1792 # define logbf rpl_logbf
1794 _GL_FUNCDECL_RPL (logbf
, float, (float x
));
1795 _GL_CXXALIAS_RPL (logbf
, float, (float x
));
1798 _GL_FUNCDECL_SYS (logbf
, float, (float x
));
1800 _GL_CXXALIAS_SYS (logbf
, float, (float x
));
1802 _GL_CXXALIASWARN (logbf
);
1803 #elif defined GNULIB_POSIXCHECK
1805 # if HAVE_RAW_DECL_LOGBF
1806 _GL_WARN_ON_USE (logbf
, "logbf is unportable - "
1807 "use gnulib module logbf for portability");
1813 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1815 # define logb rpl_logb
1817 _GL_FUNCDECL_RPL (logb
, double, (double x
));
1818 _GL_CXXALIAS_RPL (logb
, double, (double x
));
1820 # if !@HAVE_DECL_LOGB@
1821 _GL_FUNCDECL_SYS (logb
, double, (double x
));
1823 _GL_CXXALIAS_SYS (logb
, double, (double x
));
1826 _GL_CXXALIASWARN1 (logb
, double, (double x
));
1828 #elif defined GNULIB_POSIXCHECK
1830 # if HAVE_RAW_DECL_LOGB
1831 _GL_WARN_ON_USE (logb
, "logb is unportable - "
1832 "use gnulib module logb for portability");
1837 # if @REPLACE_LOGBL@
1838 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1840 # define logbl rpl_logbl
1842 _GL_FUNCDECL_RPL (logbl
, long double, (long double x
));
1843 _GL_CXXALIAS_RPL (logbl
, long double, (long double x
));
1846 _GL_FUNCDECL_SYS (logbl
, long double, (long double x
));
1848 _GL_CXXALIAS_SYS (logbl
, long double, (long double x
));
1851 _GL_CXXALIASWARN (logbl
);
1853 #elif defined GNULIB_POSIXCHECK
1855 # if HAVE_RAW_DECL_LOGBL
1856 _GL_WARN_ON_USE (logbl
, "logbl is unportable - "
1857 "use gnulib module logbl for portability");
1863 # if @REPLACE_MODFF@
1864 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1866 # define modff rpl_modff
1868 _GL_FUNCDECL_RPL (modff
, float, (float x
, float *iptr
) _GL_ARG_NONNULL ((2)));
1869 _GL_CXXALIAS_RPL (modff
, float, (float x
, float *iptr
));
1873 _GL_FUNCDECL_SYS (modff
, float, (float x
, float *iptr
) _GL_ARG_NONNULL ((2)));
1875 _GL_CXXALIAS_SYS (modff
, float, (float x
, float *iptr
));
1877 _GL_CXXALIASWARN (modff
);
1878 #elif defined GNULIB_POSIXCHECK
1880 # if HAVE_RAW_DECL_MODFF
1881 _GL_WARN_ON_USE (modff
, "modff is unportable - "
1882 "use gnulib module modff for portability");
1888 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1890 # define modf rpl_modf
1892 _GL_FUNCDECL_RPL (modf
, double, (double x
, double *iptr
) _GL_ARG_NONNULL ((2)));
1893 _GL_CXXALIAS_RPL (modf
, double, (double x
, double *iptr
));
1895 _GL_CXXALIAS_SYS (modf
, double, (double x
, double *iptr
));
1898 _GL_CXXALIASWARN1 (modf
, double, (double x
, double *iptr
));
1900 #elif defined GNULIB_POSIXCHECK
1902 # if HAVE_RAW_DECL_MODF
1903 _GL_WARN_ON_USE (modf
, "modf has portability problems - "
1904 "use gnulib module modf for portability");
1909 # if @REPLACE_MODFL@
1910 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1912 # define modfl rpl_modfl
1914 _GL_FUNCDECL_RPL (modfl
, long double, (long double x
, long double *iptr
)
1915 _GL_ARG_NONNULL ((2)));
1916 _GL_CXXALIAS_RPL (modfl
, long double, (long double x
, long double *iptr
));
1920 _GL_FUNCDECL_SYS (modfl
, long double, (long double x
, long double *iptr
)
1921 _GL_ARG_NONNULL ((2)));
1923 _GL_CXXALIAS_SYS (modfl
, long double, (long double x
, long double *iptr
));
1926 _GL_CXXALIASWARN (modfl
);
1928 #elif defined GNULIB_POSIXCHECK
1930 # if HAVE_RAW_DECL_MODFL
1931 _GL_WARN_ON_USE (modfl
, "modfl is unportable - "
1932 "use gnulib module modfl for portability");
1940 _GL_FUNCDECL_SYS (powf
, float, (float x
, float y
));
1942 _GL_CXXALIAS_SYS (powf
, float, (float x
, float y
));
1943 _GL_CXXALIASWARN (powf
);
1944 #elif defined GNULIB_POSIXCHECK
1946 # if HAVE_RAW_DECL_POWF
1947 _GL_WARN_ON_USE (powf
, "powf is unportable - "
1948 "use gnulib module powf for portability");
1953 #if @GNULIB_REMAINDERF@
1954 # if @REPLACE_REMAINDERF@
1955 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1957 # define remainderf rpl_remainderf
1959 _GL_FUNCDECL_RPL (remainderf
, float, (float x
, float y
));
1960 _GL_CXXALIAS_RPL (remainderf
, float, (float x
, float y
));
1962 # if !@HAVE_REMAINDERF@
1963 _GL_FUNCDECL_SYS (remainderf
, float, (float x
, float y
));
1965 _GL_CXXALIAS_SYS (remainderf
, float, (float x
, float y
));
1967 _GL_CXXALIASWARN (remainderf
);
1968 #elif defined GNULIB_POSIXCHECK
1970 # if HAVE_RAW_DECL_REMAINDERF
1971 _GL_WARN_ON_USE (remainderf
, "remainderf is unportable - "
1972 "use gnulib module remainderf for portability");
1976 #if @GNULIB_REMAINDER@
1977 # if @REPLACE_REMAINDER@
1978 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1980 # define remainder rpl_remainder
1982 _GL_FUNCDECL_RPL (remainder
, double, (double x
, double y
));
1983 _GL_CXXALIAS_RPL (remainder
, double, (double x
, double y
));
1985 # if !@HAVE_REMAINDER@ || !@HAVE_DECL_REMAINDER@
1986 _GL_FUNCDECL_SYS (remainder
, double, (double x
, double y
));
1988 _GL_CXXALIAS_SYS (remainder
, double, (double x
, double y
));
1991 _GL_CXXALIASWARN1 (remainder
, double, (double x
, double y
));
1993 #elif defined GNULIB_POSIXCHECK
1995 # if HAVE_RAW_DECL_REMAINDER
1996 _GL_WARN_ON_USE (remainder
, "remainder is unportable - "
1997 "use gnulib module remainder for portability");
2001 #if @GNULIB_REMAINDERL@
2002 # if @REPLACE_REMAINDERL@
2003 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2005 # define remainderl rpl_remainderl
2007 _GL_FUNCDECL_RPL (remainderl
, long double, (long double x
, long double y
));
2008 _GL_CXXALIAS_RPL (remainderl
, long double, (long double x
, long double y
));
2010 # if !@HAVE_DECL_REMAINDERL@
2012 # if !(defined __cplusplus && defined _AIX)
2013 _GL_FUNCDECL_SYS (remainderl
, long double, (long double x
, long double y
));
2016 _GL_CXXALIAS_SYS (remainderl
, long double, (long double x
, long double y
));
2019 _GL_CXXALIASWARN (remainderl
);
2021 #elif defined GNULIB_POSIXCHECK
2023 # if HAVE_RAW_DECL_REMAINDERL
2024 _GL_WARN_ON_USE (remainderl
, "remainderl is unportable - "
2025 "use gnulib module remainderl for portability");
2031 # if !@HAVE_DECL_RINTF@
2032 _GL_FUNCDECL_SYS (rintf
, float, (float x
));
2034 _GL_CXXALIAS_SYS (rintf
, float, (float x
));
2035 _GL_CXXALIASWARN (rintf
);
2036 #elif defined GNULIB_POSIXCHECK
2038 # if HAVE_RAW_DECL_RINTF
2039 _GL_WARN_ON_USE (rintf
, "rintf is unportable - "
2040 "use gnulib module rintf for portability");
2046 _GL_FUNCDECL_SYS (rint
, double, (double x
));
2048 _GL_CXXALIAS_SYS (rint
, double, (double x
));
2050 _GL_CXXALIASWARN1 (rint
, double, (double x
));
2052 #elif defined GNULIB_POSIXCHECK
2054 # if HAVE_RAW_DECL_RINT
2055 _GL_WARN_ON_USE (rint
, "rint is unportable - "
2056 "use gnulib module rint for portability");
2061 # if @REPLACE_RINTL@
2062 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2064 # define rintl rpl_rintl
2066 _GL_FUNCDECL_RPL (rintl
, long double, (long double x
));
2067 _GL_CXXALIAS_RPL (rintl
, long double, (long double x
));
2070 _GL_FUNCDECL_SYS (rintl
, long double, (long double x
));
2072 _GL_CXXALIAS_SYS (rintl
, long double, (long double x
));
2075 _GL_CXXALIASWARN (rintl
);
2077 #elif defined GNULIB_POSIXCHECK
2079 # if HAVE_RAW_DECL_RINTL
2080 _GL_WARN_ON_USE (rintl
, "rintl is unportable - "
2081 "use gnulib module rintl for portability");
2087 # if @REPLACE_ROUNDF@
2088 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2090 # define roundf rpl_roundf
2092 _GL_FUNCDECL_RPL (roundf
, float, (float x
));
2093 _GL_CXXALIAS_RPL (roundf
, float, (float x
));
2095 # if !@HAVE_DECL_ROUNDF@
2096 _GL_FUNCDECL_SYS (roundf
, float, (float x
));
2098 _GL_CXXALIAS_SYS (roundf
, float, (float x
));
2100 _GL_CXXALIASWARN (roundf
);
2101 #elif defined GNULIB_POSIXCHECK
2103 # if HAVE_RAW_DECL_ROUNDF
2104 _GL_WARN_ON_USE (roundf
, "roundf is unportable - "
2105 "use gnulib module roundf for portability");
2110 # if @REPLACE_ROUND@
2111 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2113 # define round rpl_round
2115 _GL_FUNCDECL_RPL (round
, double, (double x
));
2116 _GL_CXXALIAS_RPL (round
, double, (double x
));
2118 # if !@HAVE_DECL_ROUND@
2119 _GL_FUNCDECL_SYS (round
, double, (double x
));
2121 _GL_CXXALIAS_SYS (round
, double, (double x
));
2124 _GL_CXXALIASWARN1 (round
, double, (double x
));
2126 #elif defined GNULIB_POSIXCHECK
2128 # if HAVE_RAW_DECL_ROUND
2129 _GL_WARN_ON_USE (round
, "round is unportable - "
2130 "use gnulib module round for portability");
2135 # if @REPLACE_ROUNDL@
2136 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2138 # define roundl rpl_roundl
2140 _GL_FUNCDECL_RPL (roundl
, long double, (long double x
));
2141 _GL_CXXALIAS_RPL (roundl
, long double, (long double x
));
2143 # if !@HAVE_DECL_ROUNDL@
2145 # if !(defined __cplusplus && defined _AIX)
2146 _GL_FUNCDECL_SYS (roundl
, long double, (long double x
));
2149 _GL_CXXALIAS_SYS (roundl
, long double, (long double x
));
2152 _GL_CXXALIASWARN (roundl
);
2154 #elif defined GNULIB_POSIXCHECK
2156 # if HAVE_RAW_DECL_ROUNDL
2157 _GL_WARN_ON_USE (roundl
, "roundl is unportable - "
2158 "use gnulib module roundl for portability");
2165 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2167 # define sinf rpl_sinf
2169 _GL_FUNCDECL_RPL (sinf
, float, (float x
));
2170 _GL_CXXALIAS_RPL (sinf
, float, (float x
));
2174 _GL_FUNCDECL_SYS (sinf
, float, (float x
));
2176 _GL_CXXALIAS_SYS (sinf
, float, (float x
));
2178 _GL_CXXALIASWARN (sinf
);
2179 #elif defined GNULIB_POSIXCHECK
2181 # if HAVE_RAW_DECL_SINF
2182 _GL_WARN_ON_USE (sinf
, "sinf is unportable - "
2183 "use gnulib module sinf for portability");
2188 # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
2190 _GL_FUNCDECL_SYS (sinl
, long double, (long double x
));
2192 _GL_CXXALIAS_SYS (sinl
, long double, (long double x
));
2194 _GL_CXXALIASWARN (sinl
);
2196 #elif defined GNULIB_POSIXCHECK
2198 # if HAVE_RAW_DECL_SINL
2199 _GL_WARN_ON_USE (sinl
, "sinl is unportable - "
2200 "use gnulib module sinl for portability");
2206 # if @REPLACE_SINHF@
2207 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2209 # define sinhf rpl_sinhf
2211 _GL_FUNCDECL_RPL (sinhf
, float, (float x
));
2212 _GL_CXXALIAS_RPL (sinhf
, float, (float x
));
2216 _GL_FUNCDECL_SYS (sinhf
, float, (float x
));
2218 _GL_CXXALIAS_SYS (sinhf
, float, (float x
));
2220 _GL_CXXALIASWARN (sinhf
);
2221 #elif defined GNULIB_POSIXCHECK
2223 # if HAVE_RAW_DECL_SINHF
2224 _GL_WARN_ON_USE (sinhf
, "sinhf is unportable - "
2225 "use gnulib module sinhf for portability");
2231 # if @REPLACE_SQRTF@
2232 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2234 # define sqrtf rpl_sqrtf
2236 _GL_FUNCDECL_RPL (sqrtf
, float, (float x
));
2237 _GL_CXXALIAS_RPL (sqrtf
, float, (float x
));
2241 _GL_FUNCDECL_SYS (sqrtf
, float, (float x
));
2243 _GL_CXXALIAS_SYS (sqrtf
, float, (float x
));
2245 _GL_CXXALIASWARN (sqrtf
);
2246 #elif defined GNULIB_POSIXCHECK
2248 # if HAVE_RAW_DECL_SQRTF
2249 _GL_WARN_ON_USE (sqrtf
, "sqrtf is unportable - "
2250 "use gnulib module sqrtf for portability");
2255 # if @REPLACE_SQRTL@
2256 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2258 # define sqrtl rpl_sqrtl
2260 _GL_FUNCDECL_RPL (sqrtl
, long double, (long double x
));
2261 _GL_CXXALIAS_RPL (sqrtl
, long double, (long double x
));
2263 # if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
2265 _GL_FUNCDECL_SYS (sqrtl
, long double, (long double x
));
2267 _GL_CXXALIAS_SYS (sqrtl
, long double, (long double x
));
2270 _GL_CXXALIASWARN (sqrtl
);
2272 #elif defined GNULIB_POSIXCHECK
2274 # if HAVE_RAW_DECL_SQRTL
2275 _GL_WARN_ON_USE (sqrtl
, "sqrtl is unportable - "
2276 "use gnulib module sqrtl for portability");
2283 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2285 # define tanf rpl_tanf
2287 _GL_FUNCDECL_RPL (tanf
, float, (float x
));
2288 _GL_CXXALIAS_RPL (tanf
, float, (float x
));
2292 _GL_FUNCDECL_SYS (tanf
, float, (float x
));
2294 _GL_CXXALIAS_SYS (tanf
, float, (float x
));
2296 _GL_CXXALIASWARN (tanf
);
2297 #elif defined GNULIB_POSIXCHECK
2299 # if HAVE_RAW_DECL_TANF
2300 _GL_WARN_ON_USE (tanf
, "tanf is unportable - "
2301 "use gnulib module tanf for portability");
2306 # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@
2308 _GL_FUNCDECL_SYS (tanl
, long double, (long double x
));
2310 _GL_CXXALIAS_SYS (tanl
, long double, (long double x
));
2312 _GL_CXXALIASWARN (tanl
);
2314 #elif defined GNULIB_POSIXCHECK
2316 # if HAVE_RAW_DECL_TANL
2317 _GL_WARN_ON_USE (tanl
, "tanl is unportable - "
2318 "use gnulib module tanl for portability");
2324 # if @REPLACE_TANHF@
2325 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2327 # define tanhf rpl_tanhf
2329 _GL_FUNCDECL_RPL (tanhf
, float, (float x
));
2330 _GL_CXXALIAS_RPL (tanhf
, float, (float x
));
2334 _GL_FUNCDECL_SYS (tanhf
, float, (float x
));
2336 _GL_CXXALIAS_SYS (tanhf
, float, (float x
));
2338 _GL_CXXALIASWARN (tanhf
);
2339 #elif defined GNULIB_POSIXCHECK
2341 # if HAVE_RAW_DECL_TANHF
2342 _GL_WARN_ON_USE (tanhf
, "tanhf is unportable - "
2343 "use gnulib module tanhf for portability");
2349 # if @REPLACE_TRUNCF@
2350 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2352 # define truncf rpl_truncf
2354 _GL_FUNCDECL_RPL (truncf
, float, (float x
));
2355 _GL_CXXALIAS_RPL (truncf
, float, (float x
));
2357 # if !@HAVE_DECL_TRUNCF@
2358 _GL_FUNCDECL_SYS (truncf
, float, (float x
));
2360 _GL_CXXALIAS_SYS (truncf
, float, (float x
));
2362 _GL_CXXALIASWARN (truncf
);
2363 #elif defined GNULIB_POSIXCHECK
2365 # if HAVE_RAW_DECL_TRUNCF
2366 _GL_WARN_ON_USE (truncf
, "truncf is unportable - "
2367 "use gnulib module truncf for portability");
2372 # if @REPLACE_TRUNC@
2373 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2375 # define trunc rpl_trunc
2377 _GL_FUNCDECL_RPL (trunc
, double, (double x
));
2378 _GL_CXXALIAS_RPL (trunc
, double, (double x
));
2380 # if !@HAVE_DECL_TRUNC@
2381 _GL_FUNCDECL_SYS (trunc
, double, (double x
));
2383 _GL_CXXALIAS_SYS (trunc
, double, (double x
));
2386 _GL_CXXALIASWARN1 (trunc
, double, (double x
));
2388 #elif defined GNULIB_POSIXCHECK
2390 # if HAVE_RAW_DECL_TRUNC
2391 _GL_WARN_ON_USE (trunc
, "trunc is unportable - "
2392 "use gnulib module trunc for portability");
2397 # if @REPLACE_TRUNCL@
2398 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2400 # define truncl rpl_truncl
2402 _GL_FUNCDECL_RPL (truncl
, long double, (long double x
));
2403 _GL_CXXALIAS_RPL (truncl
, long double, (long double x
));
2405 # if !@HAVE_DECL_TRUNCL@
2406 _GL_FUNCDECL_SYS (truncl
, long double, (long double x
));
2408 _GL_CXXALIAS_SYS (truncl
, long double, (long double x
));
2411 _GL_CXXALIASWARN (truncl
);
2413 #elif defined GNULIB_POSIXCHECK
2415 # if HAVE_RAW_DECL_TRUNCL
2416 _GL_WARN_ON_USE (truncl
, "truncl is unportable - "
2417 "use gnulib module truncl for portability");
2423 /* On native Windows, map 'y0' to '_y0', so that -loldnames is not
2424 required. In C++ with GNULIB_NAMESPACE, avoid differences between
2425 platforms by defining GNULIB_NAMESPACE::y0 always. */
2426 # if defined _WIN32 && !defined __CYGWIN__
2427 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2431 _GL_CXXALIAS_MDA (y0
, double, (double x
));
2433 _GL_CXXALIAS_SYS (y0
, double, (double x
));
2435 _GL_CXXALIASWARN (y0
);
2439 /* On native Windows, map 'y1' to '_y1', so that -loldnames is not
2440 required. In C++ with GNULIB_NAMESPACE, avoid differences between
2441 platforms by defining GNULIB_NAMESPACE::y1 always. */
2442 # if defined _WIN32 && !defined __CYGWIN__
2443 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2447 _GL_CXXALIAS_MDA (y1
, double, (double x
));
2449 _GL_CXXALIAS_SYS (y1
, double, (double x
));
2451 _GL_CXXALIASWARN (y1
);
2455 /* On native Windows, map 'yn' to '_yn', so that -loldnames is not
2456 required. In C++ with GNULIB_NAMESPACE, avoid differences between
2457 platforms by defining GNULIB_NAMESPACE::yn always. */
2458 # if defined _WIN32 && !defined __CYGWIN__
2459 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2463 _GL_CXXALIAS_MDA (yn
, double, (int n
, double x
));
2465 _GL_CXXALIAS_SYS (yn
, double, (int n
, double x
));
2467 _GL_CXXALIASWARN (yn
);
2471 /* Definitions of function-like macros come here, after the function
2475 #if @GNULIB_ISFINITE@
2476 # if @REPLACE_ISFINITE@
2477 _GL_EXTERN_C
int gl_isfinitef (float x
);
2478 _GL_EXTERN_C
int gl_isfinited (double x
);
2479 _GL_EXTERN_C
int gl_isfinitel (long double x
);
2481 # define isfinite(x) \
2482 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
2483 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
2487 # if defined isfinite || defined GNULIB_NAMESPACE
2488 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite
)
2490 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
2491 /* This platform's <cmath> possibly defines isfinite through a set of inline
2493 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite
, rpl_isfinite
, bool)
2494 # define isfinite rpl_isfinite
2495 # define GNULIB_NAMESPACE_LACKS_ISFINITE 1
2497 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite
, isfinite
, bool)
2501 #elif defined GNULIB_POSIXCHECK
2502 # if defined isfinite
2503 _GL_WARN_REAL_FLOATING_DECL (isfinite
);
2505 # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
2511 # if @REPLACE_ISINF@
2512 _GL_EXTERN_C
int gl_isinff (float x
);
2513 _GL_EXTERN_C
int gl_isinfd (double x
);
2514 _GL_EXTERN_C
int gl_isinfl (long double x
);
2517 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
2518 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
2522 # if defined isinf || defined GNULIB_NAMESPACE
2523 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf
)
2525 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
2526 /* This platform's <cmath> possibly defines isinf through a set of inline
2528 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf
, rpl_isinf
, bool)
2529 # define isinf rpl_isinf
2530 # define GNULIB_NAMESPACE_LACKS_ISINF 1
2532 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf
, isinf
, bool)
2536 #elif defined GNULIB_POSIXCHECK
2538 _GL_WARN_REAL_FLOATING_DECL (isinf
);
2540 # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
2546 /* Test for NaN for 'float' numbers. */
2548 # if defined __sun || defined __sgi
2549 /* Solaris and IRIX have isnanf() and declare it in <ieeefp.h>. We cannot
2550 define isnanf as a macro, because that would conflict with <ieeefp.h>. */
2551 _GL_EXTERN_C
int isnanf (float x
);
2553 /* The original <math.h> included above provides a declaration of isnan macro
2554 or (older) isnanf function. */
2555 # if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2556 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
2557 GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't. */
2559 # define isnanf(x) __builtin_isnan ((float)(x))
2560 # elif defined isnan
2562 # define isnanf(x) isnan ((float)(x))
2566 /* Test whether X is a NaN. */
2568 # define isnanf rpl_isnanf
2569 _GL_EXTERN_C
int isnanf (float x
);
2574 /* Test for NaN for 'double' numbers.
2575 This function is a gnulib extension, unlike isnan() which applied only
2576 to 'double' numbers earlier but now is a type-generic macro. */
2578 # if defined __sun || defined __sgi
2579 /* Solaris and IRIX have isnand() and declare it in <ieeefp.h>. We cannot
2580 define isnand as a macro, because that would conflict with <ieeefp.h>. */
2581 _GL_EXTERN_C
int isnand (double x
);
2583 /* The original <math.h> included above provides a declaration of isnan
2585 # if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2586 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. */
2588 # define isnand(x) __builtin_isnan ((double)(x))
2591 # define isnand(x) isnan ((double)(x))
2595 /* Test whether X is a NaN. */
2597 # define isnand rpl_isnand
2598 _GL_EXTERN_C
int isnand (double x
);
2603 /* Test for NaN for 'long double' numbers. */
2605 /* The original <math.h> included above provides a declaration of isnan
2606 macro or (older) isnanl function. */
2607 # if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2608 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
2609 GCC >= 4.0 also provides __builtin_isnanl, but clang doesn't. */
2611 # define isnanl(x) __builtin_isnan ((long double)(x))
2612 # elif defined isnan
2614 # define isnanl(x) isnan ((long double)(x))
2617 /* Test whether X is a NaN. */
2619 # define isnanl rpl_isnanl
2620 _GL_EXTERN_C
int isnanl (long double x
) _GL_ATTRIBUTE_CONST
;
2624 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */
2626 # if @REPLACE_ISNAN@
2627 /* We can't just use the isnanf macro (e.g.) as exposed by
2628 isnanf.h (e.g.) here, because those may end up being macros
2629 that recursively expand back to isnan. So use the gnulib
2630 replacements for them directly. */
2631 # if @HAVE_ISNANF@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2632 # define gl_isnan_f(x) __builtin_isnan ((float)(x))
2634 _GL_EXTERN_C
int rpl_isnanf (float x
);
2635 # define gl_isnan_f(x) rpl_isnanf (x)
2637 # if @HAVE_ISNAND@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2638 # define gl_isnan_d(x) __builtin_isnan ((double)(x))
2640 _GL_EXTERN_C
int rpl_isnand (double x
);
2641 # define gl_isnan_d(x) rpl_isnand (x)
2643 # if @HAVE_ISNANL@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2644 # define gl_isnan_l(x) __builtin_isnan ((long double)(x))
2646 _GL_EXTERN_C
int rpl_isnanl (long double x
) _GL_ATTRIBUTE_CONST
;
2647 # define gl_isnan_l(x) rpl_isnanl (x)
2651 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
2652 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
2654 # elif (__GNUC__ >= 4) || (__clang_major__ >= 4)
2657 (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \
2658 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
2659 __builtin_isnan ((float)(x)))
2662 # if defined isnan || defined GNULIB_NAMESPACE
2663 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan
)
2665 # 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__)))
2666 /* This platform's <cmath> possibly defines isnan through a set of inline
2668 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan
, rpl_isnan
, bool)
2669 # define isnan rpl_isnan
2670 # define GNULIB_NAMESPACE_LACKS_ISNAN 1
2671 # elif __clang_major__ >= 14
2672 /* Neither of the two possible _GL_MATH_CXX_REAL_FLOATING_DECL_2 invocations
2673 works. Inline functions are already present in /usr/include/c++/v1/math.h,
2674 which comes from LLVM. */
2675 # define GNULIB_NAMESPACE_LACKS_ISNAN 1
2677 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan
, isnan
, bool)
2681 /* Ensure isnan is a macro. */
2683 # define isnan isnan
2686 #elif defined GNULIB_POSIXCHECK
2688 _GL_WARN_REAL_FLOATING_DECL (isnan
);
2690 # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
2695 #if @GNULIB_SIGNBIT@
2696 # if (@REPLACE_SIGNBIT_USING_BUILTINS@ \
2697 && (!defined __cplusplus || __cplusplus < 201103))
2699 /* GCC >= 4.0 and clang provide three built-ins for signbit. */
2700 # define signbit(x) \
2701 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
2702 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
2703 __builtin_signbitf (x))
2705 # if @REPLACE_SIGNBIT@ && !GNULIB_defined_signbit
2707 _GL_EXTERN_C
int gl_signbitf (float arg
);
2708 _GL_EXTERN_C
int gl_signbitd (double arg
);
2709 _GL_EXTERN_C
int gl_signbitl (long double arg
);
2710 # if __GNUC__ >= 2 || defined __clang__
2711 # define _GL_NUM_UINT_WORDS(type) \
2712 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
2713 # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
2714 # define gl_signbitf_OPTIMIZED_MACRO
2715 # define gl_signbitf(arg) \
2717 ({ union { float _value; \
2718 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \
2720 _m._value = (arg); \
2721 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \
2724 # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
2725 # define gl_signbitd_OPTIMIZED_MACRO
2726 # define gl_signbitd(arg) \
2728 ({ union { double _value; \
2729 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \
2731 _m._value = (arg); \
2732 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \
2735 # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
2736 # define gl_signbitl_OPTIMIZED_MACRO
2737 # define gl_signbitl(arg) \
2739 ({ union { long double _value; \
2740 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
2742 _m._value = (arg); \
2743 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \
2747 # define signbit(x) \
2748 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
2749 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
2751 # define GNULIB_defined_signbit 1
2754 # if defined signbit || defined GNULIB_NAMESPACE
2755 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit
)
2757 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
2758 /* This platform's <cmath> possibly defines signbit through a set of inline
2760 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit
, rpl_signbit
, bool)
2761 # define signbit rpl_signbit
2762 # define GNULIB_NAMESPACE_LACKS_SIGNBIT 1
2764 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit
, signbit
, bool)
2768 #elif defined GNULIB_POSIXCHECK
2769 # if defined signbit
2770 _GL_WARN_REAL_FLOATING_DECL (signbit
);
2772 # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
2777 #if @GNULIB_GETPAYLOADF@
2778 # if @REPLACE_GETPAYLOADF@
2779 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2781 # define getpayloadf rpl_getpayloadf
2783 _GL_FUNCDECL_RPL (getpayloadf
, float, (const float *));
2784 _GL_CXXALIAS_RPL (getpayloadf
, float, (const float *));
2786 # if !@HAVE_GETPAYLOADF@
2787 _GL_FUNCDECL_SYS (getpayloadf
, float, (const float *));
2789 _GL_CXXALIAS_SYS (getpayloadf
, float, (const float *));
2791 _GL_CXXALIASWARN (getpayloadf
);
2792 #elif defined GNULIB_POSIXCHECK
2794 # if HAVE_RAW_DECL_GETPAYLOADF
2795 _GL_WARN_ON_USE (getpayloadf
, "getpayloadf is unportable - "
2796 "use gnulib module getpayloadf for portability");
2800 #if @GNULIB_GETPAYLOAD@
2801 # if @REPLACE_GETPAYLOAD@
2802 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2804 # define getpayload rpl_getpayload
2806 _GL_FUNCDECL_RPL (getpayload
, double, (const double *));
2807 _GL_CXXALIAS_RPL (getpayload
, double, (const double *));
2809 # if !@HAVE_GETPAYLOAD@
2810 _GL_FUNCDECL_SYS (getpayload
, double, (const double *));
2812 _GL_CXXALIAS_SYS (getpayload
, double, (const double *));
2814 _GL_CXXALIASWARN (getpayload
);
2815 #elif defined GNULIB_POSIXCHECK
2817 # if HAVE_RAW_DECL_GETPAYLOAD
2818 _GL_WARN_ON_USE (getpayload
, "getpayload is unportable - "
2819 "use gnulib module getpayload for portability");
2823 #if @GNULIB_GETPAYLOADL@
2824 # if @REPLACE_GETPAYLOADL@
2825 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2827 # define getpayloadl rpl_getpayloadl
2829 _GL_FUNCDECL_RPL (getpayloadl
, long double, (const long double *));
2830 _GL_CXXALIAS_RPL (getpayloadl
, long double, (const long double *));
2832 # if !@HAVE_GETPAYLOADL@
2833 _GL_FUNCDECL_SYS (getpayloadl
, long double, (const long double *));
2835 _GL_CXXALIAS_SYS (getpayloadl
, long double, (const long double *));
2837 _GL_CXXALIASWARN (getpayloadl
);
2838 #elif defined GNULIB_POSIXCHECK
2840 # if HAVE_RAW_DECL_GETPAYLOADL
2841 _GL_WARN_ON_USE (getpayloadl
, "getpayloadl is unportable - "
2842 "use gnulib module getpayloadl for portability");
2847 #if @GNULIB_SETPAYLOADF@
2848 # if !@HAVE_SETPAYLOADF@
2849 _GL_FUNCDECL_SYS (setpayloadf
, int, (float *, float));
2851 _GL_CXXALIAS_SYS (setpayloadf
, int, (float *, float));
2852 _GL_CXXALIASWARN (setpayloadf
);
2853 #elif defined GNULIB_POSIXCHECK
2855 # if HAVE_RAW_DECL_SETPAYLOADF
2856 _GL_WARN_ON_USE (setpayloadf
, "setpayloadf is unportable - "
2857 "use gnulib module setpayloadf for portability");
2861 #if @GNULIB_SETPAYLOAD@
2862 # if !@HAVE_SETPAYLOAD@
2863 _GL_FUNCDECL_SYS (setpayload
, int, (double *, double));
2865 _GL_CXXALIAS_SYS (setpayload
, int, (double *, double));
2866 _GL_CXXALIASWARN (setpayload
);
2867 #elif defined GNULIB_POSIXCHECK
2869 # if HAVE_RAW_DECL_SETPAYLOAD
2870 _GL_WARN_ON_USE (setpayload
, "setpayload is unportable - "
2871 "use gnulib module setpayload for portability");
2875 #if @GNULIB_SETPAYLOADL@
2876 # if !@HAVE_SETPAYLOADL@
2877 _GL_FUNCDECL_SYS (setpayloadl
, int, (long double *, long double));
2879 _GL_CXXALIAS_SYS (setpayloadl
, int, (long double *, long double));
2880 _GL_CXXALIASWARN (setpayloadl
);
2881 #elif defined GNULIB_POSIXCHECK
2883 # if HAVE_RAW_DECL_SETPAYLOADL
2884 _GL_WARN_ON_USE (setpayloadl
, "setpayloadl is unportable - "
2885 "use gnulib module setpayloadl for portability");
2890 #if @GNULIB_SETPAYLOADSIGF@
2891 # if !@HAVE_SETPAYLOADSIGF@
2892 _GL_FUNCDECL_SYS (setpayloadsigf
, int, (float *, float));
2894 _GL_CXXALIAS_SYS (setpayloadsigf
, int, (float *, float));
2895 _GL_CXXALIASWARN (setpayloadsigf
);
2896 #elif defined GNULIB_POSIXCHECK
2897 # undef setpayloadsigf
2898 # if HAVE_RAW_DECL_SETPAYLOADSIGF
2899 _GL_WARN_ON_USE (setpayloadsigf
, "setpayloadsigf is unportable - "
2900 "use gnulib module setpayloadsigf for portability");
2904 #if @GNULIB_SETPAYLOADSIG@
2905 # if !@HAVE_SETPAYLOADSIG@
2906 _GL_FUNCDECL_SYS (setpayloadsig
, int, (double *, double));
2908 _GL_CXXALIAS_SYS (setpayloadsig
, int, (double *, double));
2909 _GL_CXXALIASWARN (setpayloadsig
);
2910 #elif defined GNULIB_POSIXCHECK
2911 # undef setpayloadsig
2912 # if HAVE_RAW_DECL_SETPAYLOADSIG
2913 _GL_WARN_ON_USE (setpayloadsig
, "setpayloadsig is unportable - "
2914 "use gnulib module setpayloadsig for portability");
2918 #if @GNULIB_SETPAYLOADSIGL@
2919 # if !@HAVE_SETPAYLOADSIGL@
2920 _GL_FUNCDECL_SYS (setpayloadsigl
, int, (long double *, long double));
2922 _GL_CXXALIAS_SYS (setpayloadsigl
, int, (long double *, long double));
2923 _GL_CXXALIASWARN (setpayloadsigl
);
2924 #elif defined GNULIB_POSIXCHECK
2925 # undef setpayloadsigl
2926 # if HAVE_RAW_DECL_SETPAYLOADSIGL
2927 _GL_WARN_ON_USE (setpayloadsigl
, "setpayloadsigl is unportable - "
2928 "use gnulib module setpayloadsigl for portability");
2933 #if @GNULIB_TOTALORDERF@
2934 # if @REPLACE_TOTALORDERF@
2935 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2937 # define totalorderf rpl_totalorderf
2939 _GL_FUNCDECL_RPL (totalorderf
, int, (float const *, float const *));
2940 _GL_CXXALIAS_RPL (totalorderf
, int, (float const *, float const *));
2942 # if !@HAVE_TOTALORDERF@
2943 _GL_FUNCDECL_SYS (totalorderf
, int, (float const *, float const *));
2945 _GL_CXXALIAS_SYS (totalorderf
, int, (float const *, float const *));
2947 _GL_CXXALIASWARN (totalorderf
);
2948 #elif defined GNULIB_POSIXCHECK
2950 # if HAVE_RAW_DECL_TOTALORDERF
2951 _GL_WARN_ON_USE (totalorderf
, "totalorderf is unportable - "
2952 "use gnulib module totalorderf for portability");
2956 #if @GNULIB_TOTALORDER@
2957 # if @REPLACE_TOTALORDER@
2958 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2960 # define totalorder rpl_totalorder
2962 _GL_FUNCDECL_RPL (totalorder
, int, (double const *, double const *));
2963 _GL_CXXALIAS_RPL (totalorder
, int, (double const *, double const *));
2965 # if !@HAVE_TOTALORDER@
2966 _GL_FUNCDECL_SYS (totalorder
, int, (double const *, double const *));
2968 _GL_CXXALIAS_SYS (totalorder
, int, (double const *, double const *));
2971 _GL_CXXALIASWARN1 (totalorder
, int, (double const *, double const *));
2973 #elif defined GNULIB_POSIXCHECK
2975 # if HAVE_RAW_DECL_TOTALORDER
2976 _GL_WARN_ON_USE (totalorder
, "totalorder is unportable - "
2977 "use gnulib module totalorder for portability");
2981 #if @GNULIB_TOTALORDERL@
2982 # if @REPLACE_TOTALORDERL@
2983 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2985 # define totalorderl rpl_totalorderl
2987 _GL_FUNCDECL_RPL (totalorderl
, int,
2988 (long double const *, long double const *));
2989 _GL_CXXALIAS_RPL (totalorderl
, int,
2990 (long double const *, long double const *));
2992 # if !@HAVE_TOTALORDERL@
2993 _GL_FUNCDECL_SYS (totalorderl
, int,
2994 (long double const *, long double const *));
2996 _GL_CXXALIAS_SYS (totalorderl
, int,
2997 (long double const *, long double const *));
2999 _GL_CXXALIASWARN (totalorderl
);
3000 #elif defined GNULIB_POSIXCHECK
3002 # if HAVE_RAW_DECL_TOTALORDERL
3003 _GL_WARN_ON_USE (totalorderl
, "totalorderl is unportable - "
3004 "use gnulib module totalorderl for portability");
3009 #if @GNULIB_TOTALORDERMAGF@
3010 # if @REPLACE_TOTALORDERMAGF@
3011 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
3012 # undef totalordermagf
3013 # define totalordermagf rpl_totalordermagf
3015 _GL_FUNCDECL_RPL (totalordermagf
, int, (float const *, float const *));
3016 _GL_CXXALIAS_RPL (totalordermagf
, int, (float const *, float const *));
3018 # if !@HAVE_TOTALORDERMAGF@
3019 _GL_FUNCDECL_SYS (totalordermagf
, int, (float const *, float const *));
3021 _GL_CXXALIAS_SYS (totalordermagf
, int, (float const *, float const *));
3024 _GL_CXXALIASWARN1 (totalordermagf
, int, (float const *, float const *));
3026 #elif defined GNULIB_POSIXCHECK
3027 # undef totalordermagf
3028 # if HAVE_RAW_DECL_TOTALORDERMAGF
3029 _GL_WARN_ON_USE (totalordermagf
, "totalordermagf is unportable - "
3030 "use gnulib module totalordermagf for portability");
3034 #if @GNULIB_TOTALORDERMAG@
3035 # if @REPLACE_TOTALORDERMAG@
3036 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
3037 # undef totalordermag
3038 # define totalordermag rpl_totalordermag
3040 _GL_FUNCDECL_RPL (totalordermag
, int, (double const *, double const *));
3041 _GL_CXXALIAS_RPL (totalordermag
, int, (double const *, double const *));
3043 # if !@HAVE_TOTALORDERMAG@
3044 _GL_FUNCDECL_SYS (totalordermag
, int, (double const *, double const *));
3046 _GL_CXXALIAS_SYS (totalordermag
, int, (double const *, double const *));
3049 _GL_CXXALIASWARN1 (totalordermag
, int, (double const *, double const *));
3051 #elif defined GNULIB_POSIXCHECK
3052 # undef totalordermag
3053 # if HAVE_RAW_DECL_TOTALORDERMAG
3054 _GL_WARN_ON_USE (totalordermag
, "totalordermag is unportable - "
3055 "use gnulib module totalordermag for portability");
3059 #if @GNULIB_TOTALORDERMAGL@
3060 # if @REPLACE_TOTALORDERMAGL@
3061 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
3062 # undef totalordermagl
3063 # define totalordermagl rpl_totalordermagl
3065 _GL_FUNCDECL_RPL (totalordermagl
, int,
3066 (long double const *, long double const *));
3067 _GL_CXXALIAS_RPL (totalordermagl
, int,
3068 (long double const *, long double const *));
3070 # if !@HAVE_TOTALORDERMAGL@
3071 _GL_FUNCDECL_SYS (totalordermagl
, int,
3072 (long double const *, long double const *));
3074 _GL_CXXALIAS_SYS (totalordermagl
, int,
3075 (long double const *, long double const *));
3078 _GL_CXXALIASWARN1 (totalordermagl
, int,
3079 (long double const *, long double const *));
3081 #elif defined GNULIB_POSIXCHECK
3082 # undef totalordermagl
3083 # if HAVE_RAW_DECL_TOTALORDERMAGL
3084 _GL_WARN_ON_USE (totalordermagl
, "totalordermagl is unportable - "
3085 "use gnulib module totalordermagl for portability");
3090 _GL_INLINE_HEADER_END
3092 #endif /* _@GUARD_PREFIX@_MATH_H */
3093 #endif /* _GL_INCLUDING_MATH_H */
3094 #endif /* _@GUARD_PREFIX@_MATH_H */