exp2l: Work around a NetBSD 10.0/i386 bug.
[gnulib.git] / lib / math.in.h
blob72a61d704478905ecdb75dd687fd71433c67010b
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
25 #if __GNUC__ >= 3
26 @PRAGMA_SYSTEM_HEADER@
27 #endif
28 @PRAGMA_COLUMNS@
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@
40 #else
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."
55 #endif
57 /* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>. */
58 #if defined __VMS && ! defined NAN
59 # include <fp.h>
60 #endif
62 _GL_INLINE_HEADER_BEGIN
63 #ifndef _GL_MATH_INLINE
64 # define _GL_MATH_INLINE _GL_INLINE
65 #endif
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__))
72 # else
73 # define _GL_ATTRIBUTE_CONST /* empty */
74 # endif
75 #endif
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. */
83 #ifdef __cplusplus
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) \
88 static inline int \
89 _gl_cxx_ ## func ## f (float f) \
90 { \
91 return func (f); \
92 } \
93 static inline int \
94 _gl_cxx_ ## func ## d (double d) \
95 { \
96 return func (d); \
97 } \
98 static inline int \
99 _gl_cxx_ ## func ## l (long double l) \
101 return func (l); \
103 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func,rpl_func,rettype) \
104 _GL_BEGIN_NAMESPACE \
105 inline rettype \
106 rpl_func (float f) \
108 return _gl_cxx_ ## func ## f (f); \
110 inline rettype \
111 rpl_func (double d) \
113 return _gl_cxx_ ## func ## d (d); \
115 inline rettype \
116 rpl_func (long double l) \
118 return _gl_cxx_ ## func ## l (l); \
120 _GL_END_NAMESPACE
121 #endif
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) \
133 return func (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) \
140 return func (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) \
147 return func (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))
155 #if @REPLACE_ITOLD@
156 /* Pull in a function that fixes the 'int' to 'long double' conversion
157 of glibc 2.7. */
158 _GL_EXTERN_C void _Qp_itoq (long double *, int);
159 static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
160 #endif
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
170 # undef 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
175 _NaN ()
177 static float zero = 0.0f;
178 return zero / zero;
180 # define NAN (_NaN())
181 # else
182 # define NAN (0.0f / 0.0f)
183 # endif
184 # define GNULIB_defined_NAN 1
185 # endif
186 #endif
188 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
189 than a floating point constant. */
190 #if @REPLACE_HUGE_VAL@
191 # undef HUGE_VALF
192 # define HUGE_VALF (1.0f / 0.0f)
193 # undef HUGE_VAL
194 # define HUGE_VAL (1.0 / 0.0)
195 # undef HUGE_VALL
196 # define HUGE_VALL (1.0L / 0.0L)
197 #endif
199 /* HUGE_VALF is a 'float' Infinity. */
200 #ifndef HUGE_VALF
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)
204 # else
205 # define HUGE_VALF (1.0f / 0.0f)
206 # endif
207 #endif
209 /* HUGE_VAL is a 'double' Infinity. */
210 #ifndef HUGE_VAL
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)
214 # else
215 # define HUGE_VAL (1.0 / 0.0)
216 # endif
217 #endif
219 /* HUGE_VALL is a 'long double' Infinity. */
220 #ifndef HUGE_VALL
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)
224 # else
225 # define HUGE_VALL (1.0L / 0.0L)
226 # endif
227 #endif
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 */
234 # undef FP_ILOGB0
235 # undef FP_ILOGBNAN
236 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
237 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
238 # endif
239 #else
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 */
245 # elif defined _AIX
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 */
249 # elif defined __sun
250 /* Solaris 9: match what ilogb() does */
251 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
252 # define FP_ILOGBNAN 2147483647 /* INT_MAX */
253 # else
254 /* Gnulib defined values. */
255 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
256 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
257 # endif
258 #endif
261 #if @GNULIB_ACOSF@
262 # if @REPLACE_ACOSF@
263 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
264 # undef acosf
265 # define acosf rpl_acosf
266 # endif
267 _GL_FUNCDECL_RPL (acosf, float, (float x));
268 _GL_CXXALIAS_RPL (acosf, float, (float x));
269 # else
270 # if !@HAVE_ACOSF@
271 # undef acosf
272 _GL_FUNCDECL_SYS (acosf, float, (float x));
273 # endif
274 _GL_CXXALIAS_SYS (acosf, float, (float x));
275 # endif
276 _GL_CXXALIASWARN (acosf);
277 #elif defined GNULIB_POSIXCHECK
278 # undef acosf
279 # if HAVE_RAW_DECL_ACOSF
280 _GL_WARN_ON_USE (acosf, "acosf is unportable - "
281 "use gnulib module acosf for portability");
282 # endif
283 #endif
285 #if @GNULIB_ACOSL@
286 # if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@
287 # undef acosl
288 _GL_FUNCDECL_SYS (acosl, long double, (long double x));
289 # endif
290 _GL_CXXALIAS_SYS (acosl, long double, (long double x));
291 # if __GLIBC__ >= 2
292 _GL_CXXALIASWARN (acosl);
293 # endif
294 #elif defined GNULIB_POSIXCHECK
295 # undef acosl
296 # if HAVE_RAW_DECL_ACOSL
297 _GL_WARN_ON_USE (acosl, "acosl is unportable - "
298 "use gnulib module acosl for portability");
299 # endif
300 #endif
303 #if @GNULIB_ASINF@
304 # if @REPLACE_ASINF@
305 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
306 # undef asinf
307 # define asinf rpl_asinf
308 # endif
309 _GL_FUNCDECL_RPL (asinf, float, (float x));
310 _GL_CXXALIAS_RPL (asinf, float, (float x));
311 # else
312 # if !@HAVE_ASINF@
313 # undef asinf
314 _GL_FUNCDECL_SYS (asinf, float, (float x));
315 # endif
316 _GL_CXXALIAS_SYS (asinf, float, (float x));
317 # endif
318 _GL_CXXALIASWARN (asinf);
319 #elif defined GNULIB_POSIXCHECK
320 # undef asinf
321 # if HAVE_RAW_DECL_ASINF
322 _GL_WARN_ON_USE (asinf, "asinf is unportable - "
323 "use gnulib module asinf for portability");
324 # endif
325 #endif
327 #if @GNULIB_ASINL@
328 # if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@
329 # undef asinl
330 _GL_FUNCDECL_SYS (asinl, long double, (long double x));
331 # endif
332 _GL_CXXALIAS_SYS (asinl, long double, (long double x));
333 # if __GLIBC__ >= 2
334 _GL_CXXALIASWARN (asinl);
335 # endif
336 #elif defined GNULIB_POSIXCHECK
337 # undef asinl
338 # if HAVE_RAW_DECL_ASINL
339 _GL_WARN_ON_USE (asinl, "asinl is unportable - "
340 "use gnulib module asinl for portability");
341 # endif
342 #endif
345 #if @GNULIB_ATANF@
346 # if @REPLACE_ATANF@
347 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
348 # undef atanf
349 # define atanf rpl_atanf
350 # endif
351 _GL_FUNCDECL_RPL (atanf, float, (float x));
352 _GL_CXXALIAS_RPL (atanf, float, (float x));
353 # else
354 # if !@HAVE_ATANF@
355 # undef atanf
356 _GL_FUNCDECL_SYS (atanf, float, (float x));
357 # endif
358 _GL_CXXALIAS_SYS (atanf, float, (float x));
359 # endif
360 _GL_CXXALIASWARN (atanf);
361 #elif defined GNULIB_POSIXCHECK
362 # undef atanf
363 # if HAVE_RAW_DECL_ATANF
364 _GL_WARN_ON_USE (atanf, "atanf is unportable - "
365 "use gnulib module atanf for portability");
366 # endif
367 #endif
369 #if @GNULIB_ATANL@
370 # if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@
371 # undef atanl
372 _GL_FUNCDECL_SYS (atanl, long double, (long double x));
373 # endif
374 _GL_CXXALIAS_SYS (atanl, long double, (long double x));
375 # if __GLIBC__ >= 2
376 _GL_CXXALIASWARN (atanl);
377 # endif
378 #elif defined GNULIB_POSIXCHECK
379 # undef atanl
380 # if HAVE_RAW_DECL_ATANL
381 _GL_WARN_ON_USE (atanl, "atanl is unportable - "
382 "use gnulib module atanl for portability");
383 # endif
384 #endif
387 #if @GNULIB_ATAN2F@
388 # if @REPLACE_ATAN2F@
389 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
390 # undef atan2f
391 # define atan2f rpl_atan2f
392 # endif
393 _GL_FUNCDECL_RPL (atan2f, float, (float y, float x));
394 _GL_CXXALIAS_RPL (atan2f, float, (float y, float x));
395 # else
396 # if !@HAVE_ATAN2F@
397 # undef atan2f
398 _GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
399 # endif
400 _GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
401 # endif
402 _GL_CXXALIASWARN (atan2f);
403 #elif defined GNULIB_POSIXCHECK
404 # undef atan2f
405 # if HAVE_RAW_DECL_ATAN2F
406 _GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
407 "use gnulib module atan2f for portability");
408 # endif
409 #endif
412 #if @GNULIB_CBRTF@
413 # if @REPLACE_CBRTF@
414 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
415 # undef cbrtf
416 # define cbrtf rpl_cbrtf
417 # endif
418 _GL_FUNCDECL_RPL (cbrtf, float, (float x));
419 _GL_CXXALIAS_RPL (cbrtf, float, (float x));
420 # else
421 # if !@HAVE_DECL_CBRTF@
422 _GL_FUNCDECL_SYS (cbrtf, float, (float x));
423 # endif
424 _GL_CXXALIAS_SYS (cbrtf, float, (float x));
425 # endif
426 _GL_CXXALIASWARN (cbrtf);
427 #elif defined GNULIB_POSIXCHECK
428 # undef cbrtf
429 # if HAVE_RAW_DECL_CBRTF
430 _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
431 "use gnulib module cbrtf for portability");
432 # endif
433 #endif
435 #if @GNULIB_CBRT@
436 # if !@HAVE_CBRT@
437 _GL_FUNCDECL_SYS (cbrt, double, (double x));
438 # endif
439 _GL_CXXALIAS_SYS (cbrt, double, (double x));
440 # if __GLIBC__ >= 2
441 _GL_CXXALIASWARN1 (cbrt, double, (double x));
442 # endif
443 #elif defined GNULIB_POSIXCHECK
444 # undef cbrt
445 # if HAVE_RAW_DECL_CBRT
446 _GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
447 "use gnulib module cbrt for portability");
448 # endif
449 #endif
451 #if @GNULIB_CBRTL@
452 # if @REPLACE_CBRTL@
453 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
454 # undef cbrtl
455 # define cbrtl rpl_cbrtl
456 # endif
457 _GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
458 _GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
459 # else
460 # if !@HAVE_DECL_CBRTL@
461 _GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
462 # endif
463 _GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
464 # endif
465 # if __GLIBC__ >= 2
466 _GL_CXXALIASWARN (cbrtl);
467 # endif
468 #elif defined GNULIB_POSIXCHECK
469 # undef cbrtl
470 # if HAVE_RAW_DECL_CBRTL
471 _GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
472 "use gnulib module cbrtl for portability");
473 # endif
474 #endif
477 #if @GNULIB_CEILF@
478 # if @REPLACE_CEILF@
479 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
480 # undef ceilf
481 # define ceilf rpl_ceilf
482 # endif
483 _GL_FUNCDECL_RPL (ceilf, float, (float x));
484 _GL_CXXALIAS_RPL (ceilf, float, (float x));
485 # else
486 # if !@HAVE_DECL_CEILF@
487 # undef ceilf
488 _GL_FUNCDECL_SYS (ceilf, float, (float x));
489 # endif
490 _GL_CXXALIAS_SYS (ceilf, float, (float x));
491 # endif
492 _GL_CXXALIASWARN (ceilf);
493 #elif defined GNULIB_POSIXCHECK
494 # undef ceilf
495 # if HAVE_RAW_DECL_CEILF
496 _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
497 "use gnulib module ceilf for portability");
498 # endif
499 #endif
501 #if @GNULIB_CEIL@
502 # if @REPLACE_CEIL@
503 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
504 # undef ceil
505 # define ceil rpl_ceil
506 # endif
507 _GL_FUNCDECL_RPL (ceil, double, (double x));
508 _GL_CXXALIAS_RPL (ceil, double, (double x));
509 # else
510 _GL_CXXALIAS_SYS (ceil, double, (double x));
511 # endif
512 # if __GLIBC__ >= 2
513 _GL_CXXALIASWARN1 (ceil, double, (double x));
514 # endif
515 #endif
517 #if @GNULIB_CEILL@
518 # if @REPLACE_CEILL@
519 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
520 # undef ceill
521 # define ceill rpl_ceill
522 # endif
523 _GL_FUNCDECL_RPL (ceill, long double, (long double x));
524 _GL_CXXALIAS_RPL (ceill, long double, (long double x));
525 # else
526 # if !@HAVE_DECL_CEILL@
527 # undef ceill
528 _GL_FUNCDECL_SYS (ceill, long double, (long double x));
529 # endif
530 _GL_CXXALIAS_SYS (ceill, long double, (long double x));
531 # endif
532 # if __GLIBC__ >= 2
533 _GL_CXXALIASWARN (ceill);
534 # endif
535 #elif defined GNULIB_POSIXCHECK
536 # undef ceill
537 # if HAVE_RAW_DECL_CEILL
538 _GL_WARN_ON_USE (ceill, "ceill is unportable - "
539 "use gnulib module ceill for portability");
540 # endif
541 #endif
544 #if @GNULIB_COPYSIGNF@
545 # if !@HAVE_DECL_COPYSIGNF@
546 # undef copysignf
547 _GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
548 # endif
549 _GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
550 _GL_CXXALIASWARN (copysignf);
551 #elif defined GNULIB_POSIXCHECK
552 # undef copysignf
553 # if HAVE_RAW_DECL_COPYSIGNF
554 _GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
555 "use gnulib module copysignf for portability");
556 # endif
557 #endif
559 #if @GNULIB_COPYSIGN@
560 # if !@HAVE_COPYSIGN@
561 _GL_FUNCDECL_SYS (copysign, double, (double x, double y));
562 # endif
563 _GL_CXXALIAS_SYS (copysign, double, (double x, double y));
564 # if __GLIBC__ >= 2
565 _GL_CXXALIASWARN1 (copysign, double, (double x, double y));
566 # endif
567 #elif defined GNULIB_POSIXCHECK
568 # undef copysign
569 # if HAVE_RAW_DECL_COPYSIGN
570 _GL_WARN_ON_USE (copysign, "copysign is unportable - "
571 "use gnulib module copysign for portability");
572 # endif
573 #endif
575 #if @GNULIB_COPYSIGNL@
576 # if !@HAVE_COPYSIGNL@
577 _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
578 # endif
579 _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
580 # if __GLIBC__ >= 2
581 _GL_CXXALIASWARN (copysignl);
582 # endif
583 #elif defined GNULIB_POSIXCHECK
584 # undef copysignl
585 # if HAVE_RAW_DECL_COPYSIGNL
586 _GL_WARN_ON_USE (copysign, "copysignl is unportable - "
587 "use gnulib module copysignl for portability");
588 # endif
589 #endif
592 #if @GNULIB_COSF@
593 # if @REPLACE_COSF@
594 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
595 # undef cosf
596 # define cosf rpl_cosf
597 # endif
598 _GL_FUNCDECL_RPL (cosf, float, (float x));
599 _GL_CXXALIAS_RPL (cosf, float, (float x));
600 # else
601 # if !@HAVE_COSF@
602 # undef cosf
603 _GL_FUNCDECL_SYS (cosf, float, (float x));
604 # endif
605 _GL_CXXALIAS_SYS (cosf, float, (float x));
606 # endif
607 _GL_CXXALIASWARN (cosf);
608 #elif defined GNULIB_POSIXCHECK
609 # undef cosf
610 # if HAVE_RAW_DECL_COSF
611 _GL_WARN_ON_USE (cosf, "cosf is unportable - "
612 "use gnulib module cosf for portability");
613 # endif
614 #endif
616 #if @GNULIB_COSL@
617 # if !@HAVE_COSL@ || !@HAVE_DECL_COSL@
618 # undef cosl
619 _GL_FUNCDECL_SYS (cosl, long double, (long double x));
620 # endif
621 _GL_CXXALIAS_SYS (cosl, long double, (long double x));
622 # if __GLIBC__ >= 2
623 _GL_CXXALIASWARN (cosl);
624 # endif
625 #elif defined GNULIB_POSIXCHECK
626 # undef cosl
627 # if HAVE_RAW_DECL_COSL
628 _GL_WARN_ON_USE (cosl, "cosl is unportable - "
629 "use gnulib module cosl for portability");
630 # endif
631 #endif
634 #if @GNULIB_COSHF@
635 # if @REPLACE_COSHF@
636 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
637 # undef coshf
638 # define coshf rpl_coshf
639 # endif
640 _GL_FUNCDECL_RPL (coshf, float, (float x));
641 _GL_CXXALIAS_RPL (coshf, float, (float x));
642 # else
643 # if !@HAVE_COSHF@
644 # undef coshf
645 _GL_FUNCDECL_SYS (coshf, float, (float x));
646 # endif
647 _GL_CXXALIAS_SYS (coshf, float, (float x));
648 # endif
649 _GL_CXXALIASWARN (coshf);
650 #elif defined GNULIB_POSIXCHECK
651 # undef coshf
652 # if HAVE_RAW_DECL_COSHF
653 _GL_WARN_ON_USE (coshf, "coshf is unportable - "
654 "use gnulib module coshf for portability");
655 # endif
656 #endif
659 #if @GNULIB_EXPF@
660 # if @REPLACE_EXPF@
661 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
662 # undef expf
663 # define expf rpl_expf
664 # endif
665 _GL_FUNCDECL_RPL (expf, float, (float x));
666 _GL_CXXALIAS_RPL (expf, float, (float x));
667 # else
668 # if !@HAVE_EXPF@
669 # undef expf
670 _GL_FUNCDECL_SYS (expf, float, (float x));
671 # endif
672 _GL_CXXALIAS_SYS (expf, float, (float x));
673 # endif
674 _GL_CXXALIASWARN (expf);
675 #elif defined GNULIB_POSIXCHECK
676 # undef expf
677 # if HAVE_RAW_DECL_EXPF
678 _GL_WARN_ON_USE (expf, "expf is unportable - "
679 "use gnulib module expf for portability");
680 # endif
681 #endif
683 #if @GNULIB_EXPL@
684 # if @REPLACE_EXPL@
685 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
686 # undef expl
687 # define expl rpl_expl
688 # endif
689 _GL_FUNCDECL_RPL (expl, long double, (long double x));
690 _GL_CXXALIAS_RPL (expl, long double, (long double x));
691 # else
692 # if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@
693 # undef expl
694 _GL_FUNCDECL_SYS (expl, long double, (long double x));
695 # endif
696 _GL_CXXALIAS_SYS (expl, long double, (long double x));
697 # endif
698 # if __GLIBC__ >= 2
699 _GL_CXXALIASWARN (expl);
700 # endif
701 #elif defined GNULIB_POSIXCHECK
702 # undef expl
703 # if HAVE_RAW_DECL_EXPL
704 _GL_WARN_ON_USE (expl, "expl is unportable - "
705 "use gnulib module expl for portability");
706 # endif
707 #endif
710 #if @GNULIB_EXP2F@
711 # if !@HAVE_DECL_EXP2F@
712 _GL_FUNCDECL_SYS (exp2f, float, (float x));
713 # endif
714 _GL_CXXALIAS_SYS (exp2f, float, (float x));
715 _GL_CXXALIASWARN (exp2f);
716 #elif defined GNULIB_POSIXCHECK
717 # undef exp2f
718 # if HAVE_RAW_DECL_EXP2F
719 _GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
720 "use gnulib module exp2f for portability");
721 # endif
722 #endif
724 #if @GNULIB_EXP2@
725 # if @REPLACE_EXP2@
726 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
727 # undef exp2
728 # define exp2 rpl_exp2
729 # endif
730 _GL_FUNCDECL_RPL (exp2, double, (double x));
731 _GL_CXXALIAS_RPL (exp2, double, (double x));
732 # else
733 # if !@HAVE_DECL_EXP2@
734 _GL_FUNCDECL_SYS (exp2, double, (double x));
735 # endif
736 _GL_CXXALIAS_SYS (exp2, double, (double x));
737 # endif
738 # if __GLIBC__ >= 2
739 _GL_CXXALIASWARN1 (exp2, double, (double x));
740 # endif
741 #elif defined GNULIB_POSIXCHECK
742 # undef exp2
743 # if HAVE_RAW_DECL_EXP2
744 _GL_WARN_ON_USE (exp2, "exp2 is unportable - "
745 "use gnulib module exp2 for portability");
746 # endif
747 #endif
749 #if @GNULIB_EXP2L@
750 # if @REPLACE_EXP2L@
751 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
752 # undef exp2l
753 # define exp2l rpl_exp2l
754 # endif
755 _GL_FUNCDECL_RPL (exp2l, long double, (long double x));
756 _GL_CXXALIAS_RPL (exp2l, long double, (long double x));
757 # else
758 # if !@HAVE_DECL_EXP2L@
759 # undef exp2l
760 _GL_FUNCDECL_SYS (exp2l, long double, (long double x));
761 # endif
762 _GL_CXXALIAS_SYS (exp2l, long double, (long double x));
763 # endif
764 # if __GLIBC__ >= 2
765 _GL_CXXALIASWARN (exp2l);
766 # endif
767 #elif defined GNULIB_POSIXCHECK
768 # undef exp2l
769 # if HAVE_RAW_DECL_EXP2L
770 _GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
771 "use gnulib module exp2l for portability");
772 # endif
773 #endif
776 #if @GNULIB_EXPM1F@
777 # if @REPLACE_EXPM1F@
778 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
779 # undef expm1f
780 # define expm1f rpl_expm1f
781 # endif
782 _GL_FUNCDECL_RPL (expm1f, float, (float x));
783 _GL_CXXALIAS_RPL (expm1f, float, (float x));
784 # else
785 # if !@HAVE_EXPM1F@
786 _GL_FUNCDECL_SYS (expm1f, float, (float x));
787 # endif
788 _GL_CXXALIAS_SYS (expm1f, float, (float x));
789 # endif
790 _GL_CXXALIASWARN (expm1f);
791 #elif defined GNULIB_POSIXCHECK
792 # undef expm1f
793 # if HAVE_RAW_DECL_EXPM1F
794 _GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
795 "use gnulib module expm1f for portability");
796 # endif
797 #endif
799 #if @GNULIB_EXPM1@
800 # if @REPLACE_EXPM1@
801 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
802 # undef expm1
803 # define expm1 rpl_expm1
804 # endif
805 _GL_FUNCDECL_RPL (expm1, double, (double x));
806 _GL_CXXALIAS_RPL (expm1, double, (double x));
807 # else
808 # if !@HAVE_EXPM1@
809 _GL_FUNCDECL_SYS (expm1, double, (double x));
810 # endif
811 _GL_CXXALIAS_SYS (expm1, double, (double x));
812 # endif
813 # if __GLIBC__ >= 2
814 _GL_CXXALIASWARN1 (expm1, double, (double x));
815 # endif
816 #elif defined GNULIB_POSIXCHECK
817 # undef expm1
818 # if HAVE_RAW_DECL_EXPM1
819 _GL_WARN_ON_USE (expm1, "expm1 is unportable - "
820 "use gnulib module expm1 for portability");
821 # endif
822 #endif
824 #if @GNULIB_EXPM1L@
825 # if @REPLACE_EXPM1L@
826 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
827 # undef expm1l
828 # define expm1l rpl_expm1l
829 # endif
830 _GL_FUNCDECL_RPL (expm1l, long double, (long double x));
831 _GL_CXXALIAS_RPL (expm1l, long double, (long double x));
832 # else
833 # if !@HAVE_DECL_EXPM1L@
834 # undef expm1l
835 # if !(defined __cplusplus && defined _AIX)
836 _GL_FUNCDECL_SYS (expm1l, long double, (long double x));
837 # endif
838 # endif
839 _GL_CXXALIAS_SYS (expm1l, long double, (long double x));
840 # endif
841 # if __GLIBC__ >= 2
842 _GL_CXXALIASWARN (expm1l);
843 # endif
844 #elif defined GNULIB_POSIXCHECK
845 # undef expm1l
846 # if HAVE_RAW_DECL_EXPM1L
847 _GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
848 "use gnulib module expm1l for portability");
849 # endif
850 #endif
853 #if @GNULIB_FABSF@
854 # if !@HAVE_FABSF@
855 # undef fabsf
856 _GL_FUNCDECL_SYS (fabsf, float, (float x));
857 # endif
858 _GL_CXXALIAS_SYS (fabsf, float, (float x));
859 # if __GLIBC__ >= 2
860 _GL_CXXALIASWARN (fabsf);
861 # endif
862 #elif defined GNULIB_POSIXCHECK
863 # undef fabsf
864 # if HAVE_RAW_DECL_FABSF
865 _GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
866 "use gnulib module fabsf for portability");
867 # endif
868 #endif
870 #if @GNULIB_FABSL@
871 # if @REPLACE_FABSL@
872 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
873 # undef fabsl
874 # define fabsl rpl_fabsl
875 # endif
876 _GL_FUNCDECL_RPL (fabsl, long double, (long double x));
877 _GL_CXXALIAS_RPL (fabsl, long double, (long double x));
878 # else
879 # if !@HAVE_FABSL@
880 # undef fabsl
881 _GL_FUNCDECL_SYS (fabsl, long double, (long double x));
882 # endif
883 _GL_CXXALIAS_SYS (fabsl, long double, (long double x));
884 # endif
885 # if __GLIBC__ >= 2
886 _GL_CXXALIASWARN (fabsl);
887 # endif
888 #elif defined GNULIB_POSIXCHECK
889 # undef fabsl
890 # if HAVE_RAW_DECL_FABSL
891 _GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
892 "use gnulib module fabsl for portability");
893 # endif
894 #endif
897 #if @GNULIB_FLOORF@
898 # if @REPLACE_FLOORF@
899 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
900 # undef floorf
901 # define floorf rpl_floorf
902 # endif
903 _GL_FUNCDECL_RPL (floorf, float, (float x));
904 _GL_CXXALIAS_RPL (floorf, float, (float x));
905 # else
906 # if !@HAVE_DECL_FLOORF@
907 # undef floorf
908 _GL_FUNCDECL_SYS (floorf, float, (float x));
909 # endif
910 _GL_CXXALIAS_SYS (floorf, float, (float x));
911 # endif
912 _GL_CXXALIASWARN (floorf);
913 #elif defined GNULIB_POSIXCHECK
914 # undef floorf
915 # if HAVE_RAW_DECL_FLOORF
916 _GL_WARN_ON_USE (floorf, "floorf is unportable - "
917 "use gnulib module floorf for portability");
918 # endif
919 #endif
921 #if @GNULIB_FLOOR@
922 # if @REPLACE_FLOOR@
923 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
924 # undef floor
925 # define floor rpl_floor
926 # endif
927 _GL_FUNCDECL_RPL (floor, double, (double x));
928 _GL_CXXALIAS_RPL (floor, double, (double x));
929 # else
930 _GL_CXXALIAS_SYS (floor, double, (double x));
931 # endif
932 # if __GLIBC__ >= 2
933 _GL_CXXALIASWARN1 (floor, double, (double x));
934 # endif
935 #endif
937 #if @GNULIB_FLOORL@
938 # if @REPLACE_FLOORL@
939 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
940 # undef floorl
941 # define floorl rpl_floorl
942 # endif
943 _GL_FUNCDECL_RPL (floorl, long double, (long double x));
944 _GL_CXXALIAS_RPL (floorl, long double, (long double x));
945 # else
946 # if !@HAVE_DECL_FLOORL@
947 # undef floorl
948 _GL_FUNCDECL_SYS (floorl, long double, (long double x));
949 # endif
950 _GL_CXXALIAS_SYS (floorl, long double, (long double x));
951 # endif
952 # if __GLIBC__ >= 2
953 _GL_CXXALIASWARN (floorl);
954 # endif
955 #elif defined GNULIB_POSIXCHECK
956 # undef floorl
957 # if HAVE_RAW_DECL_FLOORL
958 _GL_WARN_ON_USE (floorl, "floorl is unportable - "
959 "use gnulib module floorl for portability");
960 # endif
961 #endif
964 #if @GNULIB_FMAF@
965 # if @REPLACE_FMAF@
966 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
967 # undef fmaf
968 # define fmaf rpl_fmaf
969 # endif
970 _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
971 _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
972 # else
973 # if !@HAVE_FMAF@
974 # undef fmaf
975 _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
976 # endif
977 _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
978 # endif
979 _GL_CXXALIASWARN (fmaf);
980 #elif defined GNULIB_POSIXCHECK
981 # undef fmaf
982 # if HAVE_RAW_DECL_FMAF
983 _GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
984 "use gnulib module fmaf for portability");
985 # endif
986 #endif
988 #if @GNULIB_FMA@
989 # if @REPLACE_FMA@
990 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
991 # undef fma
992 # define fma rpl_fma
993 # endif
994 _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
995 _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
996 # else
997 # if !@HAVE_FMA@
998 # undef fma
999 _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
1000 # endif
1001 _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
1002 # endif
1003 # if __GLIBC__ >= 2
1004 _GL_CXXALIASWARN1 (fma, double, (double x, double y, double z));
1005 # endif
1006 #elif defined GNULIB_POSIXCHECK
1007 # undef fma
1008 # if HAVE_RAW_DECL_FMA
1009 _GL_WARN_ON_USE (fma, "fma is unportable - "
1010 "use gnulib module fma for portability");
1011 # endif
1012 #endif
1014 #if @GNULIB_FMAL@
1015 # if @REPLACE_FMAL@
1016 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1017 # undef fmal
1018 # define fmal rpl_fmal
1019 # endif
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));
1024 # else
1025 # if !@HAVE_FMAL@
1026 # undef fmal
1027 # if !(defined __cplusplus && defined _AIX)
1028 _GL_FUNCDECL_SYS (fmal, long double,
1029 (long double x, long double y, long double z));
1030 # endif
1031 # endif
1032 _GL_CXXALIAS_SYS (fmal, long double,
1033 (long double x, long double y, long double z));
1034 # endif
1035 # if __GLIBC__ >= 2
1036 _GL_CXXALIASWARN (fmal);
1037 # endif
1038 #elif defined GNULIB_POSIXCHECK
1039 # undef fmal
1040 # if HAVE_RAW_DECL_FMAL
1041 _GL_WARN_ON_USE (fmal, "fmal is unportable - "
1042 "use gnulib module fmal for portability");
1043 # endif
1044 #endif
1047 #if @GNULIB_FMODF@
1048 # if @REPLACE_FMODF@
1049 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1050 # undef fmodf
1051 # define fmodf rpl_fmodf
1052 # endif
1053 _GL_FUNCDECL_RPL (fmodf, float, (float x, float y));
1054 _GL_CXXALIAS_RPL (fmodf, float, (float x, float y));
1055 # else
1056 # if !@HAVE_FMODF@
1057 # undef fmodf
1058 _GL_FUNCDECL_SYS (fmodf, float, (float x, float y));
1059 # endif
1060 _GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
1061 # endif
1062 _GL_CXXALIASWARN (fmodf);
1063 #elif defined GNULIB_POSIXCHECK
1064 # undef fmodf
1065 # if HAVE_RAW_DECL_FMODF
1066 _GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
1067 "use gnulib module fmodf for portability");
1068 # endif
1069 #endif
1071 #if @GNULIB_FMOD@
1072 # if @REPLACE_FMOD@
1073 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1074 # undef fmod
1075 # define fmod rpl_fmod
1076 # endif
1077 _GL_FUNCDECL_RPL (fmod, double, (double x, double y));
1078 _GL_CXXALIAS_RPL (fmod, double, (double x, double y));
1079 # else
1080 _GL_CXXALIAS_SYS (fmod, double, (double x, double y));
1081 # endif
1082 # if __GLIBC__ >= 2
1083 _GL_CXXALIASWARN1 (fmod, double, (double x, double y));
1084 # endif
1085 #elif defined GNULIB_POSIXCHECK
1086 # undef fmod
1087 # if HAVE_RAW_DECL_FMOD
1088 _GL_WARN_ON_USE (fmod, "fmod has portability problems - "
1089 "use gnulib module fmod for portability");
1090 # endif
1091 #endif
1093 #if @GNULIB_FMODL@
1094 # if @REPLACE_FMODL@
1095 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1096 # undef fmodl
1097 # define fmodl rpl_fmodl
1098 # endif
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));
1101 # else
1102 # if !@HAVE_FMODL@
1103 # undef fmodl
1104 _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
1105 # endif
1106 _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
1107 # endif
1108 # if __GLIBC__ >= 2
1109 _GL_CXXALIASWARN (fmodl);
1110 # endif
1111 #elif defined GNULIB_POSIXCHECK
1112 # undef fmodl
1113 # if HAVE_RAW_DECL_FMODL
1114 _GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
1115 "use gnulib module fmodl for portability");
1116 # endif
1117 #endif
1120 /* Write x as
1121 x = mantissa * 2^exp
1122 where
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. */
1127 #if @GNULIB_FREXPF@
1128 # if @REPLACE_FREXPF@
1129 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1130 # undef frexpf
1131 # define frexpf rpl_frexpf
1132 # endif
1133 _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1134 _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr));
1135 # else
1136 # if !@HAVE_FREXPF@
1137 # undef frexpf
1138 _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1139 # endif
1140 _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
1141 # endif
1142 # if __GLIBC__ >= 2
1143 _GL_CXXALIASWARN (frexpf);
1144 # endif
1145 #elif defined GNULIB_POSIXCHECK
1146 # undef frexpf
1147 # if HAVE_RAW_DECL_FREXPF
1148 _GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
1149 "use gnulib module frexpf for portability");
1150 # endif
1151 #endif
1153 /* Write x as
1154 x = mantissa * 2^exp
1155 where
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. */
1160 #if @GNULIB_FREXP@
1161 # if @REPLACE_FREXP@
1162 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1163 # undef frexp
1164 # define frexp rpl_frexp
1165 # endif
1166 _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
1167 _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
1168 # else
1169 _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
1170 # endif
1171 # if __GLIBC__ >= 2
1172 _GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr));
1173 # endif
1174 #elif defined GNULIB_POSIXCHECK
1175 # undef frexp
1176 /* Assume frexp is always declared. */
1177 _GL_WARN_ON_USE (frexp, "frexp is unportable - "
1178 "use gnulib module frexp for portability");
1179 #endif
1181 /* Write x as
1182 x = mantissa * 2^exp
1183 where
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)
1190 # undef frexpl
1191 # define frexpl rpl_frexpl
1192 # endif
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));
1196 #else
1197 # if !@HAVE_DECL_FREXPL@
1198 _GL_FUNCDECL_SYS (frexpl, long double,
1199 (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1200 # endif
1201 # if @GNULIB_FREXPL@
1202 _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
1203 # endif
1204 #endif
1205 #if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@)
1206 # if __GLIBC__ >= 2
1207 _GL_CXXALIASWARN (frexpl);
1208 # endif
1209 #endif
1210 #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
1211 # undef frexpl
1212 # if HAVE_RAW_DECL_FREXPL
1213 _GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
1214 "use gnulib module frexpl for portability");
1215 # endif
1216 #endif
1219 /* Return sqrt(x^2+y^2). */
1220 #if @GNULIB_HYPOTF@
1221 # if @REPLACE_HYPOTF@
1222 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1223 # undef hypotf
1224 # define hypotf rpl_hypotf
1225 # endif
1226 _GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
1227 _GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
1228 # else
1229 # if !@HAVE_HYPOTF@
1230 _GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
1231 # endif
1232 _GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
1233 # endif
1234 # if __GLIBC__ >= 2
1235 _GL_CXXALIASWARN (hypotf);
1236 # endif
1237 #elif defined GNULIB_POSIXCHECK
1238 # undef hypotf
1239 # if HAVE_RAW_DECL_HYPOTF
1240 _GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
1241 "use gnulib module hypotf for portability");
1242 # endif
1243 #endif
1245 /* Return sqrt(x^2+y^2). */
1246 #if @GNULIB_HYPOT@
1247 # if @REPLACE_HYPOT@
1248 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1249 # undef hypot
1250 # define hypot rpl_hypot
1251 # endif
1252 _GL_FUNCDECL_RPL (hypot, double, (double x, double y));
1253 _GL_CXXALIAS_RPL (hypot, double, (double x, double y));
1254 # else
1255 _GL_CXXALIAS_SYS (hypot, double, (double x, double y));
1256 # endif
1257 # if __GLIBC__ >= 2
1258 _GL_CXXALIASWARN1 (hypot, double, (double x, double y));
1259 # endif
1260 #elif defined GNULIB_POSIXCHECK
1261 # undef hypot
1262 # if HAVE_RAW_DECL_HYPOT
1263 _GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
1264 "use gnulib module hypot for portability");
1265 # endif
1266 #endif
1268 /* Return sqrt(x^2+y^2). */
1269 #if @GNULIB_HYPOTL@
1270 # if @REPLACE_HYPOTL@
1271 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1272 # undef hypotl
1273 # define hypotl rpl_hypotl
1274 # endif
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));
1277 # else
1278 # if !@HAVE_HYPOTL@
1279 _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
1280 # endif
1281 _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
1282 # endif
1283 # if __GLIBC__ >= 2
1284 _GL_CXXALIASWARN (hypotl);
1285 # endif
1286 #elif defined GNULIB_POSIXCHECK
1287 # undef hypotl
1288 # if HAVE_RAW_DECL_HYPOTL
1289 _GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
1290 "use gnulib module hypotl for portability");
1291 # endif
1292 #endif
1295 #if @GNULIB_ILOGBF@
1296 # if @REPLACE_ILOGBF@
1297 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1298 # undef ilogbf
1299 # define ilogbf rpl_ilogbf
1300 # endif
1301 _GL_FUNCDECL_RPL (ilogbf, int, (float x));
1302 _GL_CXXALIAS_RPL (ilogbf, int, (float x));
1303 # else
1304 # if !@HAVE_ILOGBF@
1305 _GL_FUNCDECL_SYS (ilogbf, int, (float x));
1306 # endif
1307 _GL_CXXALIAS_SYS (ilogbf, int, (float x));
1308 # endif
1309 _GL_CXXALIASWARN (ilogbf);
1310 #elif defined GNULIB_POSIXCHECK
1311 # undef ilogbf
1312 # if HAVE_RAW_DECL_ILOGBF
1313 _GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
1314 "use gnulib module ilogbf for portability");
1315 # endif
1316 #endif
1318 #if @GNULIB_ILOGB@
1319 # if @REPLACE_ILOGB@
1320 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1321 # undef ilogb
1322 # define ilogb rpl_ilogb
1323 # endif
1324 _GL_FUNCDECL_RPL (ilogb, int, (double x));
1325 _GL_CXXALIAS_RPL (ilogb, int, (double x));
1326 # else
1327 # if !@HAVE_ILOGB@
1328 _GL_FUNCDECL_SYS (ilogb, int, (double x));
1329 # endif
1330 _GL_CXXALIAS_SYS (ilogb, int, (double x));
1331 # endif
1332 # if __GLIBC__ >= 2
1333 _GL_CXXALIASWARN1 (ilogb, int, (double x));
1334 # endif
1335 #elif defined GNULIB_POSIXCHECK
1336 # undef ilogb
1337 # if HAVE_RAW_DECL_ILOGB
1338 _GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
1339 "use gnulib module ilogb for portability");
1340 # endif
1341 #endif
1343 #if @GNULIB_ILOGBL@
1344 # if @REPLACE_ILOGBL@
1345 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1346 # undef ilogbl
1347 # define ilogbl rpl_ilogbl
1348 # endif
1349 _GL_FUNCDECL_RPL (ilogbl, int, (long double x));
1350 _GL_CXXALIAS_RPL (ilogbl, int, (long double x));
1351 # else
1352 # if !@HAVE_ILOGBL@
1353 # undef ilogbl
1354 _GL_FUNCDECL_SYS (ilogbl, int, (long double x));
1355 # endif
1356 _GL_CXXALIAS_SYS (ilogbl, int, (long double x));
1357 # endif
1358 # if __GLIBC__ >= 2
1359 _GL_CXXALIASWARN (ilogbl);
1360 # endif
1361 #elif defined GNULIB_POSIXCHECK
1362 # undef ilogbl
1363 # if HAVE_RAW_DECL_ILOGBL
1364 _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
1365 "use gnulib module ilogbl for portability");
1366 # endif
1367 #endif
1370 #if @GNULIB_MDA_J0@
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)
1376 # undef j0
1377 # define j0 _j0
1378 # endif
1379 _GL_CXXALIAS_MDA (j0, double, (double x));
1380 # else
1381 _GL_CXXALIAS_SYS (j0, double, (double x));
1382 # endif
1383 _GL_CXXALIASWARN (j0);
1384 #endif
1386 #if @GNULIB_MDA_J1@
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)
1392 # undef j1
1393 # define j1 _j1
1394 # endif
1395 _GL_CXXALIAS_MDA (j1, double, (double x));
1396 # else
1397 _GL_CXXALIAS_SYS (j1, double, (double x));
1398 # endif
1399 _GL_CXXALIASWARN (j1);
1400 #endif
1402 #if @GNULIB_MDA_JN@
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)
1408 # undef jn
1409 # define jn _jn
1410 # endif
1411 _GL_CXXALIAS_MDA (jn, double, (int n, double x));
1412 # else
1413 _GL_CXXALIAS_SYS (jn, double, (int n, double x));
1414 # endif
1415 _GL_CXXALIASWARN (jn);
1416 #endif
1419 /* Return x * 2^exp. */
1420 #if @GNULIB_LDEXPF@
1421 # if !@HAVE_LDEXPF@
1422 # undef ldexpf
1423 _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
1424 # endif
1425 _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
1426 # if __GLIBC__ >= 2
1427 _GL_CXXALIASWARN (ldexpf);
1428 # endif
1429 #elif defined GNULIB_POSIXCHECK
1430 # undef ldexpf
1431 # if HAVE_RAW_DECL_LDEXPF
1432 _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
1433 "use gnulib module ldexpf for portability");
1434 # endif
1435 #endif
1437 /* Return x * 2^exp. */
1438 #if @GNULIB_LDEXP@
1439 # if @REPLACE_LDEXP@
1440 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1441 # undef ldexp
1442 # define ldexp rpl_ldexp
1443 # endif
1444 _GL_FUNCDECL_RPL (ldexp, double, (double x, int exp));
1445 _GL_CXXALIAS_RPL (ldexp, double, (double x, int exp));
1446 # else
1447 /* Assume ldexp is always declared. */
1448 _GL_CXXALIAS_SYS (ldexp, double, (double x, int exp));
1449 # endif
1450 # if __GLIBC__ >= 2
1451 _GL_CXXALIASWARN1 (ldexp, double, (double x, int exp));
1452 # endif
1453 #elif defined GNULIB_POSIXCHECK
1454 # undef ldexp
1455 /* Assume ldexp is always declared. */
1456 _GL_WARN_ON_USE (ldexp, "ldexp is unportable - "
1457 "use gnulib module ldexp for portability");
1458 #endif
1460 /* Return x * 2^exp. */
1461 #if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
1462 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1463 # undef ldexpl
1464 # define ldexpl rpl_ldexpl
1465 # endif
1466 _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
1467 _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
1468 #else
1469 # if !@HAVE_DECL_LDEXPL@
1470 _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
1471 # endif
1472 # if @GNULIB_LDEXPL@
1473 _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
1474 # endif
1475 #endif
1476 #if @GNULIB_LDEXPL@
1477 # if __GLIBC__ >= 2
1478 _GL_CXXALIASWARN (ldexpl);
1479 # endif
1480 #endif
1481 #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
1482 # undef ldexpl
1483 # if HAVE_RAW_DECL_LDEXPL
1484 _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
1485 "use gnulib module ldexpl for portability");
1486 # endif
1487 #endif
1490 #if @GNULIB_LOGF@
1491 # if @REPLACE_LOGF@
1492 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1493 # undef logf
1494 # define logf rpl_logf
1495 # endif
1496 _GL_FUNCDECL_RPL (logf, float, (float x));
1497 _GL_CXXALIAS_RPL (logf, float, (float x));
1498 # else
1499 # if !@HAVE_LOGF@
1500 # undef logf
1501 _GL_FUNCDECL_SYS (logf, float, (float x));
1502 # endif
1503 _GL_CXXALIAS_SYS (logf, float, (float x));
1504 # endif
1505 _GL_CXXALIASWARN (logf);
1506 #elif defined GNULIB_POSIXCHECK
1507 # undef logf
1508 # if HAVE_RAW_DECL_LOGF
1509 _GL_WARN_ON_USE (logf, "logf is unportable - "
1510 "use gnulib module logf for portability");
1511 # endif
1512 #endif
1514 #if @GNULIB_LOG@
1515 # if @REPLACE_LOG@
1516 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1517 # undef log
1518 # define log rpl_log
1519 # endif
1520 _GL_FUNCDECL_RPL (log, double, (double x));
1521 _GL_CXXALIAS_RPL (log, double, (double x));
1522 # else
1523 _GL_CXXALIAS_SYS (log, double, (double x));
1524 # endif
1525 # if __GLIBC__ >= 2
1526 _GL_CXXALIASWARN1 (log, double, (double x));
1527 # endif
1528 #elif defined GNULIB_POSIXCHECK
1529 # undef log
1530 # if HAVE_RAW_DECL_LOG
1531 _GL_WARN_ON_USE (log, "log has portability problems - "
1532 "use gnulib module log for portability");
1533 # endif
1534 #endif
1536 #if @GNULIB_LOGL@
1537 # if @REPLACE_LOGL@
1538 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1539 # undef logl
1540 # define logl rpl_logl
1541 # endif
1542 _GL_FUNCDECL_RPL (logl, long double, (long double x));
1543 _GL_CXXALIAS_RPL (logl, long double, (long double x));
1544 # else
1545 # if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
1546 # undef logl
1547 _GL_FUNCDECL_SYS (logl, long double, (long double x));
1548 # endif
1549 _GL_CXXALIAS_SYS (logl, long double, (long double x));
1550 # endif
1551 # if __GLIBC__ >= 2
1552 _GL_CXXALIASWARN (logl);
1553 # endif
1554 #elif defined GNULIB_POSIXCHECK
1555 # undef logl
1556 # if HAVE_RAW_DECL_LOGL
1557 _GL_WARN_ON_USE (logl, "logl is unportable - "
1558 "use gnulib module logl for portability");
1559 # endif
1560 #endif
1563 #if @GNULIB_LOG10F@
1564 # if @REPLACE_LOG10F@
1565 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1566 # undef log10f
1567 # define log10f rpl_log10f
1568 # endif
1569 _GL_FUNCDECL_RPL (log10f, float, (float x));
1570 _GL_CXXALIAS_RPL (log10f, float, (float x));
1571 # else
1572 # if !@HAVE_LOG10F@
1573 # undef log10f
1574 _GL_FUNCDECL_SYS (log10f, float, (float x));
1575 # endif
1576 _GL_CXXALIAS_SYS (log10f, float, (float x));
1577 # endif
1578 _GL_CXXALIASWARN (log10f);
1579 #elif defined GNULIB_POSIXCHECK
1580 # undef log10f
1581 # if HAVE_RAW_DECL_LOG10F
1582 _GL_WARN_ON_USE (log10f, "log10f is unportable - "
1583 "use gnulib module log10f for portability");
1584 # endif
1585 #endif
1587 #if @GNULIB_LOG10@
1588 # if @REPLACE_LOG10@
1589 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1590 # undef log10
1591 # define log10 rpl_log10
1592 # endif
1593 _GL_FUNCDECL_RPL (log10, double, (double x));
1594 _GL_CXXALIAS_RPL (log10, double, (double x));
1595 # else
1596 _GL_CXXALIAS_SYS (log10, double, (double x));
1597 # endif
1598 # if __GLIBC__ >= 2
1599 _GL_CXXALIASWARN1 (log10, double, (double x));
1600 # endif
1601 #elif defined GNULIB_POSIXCHECK
1602 # undef log10
1603 # if HAVE_RAW_DECL_LOG10
1604 _GL_WARN_ON_USE (log10, "log10 has portability problems - "
1605 "use gnulib module log10 for portability");
1606 # endif
1607 #endif
1609 #if @GNULIB_LOG10L@
1610 # if @REPLACE_LOG10L@
1611 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1612 # undef log10l
1613 # define log10l rpl_log10l
1614 # endif
1615 _GL_FUNCDECL_RPL (log10l, long double, (long double x));
1616 _GL_CXXALIAS_RPL (log10l, long double, (long double x));
1617 # else
1618 # if !@HAVE_LOG10L@ || !@HAVE_DECL_LOG10L@
1619 # undef log10l
1620 _GL_FUNCDECL_SYS (log10l, long double, (long double x));
1621 # endif
1622 _GL_CXXALIAS_SYS (log10l, long double, (long double x));
1623 # endif
1624 # if __GLIBC__ >= 2
1625 _GL_CXXALIASWARN (log10l);
1626 # endif
1627 #elif defined GNULIB_POSIXCHECK
1628 # undef log10l
1629 # if HAVE_RAW_DECL_LOG10L
1630 _GL_WARN_ON_USE (log10l, "log10l is unportable - "
1631 "use gnulib module log10l for portability");
1632 # endif
1633 #endif
1636 #if @GNULIB_LOG1PF@
1637 # if @REPLACE_LOG1PF@
1638 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1639 # undef log1pf
1640 # define log1pf rpl_log1pf
1641 # endif
1642 _GL_FUNCDECL_RPL (log1pf, float, (float x));
1643 _GL_CXXALIAS_RPL (log1pf, float, (float x));
1644 # else
1645 # if !@HAVE_LOG1PF@
1646 _GL_FUNCDECL_SYS (log1pf, float, (float x));
1647 # endif
1648 _GL_CXXALIAS_SYS (log1pf, float, (float x));
1649 # endif
1650 _GL_CXXALIASWARN (log1pf);
1651 #elif defined GNULIB_POSIXCHECK
1652 # undef log1pf
1653 # if HAVE_RAW_DECL_LOG1PF
1654 _GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
1655 "use gnulib module log1pf for portability");
1656 # endif
1657 #endif
1659 #if @GNULIB_LOG1P@
1660 # if @REPLACE_LOG1P@
1661 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1662 # undef log1p
1663 # define log1p rpl_log1p
1664 # endif
1665 _GL_FUNCDECL_RPL (log1p, double, (double x));
1666 _GL_CXXALIAS_RPL (log1p, double, (double x));
1667 # else
1668 # if !@HAVE_LOG1P@
1669 _GL_FUNCDECL_SYS (log1p, double, (double x));
1670 # endif
1671 _GL_CXXALIAS_SYS (log1p, double, (double x));
1672 # endif
1673 # if __GLIBC__ >= 2
1674 _GL_CXXALIASWARN1 (log1p, double, (double x));
1675 # endif
1676 #elif defined GNULIB_POSIXCHECK
1677 # undef log1p
1678 # if HAVE_RAW_DECL_LOG1P
1679 _GL_WARN_ON_USE (log1p, "log1p has portability problems - "
1680 "use gnulib module log1p for portability");
1681 # endif
1682 #endif
1684 #if @GNULIB_LOG1PL@
1685 # if @REPLACE_LOG1PL@
1686 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1687 # undef log1pl
1688 # define log1pl rpl_log1pl
1689 # endif
1690 _GL_FUNCDECL_RPL (log1pl, long double, (long double x));
1691 _GL_CXXALIAS_RPL (log1pl, long double, (long double x));
1692 # else
1693 # if !@HAVE_LOG1PL@
1694 _GL_FUNCDECL_SYS (log1pl, long double, (long double x));
1695 # endif
1696 _GL_CXXALIAS_SYS (log1pl, long double, (long double x));
1697 # endif
1698 # if __GLIBC__ >= 2
1699 _GL_CXXALIASWARN (log1pl);
1700 # endif
1701 #elif defined GNULIB_POSIXCHECK
1702 # undef log1pl
1703 # if HAVE_RAW_DECL_LOG1PL
1704 _GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
1705 "use gnulib module log1pl for portability");
1706 # endif
1707 #endif
1710 #if @GNULIB_LOG2F@
1711 # if @REPLACE_LOG2F@
1712 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1713 # undef log2f
1714 # define log2f rpl_log2f
1715 # endif
1716 _GL_FUNCDECL_RPL (log2f, float, (float x));
1717 _GL_CXXALIAS_RPL (log2f, float, (float x));
1718 # else
1719 # if !@HAVE_DECL_LOG2F@
1720 # undef log2f
1721 _GL_FUNCDECL_SYS (log2f, float, (float x));
1722 # endif
1723 _GL_CXXALIAS_SYS (log2f, float, (float x));
1724 # endif
1725 # if __GLIBC__ >= 2
1726 _GL_CXXALIASWARN (log2f);
1727 # endif
1728 #elif defined GNULIB_POSIXCHECK
1729 # undef log2f
1730 # if HAVE_RAW_DECL_LOG2F
1731 _GL_WARN_ON_USE (log2f, "log2f is unportable - "
1732 "use gnulib module log2f for portability");
1733 # endif
1734 #endif
1736 #if @GNULIB_LOG2@
1737 # if @REPLACE_LOG2@
1738 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1739 # undef log2
1740 # define log2 rpl_log2
1741 # endif
1742 _GL_FUNCDECL_RPL (log2, double, (double x));
1743 _GL_CXXALIAS_RPL (log2, double, (double x));
1744 # else
1745 # if !@HAVE_DECL_LOG2@
1746 # undef log2
1747 _GL_FUNCDECL_SYS (log2, double, (double x));
1748 # endif
1749 _GL_CXXALIAS_SYS (log2, double, (double x));
1750 # endif
1751 # if __GLIBC__ >= 2
1752 _GL_CXXALIASWARN1 (log2, double, (double x));
1753 # endif
1754 #elif defined GNULIB_POSIXCHECK
1755 # undef log2
1756 # if HAVE_RAW_DECL_LOG2
1757 _GL_WARN_ON_USE (log2, "log2 is unportable - "
1758 "use gnulib module log2 for portability");
1759 # endif
1760 #endif
1762 #if @GNULIB_LOG2L@
1763 # if @REPLACE_LOG2L@
1764 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1765 # undef log2l
1766 # define log2l rpl_log2l
1767 # endif
1768 _GL_FUNCDECL_RPL (log2l, long double, (long double x));
1769 _GL_CXXALIAS_RPL (log2l, long double, (long double x));
1770 # else
1771 # if !@HAVE_DECL_LOG2L@
1772 _GL_FUNCDECL_SYS (log2l, long double, (long double x));
1773 # endif
1774 _GL_CXXALIAS_SYS (log2l, long double, (long double x));
1775 # endif
1776 # if __GLIBC__ >= 2
1777 _GL_CXXALIASWARN (log2l);
1778 # endif
1779 #elif defined GNULIB_POSIXCHECK
1780 # undef log2l
1781 # if HAVE_RAW_DECL_LOG2L
1782 _GL_WARN_ON_USE (log2l, "log2l is unportable - "
1783 "use gnulib module log2l for portability");
1784 # endif
1785 #endif
1788 #if @GNULIB_LOGBF@
1789 # if @REPLACE_LOGBF@
1790 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1791 # undef logbf
1792 # define logbf rpl_logbf
1793 # endif
1794 _GL_FUNCDECL_RPL (logbf, float, (float x));
1795 _GL_CXXALIAS_RPL (logbf, float, (float x));
1796 # else
1797 # if !@HAVE_LOGBF@
1798 _GL_FUNCDECL_SYS (logbf, float, (float x));
1799 # endif
1800 _GL_CXXALIAS_SYS (logbf, float, (float x));
1801 # endif
1802 _GL_CXXALIASWARN (logbf);
1803 #elif defined GNULIB_POSIXCHECK
1804 # undef logbf
1805 # if HAVE_RAW_DECL_LOGBF
1806 _GL_WARN_ON_USE (logbf, "logbf is unportable - "
1807 "use gnulib module logbf for portability");
1808 # endif
1809 #endif
1811 #if @GNULIB_LOGB@
1812 # if @REPLACE_LOGB@
1813 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1814 # undef logb
1815 # define logb rpl_logb
1816 # endif
1817 _GL_FUNCDECL_RPL (logb, double, (double x));
1818 _GL_CXXALIAS_RPL (logb, double, (double x));
1819 # else
1820 # if !@HAVE_DECL_LOGB@
1821 _GL_FUNCDECL_SYS (logb, double, (double x));
1822 # endif
1823 _GL_CXXALIAS_SYS (logb, double, (double x));
1824 # endif
1825 # if __GLIBC__ >= 2
1826 _GL_CXXALIASWARN1 (logb, double, (double x));
1827 # endif
1828 #elif defined GNULIB_POSIXCHECK
1829 # undef logb
1830 # if HAVE_RAW_DECL_LOGB
1831 _GL_WARN_ON_USE (logb, "logb is unportable - "
1832 "use gnulib module logb for portability");
1833 # endif
1834 #endif
1836 #if @GNULIB_LOGBL@
1837 # if @REPLACE_LOGBL@
1838 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1839 # undef logbl
1840 # define logbl rpl_logbl
1841 # endif
1842 _GL_FUNCDECL_RPL (logbl, long double, (long double x));
1843 _GL_CXXALIAS_RPL (logbl, long double, (long double x));
1844 # else
1845 # if !@HAVE_LOGBL@
1846 _GL_FUNCDECL_SYS (logbl, long double, (long double x));
1847 # endif
1848 _GL_CXXALIAS_SYS (logbl, long double, (long double x));
1849 # endif
1850 # if __GLIBC__ >= 2
1851 _GL_CXXALIASWARN (logbl);
1852 # endif
1853 #elif defined GNULIB_POSIXCHECK
1854 # undef logbl
1855 # if HAVE_RAW_DECL_LOGBL
1856 _GL_WARN_ON_USE (logbl, "logbl is unportable - "
1857 "use gnulib module logbl for portability");
1858 # endif
1859 #endif
1862 #if @GNULIB_MODFF@
1863 # if @REPLACE_MODFF@
1864 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1865 # undef modff
1866 # define modff rpl_modff
1867 # endif
1868 _GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
1869 _GL_CXXALIAS_RPL (modff, float, (float x, float *iptr));
1870 # else
1871 # if !@HAVE_MODFF@
1872 # undef modff
1873 _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
1874 # endif
1875 _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
1876 # endif
1877 _GL_CXXALIASWARN (modff);
1878 #elif defined GNULIB_POSIXCHECK
1879 # undef modff
1880 # if HAVE_RAW_DECL_MODFF
1881 _GL_WARN_ON_USE (modff, "modff is unportable - "
1882 "use gnulib module modff for portability");
1883 # endif
1884 #endif
1886 #if @GNULIB_MODF@
1887 # if @REPLACE_MODF@
1888 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1889 # undef modf
1890 # define modf rpl_modf
1891 # endif
1892 _GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2)));
1893 _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
1894 # else
1895 _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
1896 # endif
1897 # if __GLIBC__ >= 2
1898 _GL_CXXALIASWARN1 (modf, double, (double x, double *iptr));
1899 # endif
1900 #elif defined GNULIB_POSIXCHECK
1901 # undef modf
1902 # if HAVE_RAW_DECL_MODF
1903 _GL_WARN_ON_USE (modf, "modf has portability problems - "
1904 "use gnulib module modf for portability");
1905 # endif
1906 #endif
1908 #if @GNULIB_MODFL@
1909 # if @REPLACE_MODFL@
1910 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1911 # undef modfl
1912 # define modfl rpl_modfl
1913 # endif
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));
1917 # else
1918 # if !@HAVE_MODFL@
1919 # undef modfl
1920 _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
1921 _GL_ARG_NONNULL ((2)));
1922 # endif
1923 _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
1924 # endif
1925 # if __GLIBC__ >= 2
1926 _GL_CXXALIASWARN (modfl);
1927 # endif
1928 #elif defined GNULIB_POSIXCHECK
1929 # undef modfl
1930 # if HAVE_RAW_DECL_MODFL
1931 _GL_WARN_ON_USE (modfl, "modfl is unportable - "
1932 "use gnulib module modfl for portability");
1933 # endif
1934 #endif
1937 #if @GNULIB_POWF@
1938 # if !@HAVE_POWF@
1939 # undef powf
1940 _GL_FUNCDECL_SYS (powf, float, (float x, float y));
1941 # endif
1942 _GL_CXXALIAS_SYS (powf, float, (float x, float y));
1943 _GL_CXXALIASWARN (powf);
1944 #elif defined GNULIB_POSIXCHECK
1945 # undef powf
1946 # if HAVE_RAW_DECL_POWF
1947 _GL_WARN_ON_USE (powf, "powf is unportable - "
1948 "use gnulib module powf for portability");
1949 # endif
1950 #endif
1953 #if @GNULIB_REMAINDERF@
1954 # if @REPLACE_REMAINDERF@
1955 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1956 # undef remainderf
1957 # define remainderf rpl_remainderf
1958 # endif
1959 _GL_FUNCDECL_RPL (remainderf, float, (float x, float y));
1960 _GL_CXXALIAS_RPL (remainderf, float, (float x, float y));
1961 # else
1962 # if !@HAVE_REMAINDERF@
1963 _GL_FUNCDECL_SYS (remainderf, float, (float x, float y));
1964 # endif
1965 _GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
1966 # endif
1967 _GL_CXXALIASWARN (remainderf);
1968 #elif defined GNULIB_POSIXCHECK
1969 # undef remainderf
1970 # if HAVE_RAW_DECL_REMAINDERF
1971 _GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
1972 "use gnulib module remainderf for portability");
1973 # endif
1974 #endif
1976 #if @GNULIB_REMAINDER@
1977 # if @REPLACE_REMAINDER@
1978 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1979 # undef remainder
1980 # define remainder rpl_remainder
1981 # endif
1982 _GL_FUNCDECL_RPL (remainder, double, (double x, double y));
1983 _GL_CXXALIAS_RPL (remainder, double, (double x, double y));
1984 # else
1985 # if !@HAVE_REMAINDER@ || !@HAVE_DECL_REMAINDER@
1986 _GL_FUNCDECL_SYS (remainder, double, (double x, double y));
1987 # endif
1988 _GL_CXXALIAS_SYS (remainder, double, (double x, double y));
1989 # endif
1990 # if __GLIBC__ >= 2
1991 _GL_CXXALIASWARN1 (remainder, double, (double x, double y));
1992 # endif
1993 #elif defined GNULIB_POSIXCHECK
1994 # undef remainder
1995 # if HAVE_RAW_DECL_REMAINDER
1996 _GL_WARN_ON_USE (remainder, "remainder is unportable - "
1997 "use gnulib module remainder for portability");
1998 # endif
1999 #endif
2001 #if @GNULIB_REMAINDERL@
2002 # if @REPLACE_REMAINDERL@
2003 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2004 # undef remainderl
2005 # define remainderl rpl_remainderl
2006 # endif
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));
2009 # else
2010 # if !@HAVE_DECL_REMAINDERL@
2011 # undef remainderl
2012 # if !(defined __cplusplus && defined _AIX)
2013 _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
2014 # endif
2015 # endif
2016 _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
2017 # endif
2018 # if __GLIBC__ >= 2
2019 _GL_CXXALIASWARN (remainderl);
2020 # endif
2021 #elif defined GNULIB_POSIXCHECK
2022 # undef remainderl
2023 # if HAVE_RAW_DECL_REMAINDERL
2024 _GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
2025 "use gnulib module remainderl for portability");
2026 # endif
2027 #endif
2030 #if @GNULIB_RINTF@
2031 # if !@HAVE_DECL_RINTF@
2032 _GL_FUNCDECL_SYS (rintf, float, (float x));
2033 # endif
2034 _GL_CXXALIAS_SYS (rintf, float, (float x));
2035 _GL_CXXALIASWARN (rintf);
2036 #elif defined GNULIB_POSIXCHECK
2037 # undef rintf
2038 # if HAVE_RAW_DECL_RINTF
2039 _GL_WARN_ON_USE (rintf, "rintf is unportable - "
2040 "use gnulib module rintf for portability");
2041 # endif
2042 #endif
2044 #if @GNULIB_RINT@
2045 # if !@HAVE_RINT@
2046 _GL_FUNCDECL_SYS (rint, double, (double x));
2047 # endif
2048 _GL_CXXALIAS_SYS (rint, double, (double x));
2049 # if __GLIBC__ >= 2
2050 _GL_CXXALIASWARN1 (rint, double, (double x));
2051 # endif
2052 #elif defined GNULIB_POSIXCHECK
2053 # undef rint
2054 # if HAVE_RAW_DECL_RINT
2055 _GL_WARN_ON_USE (rint, "rint is unportable - "
2056 "use gnulib module rint for portability");
2057 # endif
2058 #endif
2060 #if @GNULIB_RINTL@
2061 # if @REPLACE_RINTL@
2062 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2063 # undef rintl
2064 # define rintl rpl_rintl
2065 # endif
2066 _GL_FUNCDECL_RPL (rintl, long double, (long double x));
2067 _GL_CXXALIAS_RPL (rintl, long double, (long double x));
2068 # else
2069 # if !@HAVE_RINTL@
2070 _GL_FUNCDECL_SYS (rintl, long double, (long double x));
2071 # endif
2072 _GL_CXXALIAS_SYS (rintl, long double, (long double x));
2073 # endif
2074 # if __GLIBC__ >= 2
2075 _GL_CXXALIASWARN (rintl);
2076 # endif
2077 #elif defined GNULIB_POSIXCHECK
2078 # undef rintl
2079 # if HAVE_RAW_DECL_RINTL
2080 _GL_WARN_ON_USE (rintl, "rintl is unportable - "
2081 "use gnulib module rintl for portability");
2082 # endif
2083 #endif
2086 #if @GNULIB_ROUNDF@
2087 # if @REPLACE_ROUNDF@
2088 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2089 # undef roundf
2090 # define roundf rpl_roundf
2091 # endif
2092 _GL_FUNCDECL_RPL (roundf, float, (float x));
2093 _GL_CXXALIAS_RPL (roundf, float, (float x));
2094 # else
2095 # if !@HAVE_DECL_ROUNDF@
2096 _GL_FUNCDECL_SYS (roundf, float, (float x));
2097 # endif
2098 _GL_CXXALIAS_SYS (roundf, float, (float x));
2099 # endif
2100 _GL_CXXALIASWARN (roundf);
2101 #elif defined GNULIB_POSIXCHECK
2102 # undef roundf
2103 # if HAVE_RAW_DECL_ROUNDF
2104 _GL_WARN_ON_USE (roundf, "roundf is unportable - "
2105 "use gnulib module roundf for portability");
2106 # endif
2107 #endif
2109 #if @GNULIB_ROUND@
2110 # if @REPLACE_ROUND@
2111 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2112 # undef round
2113 # define round rpl_round
2114 # endif
2115 _GL_FUNCDECL_RPL (round, double, (double x));
2116 _GL_CXXALIAS_RPL (round, double, (double x));
2117 # else
2118 # if !@HAVE_DECL_ROUND@
2119 _GL_FUNCDECL_SYS (round, double, (double x));
2120 # endif
2121 _GL_CXXALIAS_SYS (round, double, (double x));
2122 # endif
2123 # if __GLIBC__ >= 2
2124 _GL_CXXALIASWARN1 (round, double, (double x));
2125 # endif
2126 #elif defined GNULIB_POSIXCHECK
2127 # undef round
2128 # if HAVE_RAW_DECL_ROUND
2129 _GL_WARN_ON_USE (round, "round is unportable - "
2130 "use gnulib module round for portability");
2131 # endif
2132 #endif
2134 #if @GNULIB_ROUNDL@
2135 # if @REPLACE_ROUNDL@
2136 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2137 # undef roundl
2138 # define roundl rpl_roundl
2139 # endif
2140 _GL_FUNCDECL_RPL (roundl, long double, (long double x));
2141 _GL_CXXALIAS_RPL (roundl, long double, (long double x));
2142 # else
2143 # if !@HAVE_DECL_ROUNDL@
2144 # undef roundl
2145 # if !(defined __cplusplus && defined _AIX)
2146 _GL_FUNCDECL_SYS (roundl, long double, (long double x));
2147 # endif
2148 # endif
2149 _GL_CXXALIAS_SYS (roundl, long double, (long double x));
2150 # endif
2151 # if __GLIBC__ >= 2
2152 _GL_CXXALIASWARN (roundl);
2153 # endif
2154 #elif defined GNULIB_POSIXCHECK
2155 # undef roundl
2156 # if HAVE_RAW_DECL_ROUNDL
2157 _GL_WARN_ON_USE (roundl, "roundl is unportable - "
2158 "use gnulib module roundl for portability");
2159 # endif
2160 #endif
2163 #if @GNULIB_SINF@
2164 # if @REPLACE_SINF@
2165 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2166 # undef sinf
2167 # define sinf rpl_sinf
2168 # endif
2169 _GL_FUNCDECL_RPL (sinf, float, (float x));
2170 _GL_CXXALIAS_RPL (sinf, float, (float x));
2171 # else
2172 # if !@HAVE_SINF@
2173 # undef sinf
2174 _GL_FUNCDECL_SYS (sinf, float, (float x));
2175 # endif
2176 _GL_CXXALIAS_SYS (sinf, float, (float x));
2177 # endif
2178 _GL_CXXALIASWARN (sinf);
2179 #elif defined GNULIB_POSIXCHECK
2180 # undef sinf
2181 # if HAVE_RAW_DECL_SINF
2182 _GL_WARN_ON_USE (sinf, "sinf is unportable - "
2183 "use gnulib module sinf for portability");
2184 # endif
2185 #endif
2187 #if @GNULIB_SINL@
2188 # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
2189 # undef sinl
2190 _GL_FUNCDECL_SYS (sinl, long double, (long double x));
2191 # endif
2192 _GL_CXXALIAS_SYS (sinl, long double, (long double x));
2193 # if __GLIBC__ >= 2
2194 _GL_CXXALIASWARN (sinl);
2195 # endif
2196 #elif defined GNULIB_POSIXCHECK
2197 # undef sinl
2198 # if HAVE_RAW_DECL_SINL
2199 _GL_WARN_ON_USE (sinl, "sinl is unportable - "
2200 "use gnulib module sinl for portability");
2201 # endif
2202 #endif
2205 #if @GNULIB_SINHF@
2206 # if @REPLACE_SINHF@
2207 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2208 # undef sinhf
2209 # define sinhf rpl_sinhf
2210 # endif
2211 _GL_FUNCDECL_RPL (sinhf, float, (float x));
2212 _GL_CXXALIAS_RPL (sinhf, float, (float x));
2213 # else
2214 # if !@HAVE_SINHF@
2215 # undef sinhf
2216 _GL_FUNCDECL_SYS (sinhf, float, (float x));
2217 # endif
2218 _GL_CXXALIAS_SYS (sinhf, float, (float x));
2219 # endif
2220 _GL_CXXALIASWARN (sinhf);
2221 #elif defined GNULIB_POSIXCHECK
2222 # undef sinhf
2223 # if HAVE_RAW_DECL_SINHF
2224 _GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
2225 "use gnulib module sinhf for portability");
2226 # endif
2227 #endif
2230 #if @GNULIB_SQRTF@
2231 # if @REPLACE_SQRTF@
2232 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2233 # undef sqrtf
2234 # define sqrtf rpl_sqrtf
2235 # endif
2236 _GL_FUNCDECL_RPL (sqrtf, float, (float x));
2237 _GL_CXXALIAS_RPL (sqrtf, float, (float x));
2238 # else
2239 # if !@HAVE_SQRTF@
2240 # undef sqrtf
2241 _GL_FUNCDECL_SYS (sqrtf, float, (float x));
2242 # endif
2243 _GL_CXXALIAS_SYS (sqrtf, float, (float x));
2244 # endif
2245 _GL_CXXALIASWARN (sqrtf);
2246 #elif defined GNULIB_POSIXCHECK
2247 # undef sqrtf
2248 # if HAVE_RAW_DECL_SQRTF
2249 _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
2250 "use gnulib module sqrtf for portability");
2251 # endif
2252 #endif
2254 #if @GNULIB_SQRTL@
2255 # if @REPLACE_SQRTL@
2256 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2257 # undef sqrtl
2258 # define sqrtl rpl_sqrtl
2259 # endif
2260 _GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
2261 _GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
2262 # else
2263 # if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
2264 # undef sqrtl
2265 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
2266 # endif
2267 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
2268 # endif
2269 # if __GLIBC__ >= 2
2270 _GL_CXXALIASWARN (sqrtl);
2271 # endif
2272 #elif defined GNULIB_POSIXCHECK
2273 # undef sqrtl
2274 # if HAVE_RAW_DECL_SQRTL
2275 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
2276 "use gnulib module sqrtl for portability");
2277 # endif
2278 #endif
2281 #if @GNULIB_TANF@
2282 # if @REPLACE_TANF@
2283 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2284 # undef tanf
2285 # define tanf rpl_tanf
2286 # endif
2287 _GL_FUNCDECL_RPL (tanf, float, (float x));
2288 _GL_CXXALIAS_RPL (tanf, float, (float x));
2289 # else
2290 # if !@HAVE_TANF@
2291 # undef tanf
2292 _GL_FUNCDECL_SYS (tanf, float, (float x));
2293 # endif
2294 _GL_CXXALIAS_SYS (tanf, float, (float x));
2295 # endif
2296 _GL_CXXALIASWARN (tanf);
2297 #elif defined GNULIB_POSIXCHECK
2298 # undef tanf
2299 # if HAVE_RAW_DECL_TANF
2300 _GL_WARN_ON_USE (tanf, "tanf is unportable - "
2301 "use gnulib module tanf for portability");
2302 # endif
2303 #endif
2305 #if @GNULIB_TANL@
2306 # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@
2307 # undef tanl
2308 _GL_FUNCDECL_SYS (tanl, long double, (long double x));
2309 # endif
2310 _GL_CXXALIAS_SYS (tanl, long double, (long double x));
2311 # if __GLIBC__ >= 2
2312 _GL_CXXALIASWARN (tanl);
2313 # endif
2314 #elif defined GNULIB_POSIXCHECK
2315 # undef tanl
2316 # if HAVE_RAW_DECL_TANL
2317 _GL_WARN_ON_USE (tanl, "tanl is unportable - "
2318 "use gnulib module tanl for portability");
2319 # endif
2320 #endif
2323 #if @GNULIB_TANHF@
2324 # if @REPLACE_TANHF@
2325 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2326 # undef tanhf
2327 # define tanhf rpl_tanhf
2328 # endif
2329 _GL_FUNCDECL_RPL (tanhf, float, (float x));
2330 _GL_CXXALIAS_RPL (tanhf, float, (float x));
2331 # else
2332 # if !@HAVE_TANHF@
2333 # undef tanhf
2334 _GL_FUNCDECL_SYS (tanhf, float, (float x));
2335 # endif
2336 _GL_CXXALIAS_SYS (tanhf, float, (float x));
2337 # endif
2338 _GL_CXXALIASWARN (tanhf);
2339 #elif defined GNULIB_POSIXCHECK
2340 # undef tanhf
2341 # if HAVE_RAW_DECL_TANHF
2342 _GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
2343 "use gnulib module tanhf for portability");
2344 # endif
2345 #endif
2348 #if @GNULIB_TRUNCF@
2349 # if @REPLACE_TRUNCF@
2350 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2351 # undef truncf
2352 # define truncf rpl_truncf
2353 # endif
2354 _GL_FUNCDECL_RPL (truncf, float, (float x));
2355 _GL_CXXALIAS_RPL (truncf, float, (float x));
2356 # else
2357 # if !@HAVE_DECL_TRUNCF@
2358 _GL_FUNCDECL_SYS (truncf, float, (float x));
2359 # endif
2360 _GL_CXXALIAS_SYS (truncf, float, (float x));
2361 # endif
2362 _GL_CXXALIASWARN (truncf);
2363 #elif defined GNULIB_POSIXCHECK
2364 # undef truncf
2365 # if HAVE_RAW_DECL_TRUNCF
2366 _GL_WARN_ON_USE (truncf, "truncf is unportable - "
2367 "use gnulib module truncf for portability");
2368 # endif
2369 #endif
2371 #if @GNULIB_TRUNC@
2372 # if @REPLACE_TRUNC@
2373 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2374 # undef trunc
2375 # define trunc rpl_trunc
2376 # endif
2377 _GL_FUNCDECL_RPL (trunc, double, (double x));
2378 _GL_CXXALIAS_RPL (trunc, double, (double x));
2379 # else
2380 # if !@HAVE_DECL_TRUNC@
2381 _GL_FUNCDECL_SYS (trunc, double, (double x));
2382 # endif
2383 _GL_CXXALIAS_SYS (trunc, double, (double x));
2384 # endif
2385 # if __GLIBC__ >= 2
2386 _GL_CXXALIASWARN1 (trunc, double, (double x));
2387 # endif
2388 #elif defined GNULIB_POSIXCHECK
2389 # undef trunc
2390 # if HAVE_RAW_DECL_TRUNC
2391 _GL_WARN_ON_USE (trunc, "trunc is unportable - "
2392 "use gnulib module trunc for portability");
2393 # endif
2394 #endif
2396 #if @GNULIB_TRUNCL@
2397 # if @REPLACE_TRUNCL@
2398 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2399 # undef truncl
2400 # define truncl rpl_truncl
2401 # endif
2402 _GL_FUNCDECL_RPL (truncl, long double, (long double x));
2403 _GL_CXXALIAS_RPL (truncl, long double, (long double x));
2404 # else
2405 # if !@HAVE_DECL_TRUNCL@
2406 _GL_FUNCDECL_SYS (truncl, long double, (long double x));
2407 # endif
2408 _GL_CXXALIAS_SYS (truncl, long double, (long double x));
2409 # endif
2410 # if __GLIBC__ >= 2
2411 _GL_CXXALIASWARN (truncl);
2412 # endif
2413 #elif defined GNULIB_POSIXCHECK
2414 # undef truncl
2415 # if HAVE_RAW_DECL_TRUNCL
2416 _GL_WARN_ON_USE (truncl, "truncl is unportable - "
2417 "use gnulib module truncl for portability");
2418 # endif
2419 #endif
2422 #if @GNULIB_MDA_Y0@
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)
2428 # undef y0
2429 # define y0 _y0
2430 # endif
2431 _GL_CXXALIAS_MDA (y0, double, (double x));
2432 # else
2433 _GL_CXXALIAS_SYS (y0, double, (double x));
2434 # endif
2435 _GL_CXXALIASWARN (y0);
2436 #endif
2438 #if @GNULIB_MDA_Y1@
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)
2444 # undef y1
2445 # define y1 _y1
2446 # endif
2447 _GL_CXXALIAS_MDA (y1, double, (double x));
2448 # else
2449 _GL_CXXALIAS_SYS (y1, double, (double x));
2450 # endif
2451 _GL_CXXALIASWARN (y1);
2452 #endif
2454 #if @GNULIB_MDA_YN@
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)
2460 # undef yn
2461 # define yn _yn
2462 # endif
2463 _GL_CXXALIAS_MDA (yn, double, (int n, double x));
2464 # else
2465 _GL_CXXALIAS_SYS (yn, double, (int n, double x));
2466 # endif
2467 _GL_CXXALIASWARN (yn);
2468 #endif
2471 /* Definitions of function-like macros come here, after the function
2472 declarations. */
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);
2480 # undef isfinite
2481 # define isfinite(x) \
2482 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
2483 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
2484 gl_isfinitef (x))
2485 # endif
2486 # ifdef __cplusplus
2487 # if defined isfinite || defined GNULIB_NAMESPACE
2488 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
2489 # undef 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
2492 functions. */
2493 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool)
2494 # define isfinite rpl_isfinite
2495 # define GNULIB_NAMESPACE_LACKS_ISFINITE 1
2496 # else
2497 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool)
2498 # endif
2499 # endif
2500 # endif
2501 #elif defined GNULIB_POSIXCHECK
2502 # if defined isfinite
2503 _GL_WARN_REAL_FLOATING_DECL (isfinite);
2504 # undef isfinite
2505 # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
2506 # endif
2507 #endif
2510 #if @GNULIB_ISINF@
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);
2515 # undef isinf
2516 # define isinf(x) \
2517 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
2518 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
2519 gl_isinff (x))
2520 # endif
2521 # ifdef __cplusplus
2522 # if defined isinf || defined GNULIB_NAMESPACE
2523 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
2524 # undef 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
2527 functions. */
2528 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, rpl_isinf, bool)
2529 # define isinf rpl_isinf
2530 # define GNULIB_NAMESPACE_LACKS_ISINF 1
2531 # else
2532 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool)
2533 # endif
2534 # endif
2535 # endif
2536 #elif defined GNULIB_POSIXCHECK
2537 # if defined isinf
2538 _GL_WARN_REAL_FLOATING_DECL (isinf);
2539 # undef isinf
2540 # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
2541 # endif
2542 #endif
2545 #if @GNULIB_ISNANF@
2546 /* Test for NaN for 'float' numbers. */
2547 # if @HAVE_ISNANF@
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);
2552 # else
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. */
2558 # undef isnanf
2559 # define isnanf(x) __builtin_isnan ((float)(x))
2560 # elif defined isnan
2561 # undef isnanf
2562 # define isnanf(x) isnan ((float)(x))
2563 # endif
2564 # endif
2565 # else
2566 /* Test whether X is a NaN. */
2567 # undef isnanf
2568 # define isnanf rpl_isnanf
2569 _GL_EXTERN_C int isnanf (float x);
2570 # endif
2571 #endif
2573 #if @GNULIB_ISNAND@
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. */
2577 # if @HAVE_ISNAND@
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);
2582 # else
2583 /* The original <math.h> included above provides a declaration of isnan
2584 macro. */
2585 # if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2586 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. */
2587 # undef isnand
2588 # define isnand(x) __builtin_isnan ((double)(x))
2589 # else
2590 # undef isnand
2591 # define isnand(x) isnan ((double)(x))
2592 # endif
2593 # endif
2594 # else
2595 /* Test whether X is a NaN. */
2596 # undef isnand
2597 # define isnand rpl_isnand
2598 _GL_EXTERN_C int isnand (double x);
2599 # endif
2600 #endif
2602 #if @GNULIB_ISNANL@
2603 /* Test for NaN for 'long double' numbers. */
2604 # if @HAVE_ISNANL@
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. */
2610 # undef isnanl
2611 # define isnanl(x) __builtin_isnan ((long double)(x))
2612 # elif defined isnan
2613 # undef isnanl
2614 # define isnanl(x) isnan ((long double)(x))
2615 # endif
2616 # else
2617 /* Test whether X is a NaN. */
2618 # undef isnanl
2619 # define isnanl rpl_isnanl
2620 _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
2621 # endif
2622 #endif
2624 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */
2625 #if @GNULIB_ISNAN@
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))
2633 # else
2634 _GL_EXTERN_C int rpl_isnanf (float x);
2635 # define gl_isnan_f(x) rpl_isnanf (x)
2636 # endif
2637 # if @HAVE_ISNAND@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2638 # define gl_isnan_d(x) __builtin_isnan ((double)(x))
2639 # else
2640 _GL_EXTERN_C int rpl_isnand (double x);
2641 # define gl_isnan_d(x) rpl_isnand (x)
2642 # endif
2643 # if @HAVE_ISNANL@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2644 # define gl_isnan_l(x) __builtin_isnan ((long double)(x))
2645 # else
2646 _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
2647 # define gl_isnan_l(x) rpl_isnanl (x)
2648 # endif
2649 # undef isnan
2650 # define isnan(x) \
2651 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
2652 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
2653 gl_isnan_f (x))
2654 # elif (__GNUC__ >= 4) || (__clang_major__ >= 4)
2655 # undef isnan
2656 # define isnan(x) \
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)))
2660 # endif
2661 # ifdef __cplusplus
2662 # if defined isnan || defined GNULIB_NAMESPACE
2663 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
2664 # undef 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
2667 functions. */
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
2676 # else
2677 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool)
2678 # endif
2679 # endif
2680 # else
2681 /* Ensure isnan is a macro. */
2682 # ifndef isnan
2683 # define isnan isnan
2684 # endif
2685 # endif
2686 #elif defined GNULIB_POSIXCHECK
2687 # if defined isnan
2688 _GL_WARN_REAL_FLOATING_DECL (isnan);
2689 # undef isnan
2690 # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
2691 # endif
2692 #endif
2695 #if @GNULIB_SIGNBIT@
2696 # if (@REPLACE_SIGNBIT_USING_BUILTINS@ \
2697 && (!defined __cplusplus || __cplusplus < 201103))
2698 # undef signbit
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))
2704 # endif
2705 # if @REPLACE_SIGNBIT@ && !GNULIB_defined_signbit
2706 # undef 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) \
2716 __extension__ \
2717 ({ union { float _value; \
2718 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \
2719 } _m; \
2720 _m._value = (arg); \
2721 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \
2723 # endif
2724 # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
2725 # define gl_signbitd_OPTIMIZED_MACRO
2726 # define gl_signbitd(arg) \
2727 __extension__ \
2728 ({ union { double _value; \
2729 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \
2730 } _m; \
2731 _m._value = (arg); \
2732 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \
2734 # endif
2735 # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
2736 # define gl_signbitl_OPTIMIZED_MACRO
2737 # define gl_signbitl(arg) \
2738 __extension__ \
2739 ({ union { long double _value; \
2740 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
2741 } _m; \
2742 _m._value = (arg); \
2743 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \
2745 # endif
2746 # endif
2747 # define signbit(x) \
2748 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
2749 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
2750 gl_signbitf (x))
2751 # define GNULIB_defined_signbit 1
2752 # endif
2753 # ifdef __cplusplus
2754 # if defined signbit || defined GNULIB_NAMESPACE
2755 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
2756 # undef 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
2759 functions. */
2760 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, rpl_signbit, bool)
2761 # define signbit rpl_signbit
2762 # define GNULIB_NAMESPACE_LACKS_SIGNBIT 1
2763 # else
2764 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, signbit, bool)
2765 # endif
2766 # endif
2767 # endif
2768 #elif defined GNULIB_POSIXCHECK
2769 # if defined signbit
2770 _GL_WARN_REAL_FLOATING_DECL (signbit);
2771 # undef signbit
2772 # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
2773 # endif
2774 #endif
2777 #if @GNULIB_TOTALORDERF@
2778 # if @REPLACE_TOTALORDERF@
2779 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2780 # undef totalorderf
2781 # define totalorderf rpl_totalorderf
2782 # endif
2783 _GL_FUNCDECL_RPL (totalorderf, int, (float const *, float const *));
2784 _GL_CXXALIAS_RPL (totalorderf, int, (float const *, float const *));
2785 # else
2786 # if !@HAVE_TOTALORDERF@
2787 _GL_FUNCDECL_SYS (totalorderf, int, (float const *, float const *));
2788 # endif
2789 _GL_CXXALIAS_SYS (totalorderf, int, (float const *, float const *));
2790 # endif
2791 _GL_CXXALIASWARN (totalorderf);
2792 #elif defined GNULIB_POSIXCHECK
2793 # undef totalorderf
2794 # if HAVE_RAW_DECL_TOTALORDERF
2795 _GL_WARN_ON_USE (totalorderf, "totalorderf is unportable - "
2796 "use gnulib module totalorderf for portability");
2797 # endif
2798 #endif
2800 #if @GNULIB_TOTALORDER@
2801 # if @REPLACE_TOTALORDER@
2802 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2803 # undef totalorder
2804 # define totalorder rpl_totalorder
2805 # endif
2806 _GL_FUNCDECL_RPL (totalorder, int, (double const *, double const *));
2807 _GL_CXXALIAS_RPL (totalorder, int, (double const *, double const *));
2808 # else
2809 # if !@HAVE_TOTALORDER@
2810 _GL_FUNCDECL_SYS (totalorder, int, (double const *, double const *));
2811 # endif
2812 _GL_CXXALIAS_SYS (totalorder, int, (double const *, double const *));
2813 # endif
2814 # if __GLIBC__ >= 2
2815 _GL_CXXALIASWARN1 (totalorder, int, (double const *, double const *));
2816 # endif
2817 #elif defined GNULIB_POSIXCHECK
2818 # undef totalorder
2819 # if HAVE_RAW_DECL_TOTALORDER
2820 _GL_WARN_ON_USE (totalorder, "totalorder is unportable - "
2821 "use gnulib module totalorder for portability");
2822 # endif
2823 #endif
2825 #if @GNULIB_TOTALORDERL@
2826 # if @REPLACE_TOTALORDERL@
2827 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2828 # undef totalorderl
2829 # define totalorderl rpl_totalorderl
2830 # endif
2831 _GL_FUNCDECL_RPL (totalorderl, int,
2832 (long double const *, long double const *));
2833 _GL_CXXALIAS_RPL (totalorderl, int,
2834 (long double const *, long double const *));
2835 # else
2836 # if !@HAVE_TOTALORDERL@
2837 _GL_FUNCDECL_SYS (totalorderl, int,
2838 (long double const *, long double const *));
2839 # endif
2840 _GL_CXXALIAS_SYS (totalorderl, int,
2841 (long double const *, long double const *));
2842 # endif
2843 _GL_CXXALIASWARN (totalorderl);
2844 #elif defined GNULIB_POSIXCHECK
2845 # undef totalorderl
2846 # if HAVE_RAW_DECL_TOTALORDERL
2847 _GL_WARN_ON_USE (totalorderl, "totalorderl is unportable - "
2848 "use gnulib module totalorderl for portability");
2849 # endif
2850 #endif
2852 _GL_INLINE_HEADER_END
2854 #endif /* _@GUARD_PREFIX@_MATH_H */
2855 #endif /* _GL_INCLUDING_MATH_H */
2856 #endif /* _@GUARD_PREFIX@_MATH_H */
2857 #endif