Automatic date update in version.in
[binutils-gdb.git] / gnulib / import / math.in.h
bloba74a95da3e5090455028e97b04fb327b52875852
1 /* A GNU-like <math.h>.
3 Copyright (C) 2002-2003, 2007-2022 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 #ifndef _@GUARD_PREFIX@_MATH_H
20 #if __GNUC__ >= 3
21 @PRAGMA_SYSTEM_HEADER@
22 #endif
23 @PRAGMA_COLUMNS@
25 #if defined _GL_INCLUDING_MATH_H
26 /* Special invocation convention:
27 - On FreeBSD 12.2 we have a sequence of nested includes
28 <math.h> -> <stdlib.h> -> <sys/wait.h> -> <sys/types.h> -> <sys/select.h>
29 -> <signal.h> -> <pthread.h> -> <stdlib.h> -> <math.h>
30 In this situation, the functions are not yet declared, therefore we cannot
31 provide the C++ aliases. */
33 #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
35 #else
36 /* Normal invocation convention. */
38 /* The include_next requires a split double-inclusion guard. */
39 #define _GL_INCLUDING_MATH_H
40 #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
41 #undef _GL_INCLUDING_MATH_H
43 #ifndef _@GUARD_PREFIX@_MATH_H
44 #define _@GUARD_PREFIX@_MATH_H
46 /* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>. */
47 #if defined __VMS && ! defined NAN
48 # include <fp.h>
49 #endif
51 #ifndef _GL_INLINE_HEADER_BEGIN
52 #error "Please include config.h first."
53 #endif
54 _GL_INLINE_HEADER_BEGIN
55 #ifndef _GL_MATH_INLINE
56 # define _GL_MATH_INLINE _GL_INLINE
57 #endif
59 /* The __attribute__ feature is available in gcc versions 2.5 and later.
60 The attribute __const__ was added in gcc 2.95. */
61 #ifndef _GL_ATTRIBUTE_CONST
62 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__
63 # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
64 # else
65 # define _GL_ATTRIBUTE_CONST /* empty */
66 # endif
67 #endif
69 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
71 /* The definition of _GL_ARG_NONNULL is copied here. */
73 /* The definition of _GL_WARN_ON_USE is copied here. */
75 #ifdef __cplusplus
76 /* Helper macros to define type-generic function FUNC as overloaded functions,
77 rather than as macros like in C. POSIX declares these with an argument of
78 real-floating (that is, one of float, double, or long double). */
79 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \
80 static inline int \
81 _gl_cxx_ ## func ## f (float f) \
82 { \
83 return func (f); \
84 } \
85 static inline int \
86 _gl_cxx_ ## func ## d (double d) \
87 { \
88 return func (d); \
89 } \
90 static inline int \
91 _gl_cxx_ ## func ## l (long double l) \
92 { \
93 return func (l); \
95 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func,rpl_func,rettype) \
96 _GL_BEGIN_NAMESPACE \
97 inline rettype \
98 rpl_func (float f) \
99 { \
100 return _gl_cxx_ ## func ## f (f); \
102 inline rettype \
103 rpl_func (double d) \
105 return _gl_cxx_ ## func ## d (d); \
107 inline rettype \
108 rpl_func (long double l) \
110 return _gl_cxx_ ## func ## l (l); \
112 _GL_END_NAMESPACE
113 #endif
115 /* Helper macros to define a portability warning for the
116 classification macro FUNC called with VALUE. POSIX declares the
117 classification macros with an argument of real-floating (that is,
118 one of float, double, or long double). */
119 #define _GL_WARN_REAL_FLOATING_DECL(func) \
120 _GL_MATH_INLINE int \
121 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \
122 "use gnulib module " #func " for portability") \
123 rpl_ ## func ## f (float f) \
125 return func (f); \
127 _GL_MATH_INLINE int \
128 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \
129 "use gnulib module " #func " for portability") \
130 rpl_ ## func ## d (double d) \
132 return func (d); \
134 _GL_MATH_INLINE int \
135 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - " \
136 "use gnulib module " #func " for portability") \
137 rpl_ ## func ## l (long double l) \
139 return func (l); \
141 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
142 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \
143 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \
144 : rpl_ ## func ## l (value))
147 #if @REPLACE_ITOLD@
148 /* Pull in a function that fixes the 'int' to 'long double' conversion
149 of glibc 2.7. */
150 _GL_EXTERN_C void _Qp_itoq (long double *, int);
151 static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
152 #endif
155 /* POSIX allows platforms that don't support NAN. But all major
156 machines in the past 15 years have supported something close to
157 IEEE NaN, so we define this unconditionally. We also must define
158 it on platforms like Solaris 10, where NAN is present but defined
159 as a function pointer rather than a floating point constant. */
160 #if !defined NAN || @REPLACE_NAN@
161 # if !GNULIB_defined_NAN
162 # undef NAN
163 /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
164 choke on the expression 0.0 / 0.0. */
165 # if defined __DECC || defined _MSC_VER
166 _GL_MATH_INLINE float
167 _NaN ()
169 static float zero = 0.0f;
170 return zero / zero;
172 # define NAN (_NaN())
173 # else
174 # define NAN (0.0f / 0.0f)
175 # endif
176 # define GNULIB_defined_NAN 1
177 # endif
178 #endif
180 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
181 than a floating point constant. */
182 #if @REPLACE_HUGE_VAL@
183 # undef HUGE_VALF
184 # define HUGE_VALF (1.0f / 0.0f)
185 # undef HUGE_VAL
186 # define HUGE_VAL (1.0 / 0.0)
187 # undef HUGE_VALL
188 # define HUGE_VALL (1.0L / 0.0L)
189 #endif
191 /* HUGE_VALF is a 'float' Infinity. */
192 #ifndef HUGE_VALF
193 # if defined _MSC_VER
194 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f. */
195 # define HUGE_VALF (1e25f * 1e25f)
196 # else
197 # define HUGE_VALF (1.0f / 0.0f)
198 # endif
199 #endif
201 /* HUGE_VAL is a 'double' Infinity. */
202 #ifndef HUGE_VAL
203 # if defined _MSC_VER
204 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0. */
205 # define HUGE_VAL (1e250 * 1e250)
206 # else
207 # define HUGE_VAL (1.0 / 0.0)
208 # endif
209 #endif
211 /* HUGE_VALL is a 'long double' Infinity. */
212 #ifndef HUGE_VALL
213 # if defined _MSC_VER
214 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L. */
215 # define HUGE_VALL (1e250L * 1e250L)
216 # else
217 # define HUGE_VALL (1.0L / 0.0L)
218 # endif
219 #endif
222 #if defined FP_ILOGB0 && defined FP_ILOGBNAN
223 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are correct. */
224 # if defined __HAIKU__
225 /* Haiku: match what ilogb() does */
226 # undef FP_ILOGB0
227 # undef FP_ILOGBNAN
228 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
229 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
230 # endif
231 #else
232 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */
233 # if defined __NetBSD__ || defined __sgi
234 /* NetBSD, IRIX 6.5: match what ilogb() does */
235 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
236 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
237 # elif defined _AIX
238 /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */
239 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
240 # define FP_ILOGBNAN 2147483647 /* INT_MAX */
241 # elif defined __sun
242 /* Solaris 9: match what ilogb() does */
243 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
244 # define FP_ILOGBNAN 2147483647 /* INT_MAX */
245 # else
246 /* Gnulib defined values. */
247 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
248 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
249 # endif
250 #endif
253 #if @GNULIB_ACOSF@
254 # if @REPLACE_ACOSF@
255 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
256 # undef acosf
257 # define acosf rpl_acosf
258 # endif
259 _GL_FUNCDECL_RPL (acosf, float, (float x));
260 _GL_CXXALIAS_RPL (acosf, float, (float x));
261 # else
262 # if !@HAVE_ACOSF@
263 # undef acosf
264 _GL_FUNCDECL_SYS (acosf, float, (float x));
265 # endif
266 _GL_CXXALIAS_SYS (acosf, float, (float x));
267 # endif
268 _GL_CXXALIASWARN (acosf);
269 #elif defined GNULIB_POSIXCHECK
270 # undef acosf
271 # if HAVE_RAW_DECL_ACOSF
272 _GL_WARN_ON_USE (acosf, "acosf is unportable - "
273 "use gnulib module acosf for portability");
274 # endif
275 #endif
277 #if @GNULIB_ACOSL@
278 # if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@
279 # undef acosl
280 _GL_FUNCDECL_SYS (acosl, long double, (long double x));
281 # endif
282 _GL_CXXALIAS_SYS (acosl, long double, (long double x));
283 # if __GLIBC__ >= 2
284 _GL_CXXALIASWARN (acosl);
285 # endif
286 #elif defined GNULIB_POSIXCHECK
287 # undef acosl
288 # if HAVE_RAW_DECL_ACOSL
289 _GL_WARN_ON_USE (acosl, "acosl is unportable - "
290 "use gnulib module acosl for portability");
291 # endif
292 #endif
295 #if @GNULIB_ASINF@
296 # if @REPLACE_ASINF@
297 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
298 # undef asinf
299 # define asinf rpl_asinf
300 # endif
301 _GL_FUNCDECL_RPL (asinf, float, (float x));
302 _GL_CXXALIAS_RPL (asinf, float, (float x));
303 # else
304 # if !@HAVE_ASINF@
305 # undef asinf
306 _GL_FUNCDECL_SYS (asinf, float, (float x));
307 # endif
308 _GL_CXXALIAS_SYS (asinf, float, (float x));
309 # endif
310 _GL_CXXALIASWARN (asinf);
311 #elif defined GNULIB_POSIXCHECK
312 # undef asinf
313 # if HAVE_RAW_DECL_ASINF
314 _GL_WARN_ON_USE (asinf, "asinf is unportable - "
315 "use gnulib module asinf for portability");
316 # endif
317 #endif
319 #if @GNULIB_ASINL@
320 # if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@
321 # undef asinl
322 _GL_FUNCDECL_SYS (asinl, long double, (long double x));
323 # endif
324 _GL_CXXALIAS_SYS (asinl, long double, (long double x));
325 # if __GLIBC__ >= 2
326 _GL_CXXALIASWARN (asinl);
327 # endif
328 #elif defined GNULIB_POSIXCHECK
329 # undef asinl
330 # if HAVE_RAW_DECL_ASINL
331 _GL_WARN_ON_USE (asinl, "asinl is unportable - "
332 "use gnulib module asinl for portability");
333 # endif
334 #endif
337 #if @GNULIB_ATANF@
338 # if @REPLACE_ATANF@
339 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
340 # undef atanf
341 # define atanf rpl_atanf
342 # endif
343 _GL_FUNCDECL_RPL (atanf, float, (float x));
344 _GL_CXXALIAS_RPL (atanf, float, (float x));
345 # else
346 # if !@HAVE_ATANF@
347 # undef atanf
348 _GL_FUNCDECL_SYS (atanf, float, (float x));
349 # endif
350 _GL_CXXALIAS_SYS (atanf, float, (float x));
351 # endif
352 _GL_CXXALIASWARN (atanf);
353 #elif defined GNULIB_POSIXCHECK
354 # undef atanf
355 # if HAVE_RAW_DECL_ATANF
356 _GL_WARN_ON_USE (atanf, "atanf is unportable - "
357 "use gnulib module atanf for portability");
358 # endif
359 #endif
361 #if @GNULIB_ATANL@
362 # if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@
363 # undef atanl
364 _GL_FUNCDECL_SYS (atanl, long double, (long double x));
365 # endif
366 _GL_CXXALIAS_SYS (atanl, long double, (long double x));
367 # if __GLIBC__ >= 2
368 _GL_CXXALIASWARN (atanl);
369 # endif
370 #elif defined GNULIB_POSIXCHECK
371 # undef atanl
372 # if HAVE_RAW_DECL_ATANL
373 _GL_WARN_ON_USE (atanl, "atanl is unportable - "
374 "use gnulib module atanl for portability");
375 # endif
376 #endif
379 #if @GNULIB_ATAN2F@
380 # if @REPLACE_ATAN2F@
381 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
382 # undef atan2f
383 # define atan2f rpl_atan2f
384 # endif
385 _GL_FUNCDECL_RPL (atan2f, float, (float y, float x));
386 _GL_CXXALIAS_RPL (atan2f, float, (float y, float x));
387 # else
388 # if !@HAVE_ATAN2F@
389 # undef atan2f
390 _GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
391 # endif
392 _GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
393 # endif
394 _GL_CXXALIASWARN (atan2f);
395 #elif defined GNULIB_POSIXCHECK
396 # undef atan2f
397 # if HAVE_RAW_DECL_ATAN2F
398 _GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
399 "use gnulib module atan2f for portability");
400 # endif
401 #endif
404 #if @GNULIB_CBRTF@
405 # if @REPLACE_CBRTF@
406 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
407 # undef cbrtf
408 # define cbrtf rpl_cbrtf
409 # endif
410 _GL_FUNCDECL_RPL (cbrtf, float, (float x));
411 _GL_CXXALIAS_RPL (cbrtf, float, (float x));
412 # else
413 # if !@HAVE_DECL_CBRTF@
414 _GL_FUNCDECL_SYS (cbrtf, float, (float x));
415 # endif
416 _GL_CXXALIAS_SYS (cbrtf, float, (float x));
417 # endif
418 _GL_CXXALIASWARN (cbrtf);
419 #elif defined GNULIB_POSIXCHECK
420 # undef cbrtf
421 # if HAVE_RAW_DECL_CBRTF
422 _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
423 "use gnulib module cbrtf for portability");
424 # endif
425 #endif
427 #if @GNULIB_CBRT@
428 # if !@HAVE_CBRT@
429 _GL_FUNCDECL_SYS (cbrt, double, (double x));
430 # endif
431 _GL_CXXALIAS_SYS (cbrt, double, (double x));
432 # if __GLIBC__ >= 2
433 _GL_CXXALIASWARN1 (cbrt, double, (double x));
434 # endif
435 #elif defined GNULIB_POSIXCHECK
436 # undef cbrt
437 # if HAVE_RAW_DECL_CBRT
438 _GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
439 "use gnulib module cbrt for portability");
440 # endif
441 #endif
443 #if @GNULIB_CBRTL@
444 # if @REPLACE_CBRTL@
445 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
446 # undef cbrtl
447 # define cbrtl rpl_cbrtl
448 # endif
449 _GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
450 _GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
451 # else
452 # if !@HAVE_DECL_CBRTL@
453 _GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
454 # endif
455 _GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
456 # endif
457 _GL_CXXALIASWARN (cbrtl);
458 #elif defined GNULIB_POSIXCHECK
459 # undef cbrtl
460 # if HAVE_RAW_DECL_CBRTL
461 _GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
462 "use gnulib module cbrtl for portability");
463 # endif
464 #endif
467 #if @GNULIB_CEILF@
468 # if @REPLACE_CEILF@
469 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
470 # undef ceilf
471 # define ceilf rpl_ceilf
472 # endif
473 _GL_FUNCDECL_RPL (ceilf, float, (float x));
474 _GL_CXXALIAS_RPL (ceilf, float, (float x));
475 # else
476 # if !@HAVE_DECL_CEILF@
477 # undef ceilf
478 _GL_FUNCDECL_SYS (ceilf, float, (float x));
479 # endif
480 _GL_CXXALIAS_SYS (ceilf, float, (float x));
481 # endif
482 _GL_CXXALIASWARN (ceilf);
483 #elif defined GNULIB_POSIXCHECK
484 # undef ceilf
485 # if HAVE_RAW_DECL_CEILF
486 _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
487 "use gnulib module ceilf for portability");
488 # endif
489 #endif
491 #if @GNULIB_CEIL@
492 # if @REPLACE_CEIL@
493 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
494 # undef ceil
495 # define ceil rpl_ceil
496 # endif
497 _GL_FUNCDECL_RPL (ceil, double, (double x));
498 _GL_CXXALIAS_RPL (ceil, double, (double x));
499 # else
500 _GL_CXXALIAS_SYS (ceil, double, (double x));
501 # endif
502 # if __GLIBC__ >= 2
503 _GL_CXXALIASWARN1 (ceil, double, (double x));
504 # endif
505 #endif
507 #if @GNULIB_CEILL@
508 # if @REPLACE_CEILL@
509 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
510 # undef ceill
511 # define ceill rpl_ceill
512 # endif
513 _GL_FUNCDECL_RPL (ceill, long double, (long double x));
514 _GL_CXXALIAS_RPL (ceill, long double, (long double x));
515 # else
516 # if !@HAVE_DECL_CEILL@
517 # undef ceill
518 _GL_FUNCDECL_SYS (ceill, long double, (long double x));
519 # endif
520 _GL_CXXALIAS_SYS (ceill, long double, (long double x));
521 # endif
522 # if __GLIBC__ >= 2
523 _GL_CXXALIASWARN (ceill);
524 # endif
525 #elif defined GNULIB_POSIXCHECK
526 # undef ceill
527 # if HAVE_RAW_DECL_CEILL
528 _GL_WARN_ON_USE (ceill, "ceill is unportable - "
529 "use gnulib module ceill for portability");
530 # endif
531 #endif
534 #if @GNULIB_COPYSIGNF@
535 # if !@HAVE_DECL_COPYSIGNF@
536 # undef copysignf
537 _GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
538 # endif
539 _GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
540 _GL_CXXALIASWARN (copysignf);
541 #elif defined GNULIB_POSIXCHECK
542 # undef copysignf
543 # if HAVE_RAW_DECL_COPYSIGNF
544 _GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
545 "use gnulib module copysignf for portability");
546 # endif
547 #endif
549 #if @GNULIB_COPYSIGN@
550 # if !@HAVE_COPYSIGN@
551 _GL_FUNCDECL_SYS (copysign, double, (double x, double y));
552 # endif
553 _GL_CXXALIAS_SYS (copysign, double, (double x, double y));
554 # if __GLIBC__ >= 2
555 _GL_CXXALIASWARN1 (copysign, double, (double x, double y));
556 # endif
557 #elif defined GNULIB_POSIXCHECK
558 # undef copysign
559 # if HAVE_RAW_DECL_COPYSIGN
560 _GL_WARN_ON_USE (copysign, "copysign is unportable - "
561 "use gnulib module copysign for portability");
562 # endif
563 #endif
565 #if @GNULIB_COPYSIGNL@
566 # if !@HAVE_COPYSIGNL@
567 _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
568 # endif
569 _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
570 _GL_CXXALIASWARN (copysignl);
571 #elif defined GNULIB_POSIXCHECK
572 # undef copysignl
573 # if HAVE_RAW_DECL_COPYSIGNL
574 _GL_WARN_ON_USE (copysign, "copysignl is unportable - "
575 "use gnulib module copysignl for portability");
576 # endif
577 #endif
580 #if @GNULIB_COSF@
581 # if @REPLACE_COSF@
582 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
583 # undef cosf
584 # define cosf rpl_cosf
585 # endif
586 _GL_FUNCDECL_RPL (cosf, float, (float x));
587 _GL_CXXALIAS_RPL (cosf, float, (float x));
588 # else
589 # if !@HAVE_COSF@
590 # undef cosf
591 _GL_FUNCDECL_SYS (cosf, float, (float x));
592 # endif
593 _GL_CXXALIAS_SYS (cosf, float, (float x));
594 # endif
595 _GL_CXXALIASWARN (cosf);
596 #elif defined GNULIB_POSIXCHECK
597 # undef cosf
598 # if HAVE_RAW_DECL_COSF
599 _GL_WARN_ON_USE (cosf, "cosf is unportable - "
600 "use gnulib module cosf for portability");
601 # endif
602 #endif
604 #if @GNULIB_COSL@
605 # if !@HAVE_COSL@ || !@HAVE_DECL_COSL@
606 # undef cosl
607 _GL_FUNCDECL_SYS (cosl, long double, (long double x));
608 # endif
609 _GL_CXXALIAS_SYS (cosl, long double, (long double x));
610 # if __GLIBC__ >= 2
611 _GL_CXXALIASWARN (cosl);
612 # endif
613 #elif defined GNULIB_POSIXCHECK
614 # undef cosl
615 # if HAVE_RAW_DECL_COSL
616 _GL_WARN_ON_USE (cosl, "cosl is unportable - "
617 "use gnulib module cosl for portability");
618 # endif
619 #endif
622 #if @GNULIB_COSHF@
623 # if @REPLACE_COSHF@
624 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
625 # undef coshf
626 # define coshf rpl_coshf
627 # endif
628 _GL_FUNCDECL_RPL (coshf, float, (float x));
629 _GL_CXXALIAS_RPL (coshf, float, (float x));
630 # else
631 # if !@HAVE_COSHF@
632 # undef coshf
633 _GL_FUNCDECL_SYS (coshf, float, (float x));
634 # endif
635 _GL_CXXALIAS_SYS (coshf, float, (float x));
636 # endif
637 _GL_CXXALIASWARN (coshf);
638 #elif defined GNULIB_POSIXCHECK
639 # undef coshf
640 # if HAVE_RAW_DECL_COSHF
641 _GL_WARN_ON_USE (coshf, "coshf is unportable - "
642 "use gnulib module coshf for portability");
643 # endif
644 #endif
647 #if @GNULIB_EXPF@
648 # if @REPLACE_EXPF@
649 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
650 # undef expf
651 # define expf rpl_expf
652 # endif
653 _GL_FUNCDECL_RPL (expf, float, (float x));
654 _GL_CXXALIAS_RPL (expf, float, (float x));
655 # else
656 # if !@HAVE_EXPF@
657 # undef expf
658 _GL_FUNCDECL_SYS (expf, float, (float x));
659 # endif
660 _GL_CXXALIAS_SYS (expf, float, (float x));
661 # endif
662 _GL_CXXALIASWARN (expf);
663 #elif defined GNULIB_POSIXCHECK
664 # undef expf
665 # if HAVE_RAW_DECL_EXPF
666 _GL_WARN_ON_USE (expf, "expf is unportable - "
667 "use gnulib module expf for portability");
668 # endif
669 #endif
671 #if @GNULIB_EXPL@
672 # if @REPLACE_EXPL@
673 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
674 # undef expl
675 # define expl rpl_expl
676 # endif
677 _GL_FUNCDECL_RPL (expl, long double, (long double x));
678 _GL_CXXALIAS_RPL (expl, long double, (long double x));
679 # else
680 # if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@
681 # undef expl
682 _GL_FUNCDECL_SYS (expl, long double, (long double x));
683 # endif
684 _GL_CXXALIAS_SYS (expl, long double, (long double x));
685 # endif
686 # if __GLIBC__ >= 2
687 _GL_CXXALIASWARN (expl);
688 # endif
689 #elif defined GNULIB_POSIXCHECK
690 # undef expl
691 # if HAVE_RAW_DECL_EXPL
692 _GL_WARN_ON_USE (expl, "expl is unportable - "
693 "use gnulib module expl for portability");
694 # endif
695 #endif
698 #if @GNULIB_EXP2F@
699 # if !@HAVE_DECL_EXP2F@
700 _GL_FUNCDECL_SYS (exp2f, float, (float x));
701 # endif
702 _GL_CXXALIAS_SYS (exp2f, float, (float x));
703 _GL_CXXALIASWARN (exp2f);
704 #elif defined GNULIB_POSIXCHECK
705 # undef exp2f
706 # if HAVE_RAW_DECL_EXP2F
707 _GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
708 "use gnulib module exp2f for portability");
709 # endif
710 #endif
712 #if @GNULIB_EXP2@
713 # if @REPLACE_EXP2@
714 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
715 # undef exp2
716 # define exp2 rpl_exp2
717 # endif
718 _GL_FUNCDECL_RPL (exp2, double, (double x));
719 _GL_CXXALIAS_RPL (exp2, double, (double x));
720 # else
721 # if !@HAVE_DECL_EXP2@
722 _GL_FUNCDECL_SYS (exp2, double, (double x));
723 # endif
724 _GL_CXXALIAS_SYS (exp2, double, (double x));
725 # endif
726 # if __GLIBC__ >= 2
727 _GL_CXXALIASWARN1 (exp2, double, (double x));
728 # endif
729 #elif defined GNULIB_POSIXCHECK
730 # undef exp2
731 # if HAVE_RAW_DECL_EXP2
732 _GL_WARN_ON_USE (exp2, "exp2 is unportable - "
733 "use gnulib module exp2 for portability");
734 # endif
735 #endif
737 #if @GNULIB_EXP2L@
738 # if @REPLACE_EXP2L@
739 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
740 # undef exp2l
741 # define exp2l rpl_exp2l
742 # endif
743 _GL_FUNCDECL_RPL (exp2l, long double, (long double x));
744 _GL_CXXALIAS_RPL (exp2l, long double, (long double x));
745 # else
746 # if !@HAVE_DECL_EXP2L@
747 # undef exp2l
748 _GL_FUNCDECL_SYS (exp2l, long double, (long double x));
749 # endif
750 _GL_CXXALIAS_SYS (exp2l, long double, (long double x));
751 # endif
752 _GL_CXXALIASWARN (exp2l);
753 #elif defined GNULIB_POSIXCHECK
754 # undef exp2l
755 # if HAVE_RAW_DECL_EXP2L
756 _GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
757 "use gnulib module exp2l for portability");
758 # endif
759 #endif
762 #if @GNULIB_EXPM1F@
763 # if @REPLACE_EXPM1F@
764 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
765 # undef expm1f
766 # define expm1f rpl_expm1f
767 # endif
768 _GL_FUNCDECL_RPL (expm1f, float, (float x));
769 _GL_CXXALIAS_RPL (expm1f, float, (float x));
770 # else
771 # if !@HAVE_EXPM1F@
772 _GL_FUNCDECL_SYS (expm1f, float, (float x));
773 # endif
774 _GL_CXXALIAS_SYS (expm1f, float, (float x));
775 # endif
776 _GL_CXXALIASWARN (expm1f);
777 #elif defined GNULIB_POSIXCHECK
778 # undef expm1f
779 # if HAVE_RAW_DECL_EXPM1F
780 _GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
781 "use gnulib module expm1f for portability");
782 # endif
783 #endif
785 #if @GNULIB_EXPM1@
786 # if @REPLACE_EXPM1@
787 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
788 # undef expm1
789 # define expm1 rpl_expm1
790 # endif
791 _GL_FUNCDECL_RPL (expm1, double, (double x));
792 _GL_CXXALIAS_RPL (expm1, double, (double x));
793 # else
794 # if !@HAVE_EXPM1@
795 _GL_FUNCDECL_SYS (expm1, double, (double x));
796 # endif
797 _GL_CXXALIAS_SYS (expm1, double, (double x));
798 # endif
799 # if __GLIBC__ >= 2
800 _GL_CXXALIASWARN1 (expm1, double, (double x));
801 # endif
802 #elif defined GNULIB_POSIXCHECK
803 # undef expm1
804 # if HAVE_RAW_DECL_EXPM1
805 _GL_WARN_ON_USE (expm1, "expm1 is unportable - "
806 "use gnulib module expm1 for portability");
807 # endif
808 #endif
810 #if @GNULIB_EXPM1L@
811 # if @REPLACE_EXPM1L@
812 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
813 # undef expm1l
814 # define expm1l rpl_expm1l
815 # endif
816 _GL_FUNCDECL_RPL (expm1l, long double, (long double x));
817 _GL_CXXALIAS_RPL (expm1l, long double, (long double x));
818 # else
819 # if !@HAVE_DECL_EXPM1L@
820 # undef expm1l
821 # if !(defined __cplusplus && defined _AIX)
822 _GL_FUNCDECL_SYS (expm1l, long double, (long double x));
823 # endif
824 # endif
825 _GL_CXXALIAS_SYS (expm1l, long double, (long double x));
826 # endif
827 _GL_CXXALIASWARN (expm1l);
828 #elif defined GNULIB_POSIXCHECK
829 # undef expm1l
830 # if HAVE_RAW_DECL_EXPM1L
831 _GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
832 "use gnulib module expm1l for portability");
833 # endif
834 #endif
837 #if @GNULIB_FABSF@
838 # if !@HAVE_FABSF@
839 # undef fabsf
840 _GL_FUNCDECL_SYS (fabsf, float, (float x));
841 # endif
842 _GL_CXXALIAS_SYS (fabsf, float, (float x));
843 # if __GLIBC__ >= 2
844 _GL_CXXALIASWARN (fabsf);
845 # endif
846 #elif defined GNULIB_POSIXCHECK
847 # undef fabsf
848 # if HAVE_RAW_DECL_FABSF
849 _GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
850 "use gnulib module fabsf for portability");
851 # endif
852 #endif
854 #if @GNULIB_FABSL@
855 # if @REPLACE_FABSL@
856 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
857 # undef fabsl
858 # define fabsl rpl_fabsl
859 # endif
860 _GL_FUNCDECL_RPL (fabsl, long double, (long double x));
861 _GL_CXXALIAS_RPL (fabsl, long double, (long double x));
862 # else
863 # if !@HAVE_FABSL@
864 # undef fabsl
865 _GL_FUNCDECL_SYS (fabsl, long double, (long double x));
866 # endif
867 _GL_CXXALIAS_SYS (fabsl, long double, (long double x));
868 # endif
869 # if __GLIBC__ >= 2
870 _GL_CXXALIASWARN (fabsl);
871 # endif
872 #elif defined GNULIB_POSIXCHECK
873 # undef fabsl
874 # if HAVE_RAW_DECL_FABSL
875 _GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
876 "use gnulib module fabsl for portability");
877 # endif
878 #endif
881 #if @GNULIB_FLOORF@
882 # if @REPLACE_FLOORF@
883 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
884 # undef floorf
885 # define floorf rpl_floorf
886 # endif
887 _GL_FUNCDECL_RPL (floorf, float, (float x));
888 _GL_CXXALIAS_RPL (floorf, float, (float x));
889 # else
890 # if !@HAVE_DECL_FLOORF@
891 # undef floorf
892 _GL_FUNCDECL_SYS (floorf, float, (float x));
893 # endif
894 _GL_CXXALIAS_SYS (floorf, float, (float x));
895 # endif
896 _GL_CXXALIASWARN (floorf);
897 #elif defined GNULIB_POSIXCHECK
898 # undef floorf
899 # if HAVE_RAW_DECL_FLOORF
900 _GL_WARN_ON_USE (floorf, "floorf is unportable - "
901 "use gnulib module floorf for portability");
902 # endif
903 #endif
905 #if @GNULIB_FLOOR@
906 # if @REPLACE_FLOOR@
907 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
908 # undef floor
909 # define floor rpl_floor
910 # endif
911 _GL_FUNCDECL_RPL (floor, double, (double x));
912 _GL_CXXALIAS_RPL (floor, double, (double x));
913 # else
914 _GL_CXXALIAS_SYS (floor, double, (double x));
915 # endif
916 # if __GLIBC__ >= 2
917 _GL_CXXALIASWARN1 (floor, double, (double x));
918 # endif
919 #endif
921 #if @GNULIB_FLOORL@
922 # if @REPLACE_FLOORL@
923 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
924 # undef floorl
925 # define floorl rpl_floorl
926 # endif
927 _GL_FUNCDECL_RPL (floorl, long double, (long double x));
928 _GL_CXXALIAS_RPL (floorl, long double, (long double x));
929 # else
930 # if !@HAVE_DECL_FLOORL@
931 # undef floorl
932 _GL_FUNCDECL_SYS (floorl, long double, (long double x));
933 # endif
934 _GL_CXXALIAS_SYS (floorl, long double, (long double x));
935 # endif
936 # if __GLIBC__ >= 2
937 _GL_CXXALIASWARN (floorl);
938 # endif
939 #elif defined GNULIB_POSIXCHECK
940 # undef floorl
941 # if HAVE_RAW_DECL_FLOORL
942 _GL_WARN_ON_USE (floorl, "floorl is unportable - "
943 "use gnulib module floorl for portability");
944 # endif
945 #endif
948 #if @GNULIB_FMAF@
949 # if @REPLACE_FMAF@
950 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
951 # undef fmaf
952 # define fmaf rpl_fmaf
953 # endif
954 _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
955 _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
956 # else
957 # if !@HAVE_FMAF@
958 # undef fmaf
959 _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
960 # endif
961 _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
962 # endif
963 _GL_CXXALIASWARN (fmaf);
964 #elif defined GNULIB_POSIXCHECK
965 # undef fmaf
966 # if HAVE_RAW_DECL_FMAF
967 _GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
968 "use gnulib module fmaf for portability");
969 # endif
970 #endif
972 #if @GNULIB_FMA@
973 # if @REPLACE_FMA@
974 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
975 # undef fma
976 # define fma rpl_fma
977 # endif
978 _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
979 _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
980 # else
981 # if !@HAVE_FMA@
982 # undef fma
983 _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
984 # endif
985 _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
986 # endif
987 # if __GLIBC__ >= 2
988 _GL_CXXALIASWARN1 (fma, double, (double x, double y, double z));
989 # endif
990 #elif defined GNULIB_POSIXCHECK
991 # undef fma
992 # if HAVE_RAW_DECL_FMA
993 _GL_WARN_ON_USE (fma, "fma is unportable - "
994 "use gnulib module fma for portability");
995 # endif
996 #endif
998 #if @GNULIB_FMAL@
999 # if @REPLACE_FMAL@
1000 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1001 # undef fmal
1002 # define fmal rpl_fmal
1003 # endif
1004 _GL_FUNCDECL_RPL (fmal, long double,
1005 (long double x, long double y, long double z));
1006 _GL_CXXALIAS_RPL (fmal, long double,
1007 (long double x, long double y, long double z));
1008 # else
1009 # if !@HAVE_FMAL@
1010 # undef fmal
1011 # if !(defined __cplusplus && defined _AIX)
1012 _GL_FUNCDECL_SYS (fmal, long double,
1013 (long double x, long double y, long double z));
1014 # endif
1015 # endif
1016 _GL_CXXALIAS_SYS (fmal, long double,
1017 (long double x, long double y, long double z));
1018 # endif
1019 _GL_CXXALIASWARN (fmal);
1020 #elif defined GNULIB_POSIXCHECK
1021 # undef fmal
1022 # if HAVE_RAW_DECL_FMAL
1023 _GL_WARN_ON_USE (fmal, "fmal is unportable - "
1024 "use gnulib module fmal for portability");
1025 # endif
1026 #endif
1029 #if @GNULIB_FMODF@
1030 # if @REPLACE_FMODF@
1031 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1032 # undef fmodf
1033 # define fmodf rpl_fmodf
1034 # endif
1035 _GL_FUNCDECL_RPL (fmodf, float, (float x, float y));
1036 _GL_CXXALIAS_RPL (fmodf, float, (float x, float y));
1037 # else
1038 # if !@HAVE_FMODF@
1039 # undef fmodf
1040 _GL_FUNCDECL_SYS (fmodf, float, (float x, float y));
1041 # endif
1042 _GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
1043 # endif
1044 _GL_CXXALIASWARN (fmodf);
1045 #elif defined GNULIB_POSIXCHECK
1046 # undef fmodf
1047 # if HAVE_RAW_DECL_FMODF
1048 _GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
1049 "use gnulib module fmodf for portability");
1050 # endif
1051 #endif
1053 #if @GNULIB_FMOD@
1054 # if @REPLACE_FMOD@
1055 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1056 # undef fmod
1057 # define fmod rpl_fmod
1058 # endif
1059 _GL_FUNCDECL_RPL (fmod, double, (double x, double y));
1060 _GL_CXXALIAS_RPL (fmod, double, (double x, double y));
1061 # else
1062 _GL_CXXALIAS_SYS (fmod, double, (double x, double y));
1063 # endif
1064 # if __GLIBC__ >= 2
1065 _GL_CXXALIASWARN1 (fmod, double, (double x, double y));
1066 # endif
1067 #elif defined GNULIB_POSIXCHECK
1068 # undef fmod
1069 # if HAVE_RAW_DECL_FMOD
1070 _GL_WARN_ON_USE (fmod, "fmod has portability problems - "
1071 "use gnulib module fmod for portability");
1072 # endif
1073 #endif
1075 #if @GNULIB_FMODL@
1076 # if @REPLACE_FMODL@
1077 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1078 # undef fmodl
1079 # define fmodl rpl_fmodl
1080 # endif
1081 _GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y));
1082 _GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y));
1083 # else
1084 # if !@HAVE_FMODL@
1085 # undef fmodl
1086 _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
1087 # endif
1088 _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
1089 # endif
1090 # if __GLIBC__ >= 2
1091 _GL_CXXALIASWARN (fmodl);
1092 # endif
1093 #elif defined GNULIB_POSIXCHECK
1094 # undef fmodl
1095 # if HAVE_RAW_DECL_FMODL
1096 _GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
1097 "use gnulib module fmodl for portability");
1098 # endif
1099 #endif
1102 /* Write x as
1103 x = mantissa * 2^exp
1104 where
1105 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1106 If x is zero: mantissa = x, exp = 0.
1107 If x is infinite or NaN: mantissa = x, exp unspecified.
1108 Store exp in *EXPPTR and return mantissa. */
1109 #if @GNULIB_FREXPF@
1110 # if @REPLACE_FREXPF@
1111 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1112 # undef frexpf
1113 # define frexpf rpl_frexpf
1114 # endif
1115 _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1116 _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr));
1117 # else
1118 # if !@HAVE_FREXPF@
1119 # undef frexpf
1120 _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1121 # endif
1122 _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
1123 # endif
1124 # if __GLIBC__ >= 2
1125 _GL_CXXALIASWARN (frexpf);
1126 # endif
1127 #elif defined GNULIB_POSIXCHECK
1128 # undef frexpf
1129 # if HAVE_RAW_DECL_FREXPF
1130 _GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
1131 "use gnulib module frexpf for portability");
1132 # endif
1133 #endif
1135 /* Write x as
1136 x = mantissa * 2^exp
1137 where
1138 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1139 If x is zero: mantissa = x, exp = 0.
1140 If x is infinite or NaN: mantissa = x, exp unspecified.
1141 Store exp in *EXPPTR and return mantissa. */
1142 #if @GNULIB_FREXP@
1143 # if @REPLACE_FREXP@
1144 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1145 # undef frexp
1146 # define frexp rpl_frexp
1147 # endif
1148 _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
1149 _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
1150 # else
1151 _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
1152 # endif
1153 # if __GLIBC__ >= 2
1154 _GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr));
1155 # endif
1156 #elif defined GNULIB_POSIXCHECK
1157 # undef frexp
1158 /* Assume frexp is always declared. */
1159 _GL_WARN_ON_USE (frexp, "frexp is unportable - "
1160 "use gnulib module frexp for portability");
1161 #endif
1163 /* Write x as
1164 x = mantissa * 2^exp
1165 where
1166 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1167 If x is zero: mantissa = x, exp = 0.
1168 If x is infinite or NaN: mantissa = x, exp unspecified.
1169 Store exp in *EXPPTR and return mantissa. */
1170 #if @GNULIB_FREXPL@ && @REPLACE_FREXPL@
1171 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1172 # undef frexpl
1173 # define frexpl rpl_frexpl
1174 # endif
1175 _GL_FUNCDECL_RPL (frexpl, long double,
1176 (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1177 _GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
1178 #else
1179 # if !@HAVE_DECL_FREXPL@
1180 _GL_FUNCDECL_SYS (frexpl, long double,
1181 (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1182 # endif
1183 # if @GNULIB_FREXPL@
1184 _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
1185 # endif
1186 #endif
1187 #if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@)
1188 # if __GLIBC__ >= 2
1189 _GL_CXXALIASWARN (frexpl);
1190 # endif
1191 #endif
1192 #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
1193 # undef frexpl
1194 # if HAVE_RAW_DECL_FREXPL
1195 _GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
1196 "use gnulib module frexpl for portability");
1197 # endif
1198 #endif
1201 /* Return sqrt(x^2+y^2). */
1202 #if @GNULIB_HYPOTF@
1203 # if @REPLACE_HYPOTF@
1204 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1205 # undef hypotf
1206 # define hypotf rpl_hypotf
1207 # endif
1208 _GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
1209 _GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
1210 # else
1211 # if !@HAVE_HYPOTF@
1212 _GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
1213 # endif
1214 _GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
1215 # endif
1216 # if __GLIBC__ >= 2
1217 _GL_CXXALIASWARN (hypotf);
1218 # endif
1219 #elif defined GNULIB_POSIXCHECK
1220 # undef hypotf
1221 # if HAVE_RAW_DECL_HYPOTF
1222 _GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
1223 "use gnulib module hypotf for portability");
1224 # endif
1225 #endif
1227 /* Return sqrt(x^2+y^2). */
1228 #if @GNULIB_HYPOT@
1229 # if @REPLACE_HYPOT@
1230 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1231 # undef hypot
1232 # define hypot rpl_hypot
1233 # endif
1234 _GL_FUNCDECL_RPL (hypot, double, (double x, double y));
1235 _GL_CXXALIAS_RPL (hypot, double, (double x, double y));
1236 # else
1237 _GL_CXXALIAS_SYS (hypot, double, (double x, double y));
1238 # endif
1239 # if __GLIBC__ >= 2
1240 _GL_CXXALIASWARN1 (hypot, double, (double x, double y));
1241 # endif
1242 #elif defined GNULIB_POSIXCHECK
1243 # undef hypot
1244 # if HAVE_RAW_DECL_HYPOT
1245 _GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
1246 "use gnulib module hypot for portability");
1247 # endif
1248 #endif
1250 /* Return sqrt(x^2+y^2). */
1251 #if @GNULIB_HYPOTL@
1252 # if @REPLACE_HYPOTL@
1253 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1254 # undef hypotl
1255 # define hypotl rpl_hypotl
1256 # endif
1257 _GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y));
1258 _GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y));
1259 # else
1260 # if !@HAVE_HYPOTL@
1261 _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
1262 # endif
1263 _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
1264 # endif
1265 # if __GLIBC__ >= 2
1266 _GL_CXXALIASWARN (hypotl);
1267 # endif
1268 #elif defined GNULIB_POSIXCHECK
1269 # undef hypotl
1270 # if HAVE_RAW_DECL_HYPOTL
1271 _GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
1272 "use gnulib module hypotl for portability");
1273 # endif
1274 #endif
1277 #if @GNULIB_ILOGBF@
1278 # if @REPLACE_ILOGBF@
1279 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1280 # undef ilogbf
1281 # define ilogbf rpl_ilogbf
1282 # endif
1283 _GL_FUNCDECL_RPL (ilogbf, int, (float x));
1284 _GL_CXXALIAS_RPL (ilogbf, int, (float x));
1285 # else
1286 # if !@HAVE_ILOGBF@
1287 _GL_FUNCDECL_SYS (ilogbf, int, (float x));
1288 # endif
1289 _GL_CXXALIAS_SYS (ilogbf, int, (float x));
1290 # endif
1291 _GL_CXXALIASWARN (ilogbf);
1292 #elif defined GNULIB_POSIXCHECK
1293 # undef ilogbf
1294 # if HAVE_RAW_DECL_ILOGBF
1295 _GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
1296 "use gnulib module ilogbf for portability");
1297 # endif
1298 #endif
1300 #if @GNULIB_ILOGB@
1301 # if @REPLACE_ILOGB@
1302 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1303 # undef ilogb
1304 # define ilogb rpl_ilogb
1305 # endif
1306 _GL_FUNCDECL_RPL (ilogb, int, (double x));
1307 _GL_CXXALIAS_RPL (ilogb, int, (double x));
1308 # else
1309 # if !@HAVE_ILOGB@
1310 _GL_FUNCDECL_SYS (ilogb, int, (double x));
1311 # endif
1312 _GL_CXXALIAS_SYS (ilogb, int, (double x));
1313 # endif
1314 # if __GLIBC__ >= 2
1315 _GL_CXXALIASWARN1 (ilogb, int, (double x));
1316 # endif
1317 #elif defined GNULIB_POSIXCHECK
1318 # undef ilogb
1319 # if HAVE_RAW_DECL_ILOGB
1320 _GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
1321 "use gnulib module ilogb for portability");
1322 # endif
1323 #endif
1325 #if @GNULIB_ILOGBL@
1326 # if @REPLACE_ILOGBL@
1327 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1328 # undef ilogbl
1329 # define ilogbl rpl_ilogbl
1330 # endif
1331 _GL_FUNCDECL_RPL (ilogbl, int, (long double x));
1332 _GL_CXXALIAS_RPL (ilogbl, int, (long double x));
1333 # else
1334 # if !@HAVE_ILOGBL@
1335 # undef ilogbl
1336 _GL_FUNCDECL_SYS (ilogbl, int, (long double x));
1337 # endif
1338 _GL_CXXALIAS_SYS (ilogbl, int, (long double x));
1339 # endif
1340 _GL_CXXALIASWARN (ilogbl);
1341 #elif defined GNULIB_POSIXCHECK
1342 # undef ilogbl
1343 # if HAVE_RAW_DECL_ILOGBL
1344 _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
1345 "use gnulib module ilogbl for portability");
1346 # endif
1347 #endif
1350 #if @GNULIB_MDA_J0@
1351 /* On native Windows, map 'j0' to '_j0', so that -loldnames is not
1352 required. In C++ with GNULIB_NAMESPACE, avoid differences between
1353 platforms by defining GNULIB_NAMESPACE::j0 always. */
1354 # if defined _WIN32 && !defined __CYGWIN__
1355 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1356 # undef j0
1357 # define j0 _j0
1358 # endif
1359 _GL_CXXALIAS_MDA (j0, double, (double x));
1360 # else
1361 _GL_CXXALIAS_SYS (j0, double, (double x));
1362 # endif
1363 _GL_CXXALIASWARN (j0);
1364 #endif
1366 #if @GNULIB_MDA_J1@
1367 /* On native Windows, map 'j1' to '_j1', so that -loldnames is not
1368 required. In C++ with GNULIB_NAMESPACE, avoid differences between
1369 platforms by defining GNULIB_NAMESPACE::j1 always. */
1370 # if defined _WIN32 && !defined __CYGWIN__
1371 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1372 # undef j1
1373 # define j1 _j1
1374 # endif
1375 _GL_CXXALIAS_MDA (j1, double, (double x));
1376 # else
1377 _GL_CXXALIAS_SYS (j1, double, (double x));
1378 # endif
1379 _GL_CXXALIASWARN (j1);
1380 #endif
1382 #if @GNULIB_MDA_JN@
1383 /* On native Windows, map 'jn' to '_jn', so that -loldnames is not
1384 required. In C++ with GNULIB_NAMESPACE, avoid differences between
1385 platforms by defining GNULIB_NAMESPACE::jn always. */
1386 # if defined _WIN32 && !defined __CYGWIN__
1387 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1388 # undef jn
1389 # define jn _jn
1390 # endif
1391 _GL_CXXALIAS_MDA (jn, double, (int n, double x));
1392 # else
1393 _GL_CXXALIAS_SYS (jn, double, (int n, double x));
1394 # endif
1395 _GL_CXXALIASWARN (jn);
1396 #endif
1399 /* Return x * 2^exp. */
1400 #if @GNULIB_LDEXPF@
1401 # if !@HAVE_LDEXPF@
1402 # undef ldexpf
1403 _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
1404 # endif
1405 _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
1406 # if __GLIBC__ >= 2
1407 _GL_CXXALIASWARN (ldexpf);
1408 # endif
1409 #elif defined GNULIB_POSIXCHECK
1410 # undef ldexpf
1411 # if HAVE_RAW_DECL_LDEXPF
1412 _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
1413 "use gnulib module ldexpf for portability");
1414 # endif
1415 #endif
1417 /* Return x * 2^exp. */
1418 #if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
1419 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1420 # undef ldexpl
1421 # define ldexpl rpl_ldexpl
1422 # endif
1423 _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
1424 _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
1425 #else
1426 # if !@HAVE_DECL_LDEXPL@
1427 _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
1428 # endif
1429 # if @GNULIB_LDEXPL@
1430 _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
1431 # endif
1432 #endif
1433 #if @GNULIB_LDEXPL@
1434 # if __GLIBC__ >= 2
1435 _GL_CXXALIASWARN (ldexpl);
1436 # endif
1437 #endif
1438 #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
1439 # undef ldexpl
1440 # if HAVE_RAW_DECL_LDEXPL
1441 _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
1442 "use gnulib module ldexpl for portability");
1443 # endif
1444 #endif
1447 #if @GNULIB_LOGF@
1448 # if @REPLACE_LOGF@
1449 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1450 # undef logf
1451 # define logf rpl_logf
1452 # endif
1453 _GL_FUNCDECL_RPL (logf, float, (float x));
1454 _GL_CXXALIAS_RPL (logf, float, (float x));
1455 # else
1456 # if !@HAVE_LOGF@
1457 # undef logf
1458 _GL_FUNCDECL_SYS (logf, float, (float x));
1459 # endif
1460 _GL_CXXALIAS_SYS (logf, float, (float x));
1461 # endif
1462 _GL_CXXALIASWARN (logf);
1463 #elif defined GNULIB_POSIXCHECK
1464 # undef logf
1465 # if HAVE_RAW_DECL_LOGF
1466 _GL_WARN_ON_USE (logf, "logf is unportable - "
1467 "use gnulib module logf for portability");
1468 # endif
1469 #endif
1471 #if @GNULIB_LOG@
1472 # if @REPLACE_LOG@
1473 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1474 # undef log
1475 # define log rpl_log
1476 # endif
1477 _GL_FUNCDECL_RPL (log, double, (double x));
1478 _GL_CXXALIAS_RPL (log, double, (double x));
1479 # else
1480 _GL_CXXALIAS_SYS (log, double, (double x));
1481 # endif
1482 # if __GLIBC__ >= 2
1483 _GL_CXXALIASWARN1 (log, double, (double x));
1484 # endif
1485 #elif defined GNULIB_POSIXCHECK
1486 # undef log
1487 # if HAVE_RAW_DECL_LOG
1488 _GL_WARN_ON_USE (log, "log has portability problems - "
1489 "use gnulib module log for portability");
1490 # endif
1491 #endif
1493 #if @GNULIB_LOGL@
1494 # if @REPLACE_LOGL@
1495 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1496 # undef logl
1497 # define logl rpl_logl
1498 # endif
1499 _GL_FUNCDECL_RPL (logl, long double, (long double x));
1500 _GL_CXXALIAS_RPL (logl, long double, (long double x));
1501 # else
1502 # if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
1503 # undef logl
1504 _GL_FUNCDECL_SYS (logl, long double, (long double x));
1505 # endif
1506 _GL_CXXALIAS_SYS (logl, long double, (long double x));
1507 # endif
1508 # if __GLIBC__ >= 2
1509 _GL_CXXALIASWARN (logl);
1510 # endif
1511 #elif defined GNULIB_POSIXCHECK
1512 # undef logl
1513 # if HAVE_RAW_DECL_LOGL
1514 _GL_WARN_ON_USE (logl, "logl is unportable - "
1515 "use gnulib module logl for portability");
1516 # endif
1517 #endif
1520 #if @GNULIB_LOG10F@
1521 # if @REPLACE_LOG10F@
1522 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1523 # undef log10f
1524 # define log10f rpl_log10f
1525 # endif
1526 _GL_FUNCDECL_RPL (log10f, float, (float x));
1527 _GL_CXXALIAS_RPL (log10f, float, (float x));
1528 # else
1529 # if !@HAVE_LOG10F@
1530 # undef log10f
1531 _GL_FUNCDECL_SYS (log10f, float, (float x));
1532 # endif
1533 _GL_CXXALIAS_SYS (log10f, float, (float x));
1534 # endif
1535 _GL_CXXALIASWARN (log10f);
1536 #elif defined GNULIB_POSIXCHECK
1537 # undef log10f
1538 # if HAVE_RAW_DECL_LOG10F
1539 _GL_WARN_ON_USE (log10f, "log10f is unportable - "
1540 "use gnulib module log10f for portability");
1541 # endif
1542 #endif
1544 #if @GNULIB_LOG10@
1545 # if @REPLACE_LOG10@
1546 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1547 # undef log10
1548 # define log10 rpl_log10
1549 # endif
1550 _GL_FUNCDECL_RPL (log10, double, (double x));
1551 _GL_CXXALIAS_RPL (log10, double, (double x));
1552 # else
1553 _GL_CXXALIAS_SYS (log10, double, (double x));
1554 # endif
1555 # if __GLIBC__ >= 2
1556 _GL_CXXALIASWARN1 (log10, double, (double x));
1557 # endif
1558 #elif defined GNULIB_POSIXCHECK
1559 # undef log10
1560 # if HAVE_RAW_DECL_LOG10
1561 _GL_WARN_ON_USE (log10, "log10 has portability problems - "
1562 "use gnulib module log10 for portability");
1563 # endif
1564 #endif
1566 #if @GNULIB_LOG10L@
1567 # if @REPLACE_LOG10L@
1568 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1569 # undef log10l
1570 # define log10l rpl_log10l
1571 # endif
1572 _GL_FUNCDECL_RPL (log10l, long double, (long double x));
1573 _GL_CXXALIAS_RPL (log10l, long double, (long double x));
1574 # else
1575 # if !@HAVE_LOG10L@ || !@HAVE_DECL_LOG10L@
1576 # undef log10l
1577 _GL_FUNCDECL_SYS (log10l, long double, (long double x));
1578 # endif
1579 _GL_CXXALIAS_SYS (log10l, long double, (long double x));
1580 # endif
1581 # if __GLIBC__ >= 2
1582 _GL_CXXALIASWARN (log10l);
1583 # endif
1584 #elif defined GNULIB_POSIXCHECK
1585 # undef log10l
1586 # if HAVE_RAW_DECL_LOG10L
1587 _GL_WARN_ON_USE (log10l, "log10l is unportable - "
1588 "use gnulib module log10l for portability");
1589 # endif
1590 #endif
1593 #if @GNULIB_LOG1PF@
1594 # if @REPLACE_LOG1PF@
1595 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1596 # undef log1pf
1597 # define log1pf rpl_log1pf
1598 # endif
1599 _GL_FUNCDECL_RPL (log1pf, float, (float x));
1600 _GL_CXXALIAS_RPL (log1pf, float, (float x));
1601 # else
1602 # if !@HAVE_LOG1PF@
1603 _GL_FUNCDECL_SYS (log1pf, float, (float x));
1604 # endif
1605 _GL_CXXALIAS_SYS (log1pf, float, (float x));
1606 # endif
1607 _GL_CXXALIASWARN (log1pf);
1608 #elif defined GNULIB_POSIXCHECK
1609 # undef log1pf
1610 # if HAVE_RAW_DECL_LOG1PF
1611 _GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
1612 "use gnulib module log1pf for portability");
1613 # endif
1614 #endif
1616 #if @GNULIB_LOG1P@
1617 # if @REPLACE_LOG1P@
1618 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1619 # undef log1p
1620 # define log1p rpl_log1p
1621 # endif
1622 _GL_FUNCDECL_RPL (log1p, double, (double x));
1623 _GL_CXXALIAS_RPL (log1p, double, (double x));
1624 # else
1625 # if !@HAVE_LOG1P@
1626 _GL_FUNCDECL_SYS (log1p, double, (double x));
1627 # endif
1628 _GL_CXXALIAS_SYS (log1p, double, (double x));
1629 # endif
1630 # if __GLIBC__ >= 2
1631 _GL_CXXALIASWARN1 (log1p, double, (double x));
1632 # endif
1633 #elif defined GNULIB_POSIXCHECK
1634 # undef log1p
1635 # if HAVE_RAW_DECL_LOG1P
1636 _GL_WARN_ON_USE (log1p, "log1p has portability problems - "
1637 "use gnulib module log1p for portability");
1638 # endif
1639 #endif
1641 #if @GNULIB_LOG1PL@
1642 # if @REPLACE_LOG1PL@
1643 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1644 # undef log1pl
1645 # define log1pl rpl_log1pl
1646 # endif
1647 _GL_FUNCDECL_RPL (log1pl, long double, (long double x));
1648 _GL_CXXALIAS_RPL (log1pl, long double, (long double x));
1649 # else
1650 # if !@HAVE_LOG1PL@
1651 _GL_FUNCDECL_SYS (log1pl, long double, (long double x));
1652 # endif
1653 _GL_CXXALIAS_SYS (log1pl, long double, (long double x));
1654 # endif
1655 _GL_CXXALIASWARN (log1pl);
1656 #elif defined GNULIB_POSIXCHECK
1657 # undef log1pl
1658 # if HAVE_RAW_DECL_LOG1PL
1659 _GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
1660 "use gnulib module log1pl for portability");
1661 # endif
1662 #endif
1665 #if @GNULIB_LOG2F@
1666 # if @REPLACE_LOG2F@
1667 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1668 # undef log2f
1669 # define log2f rpl_log2f
1670 # endif
1671 _GL_FUNCDECL_RPL (log2f, float, (float x));
1672 _GL_CXXALIAS_RPL (log2f, float, (float x));
1673 # else
1674 # if !@HAVE_DECL_LOG2F@
1675 # undef log2f
1676 _GL_FUNCDECL_SYS (log2f, float, (float x));
1677 # endif
1678 _GL_CXXALIAS_SYS (log2f, float, (float x));
1679 # endif
1680 _GL_CXXALIASWARN (log2f);
1681 #elif defined GNULIB_POSIXCHECK
1682 # undef log2f
1683 # if HAVE_RAW_DECL_LOG2F
1684 _GL_WARN_ON_USE (log2f, "log2f is unportable - "
1685 "use gnulib module log2f for portability");
1686 # endif
1687 #endif
1689 #if @GNULIB_LOG2@
1690 # if @REPLACE_LOG2@
1691 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1692 # undef log2
1693 # define log2 rpl_log2
1694 # endif
1695 _GL_FUNCDECL_RPL (log2, double, (double x));
1696 _GL_CXXALIAS_RPL (log2, double, (double x));
1697 # else
1698 # if !@HAVE_DECL_LOG2@
1699 # undef log2
1700 _GL_FUNCDECL_SYS (log2, double, (double x));
1701 # endif
1702 _GL_CXXALIAS_SYS (log2, double, (double x));
1703 # endif
1704 # if __GLIBC__ >= 2
1705 _GL_CXXALIASWARN1 (log2, double, (double x));
1706 # endif
1707 #elif defined GNULIB_POSIXCHECK
1708 # undef log2
1709 # if HAVE_RAW_DECL_LOG2
1710 _GL_WARN_ON_USE (log2, "log2 is unportable - "
1711 "use gnulib module log2 for portability");
1712 # endif
1713 #endif
1715 #if @GNULIB_LOG2L@
1716 # if @REPLACE_LOG2L@
1717 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1718 # undef log2l
1719 # define log2l rpl_log2l
1720 # endif
1721 _GL_FUNCDECL_RPL (log2l, long double, (long double x));
1722 _GL_CXXALIAS_RPL (log2l, long double, (long double x));
1723 # else
1724 # if !@HAVE_DECL_LOG2L@
1725 _GL_FUNCDECL_SYS (log2l, long double, (long double x));
1726 # endif
1727 _GL_CXXALIAS_SYS (log2l, long double, (long double x));
1728 # endif
1729 _GL_CXXALIASWARN (log2l);
1730 #elif defined GNULIB_POSIXCHECK
1731 # undef log2l
1732 # if HAVE_RAW_DECL_LOG2L
1733 _GL_WARN_ON_USE (log2l, "log2l is unportable - "
1734 "use gnulib module log2l for portability");
1735 # endif
1736 #endif
1739 #if @GNULIB_LOGBF@
1740 # if @REPLACE_LOGBF@
1741 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1742 # undef logbf
1743 # define logbf rpl_logbf
1744 # endif
1745 _GL_FUNCDECL_RPL (logbf, float, (float x));
1746 _GL_CXXALIAS_RPL (logbf, float, (float x));
1747 # else
1748 # if !@HAVE_LOGBF@
1749 _GL_FUNCDECL_SYS (logbf, float, (float x));
1750 # endif
1751 _GL_CXXALIAS_SYS (logbf, float, (float x));
1752 # endif
1753 _GL_CXXALIASWARN (logbf);
1754 #elif defined GNULIB_POSIXCHECK
1755 # undef logbf
1756 # if HAVE_RAW_DECL_LOGBF
1757 _GL_WARN_ON_USE (logbf, "logbf is unportable - "
1758 "use gnulib module logbf for portability");
1759 # endif
1760 #endif
1762 #if @GNULIB_LOGB@
1763 # if @REPLACE_LOGB@
1764 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1765 # undef logb
1766 # define logb rpl_logb
1767 # endif
1768 _GL_FUNCDECL_RPL (logb, double, (double x));
1769 _GL_CXXALIAS_RPL (logb, double, (double x));
1770 # else
1771 # if !@HAVE_DECL_LOGB@
1772 _GL_FUNCDECL_SYS (logb, double, (double x));
1773 # endif
1774 _GL_CXXALIAS_SYS (logb, double, (double x));
1775 # endif
1776 # if __GLIBC__ >= 2
1777 _GL_CXXALIASWARN1 (logb, double, (double x));
1778 # endif
1779 #elif defined GNULIB_POSIXCHECK
1780 # undef logb
1781 # if HAVE_RAW_DECL_LOGB
1782 _GL_WARN_ON_USE (logb, "logb is unportable - "
1783 "use gnulib module logb for portability");
1784 # endif
1785 #endif
1787 #if @GNULIB_LOGBL@
1788 # if @REPLACE_LOGBL@
1789 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1790 # undef logbl
1791 # define logbl rpl_logbl
1792 # endif
1793 _GL_FUNCDECL_RPL (logbl, long double, (long double x));
1794 _GL_CXXALIAS_RPL (logbl, long double, (long double x));
1795 # else
1796 # if !@HAVE_LOGBL@
1797 _GL_FUNCDECL_SYS (logbl, long double, (long double x));
1798 # endif
1799 _GL_CXXALIAS_SYS (logbl, long double, (long double x));
1800 # endif
1801 _GL_CXXALIASWARN (logbl);
1802 #elif defined GNULIB_POSIXCHECK
1803 # undef logbl
1804 # if HAVE_RAW_DECL_LOGBL
1805 _GL_WARN_ON_USE (logbl, "logbl is unportable - "
1806 "use gnulib module logbl for portability");
1807 # endif
1808 #endif
1811 #if @GNULIB_MODFF@
1812 # if @REPLACE_MODFF@
1813 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1814 # undef modff
1815 # define modff rpl_modff
1816 # endif
1817 _GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
1818 _GL_CXXALIAS_RPL (modff, float, (float x, float *iptr));
1819 # else
1820 # if !@HAVE_MODFF@
1821 # undef modff
1822 _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
1823 # endif
1824 _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
1825 # endif
1826 _GL_CXXALIASWARN (modff);
1827 #elif defined GNULIB_POSIXCHECK
1828 # undef modff
1829 # if HAVE_RAW_DECL_MODFF
1830 _GL_WARN_ON_USE (modff, "modff is unportable - "
1831 "use gnulib module modff for portability");
1832 # endif
1833 #endif
1835 #if @GNULIB_MODF@
1836 # if @REPLACE_MODF@
1837 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1838 # undef modf
1839 # define modf rpl_modf
1840 # endif
1841 _GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2)));
1842 _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
1843 # else
1844 _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
1845 # endif
1846 # if __GLIBC__ >= 2
1847 _GL_CXXALIASWARN1 (modf, double, (double x, double *iptr));
1848 # endif
1849 #elif defined GNULIB_POSIXCHECK
1850 # undef modf
1851 # if HAVE_RAW_DECL_MODF
1852 _GL_WARN_ON_USE (modf, "modf has portability problems - "
1853 "use gnulib module modf for portability");
1854 # endif
1855 #endif
1857 #if @GNULIB_MODFL@
1858 # if @REPLACE_MODFL@
1859 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1860 # undef modfl
1861 # define modfl rpl_modfl
1862 # endif
1863 _GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr)
1864 _GL_ARG_NONNULL ((2)));
1865 _GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr));
1866 # else
1867 # if !@HAVE_MODFL@
1868 # undef modfl
1869 _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
1870 _GL_ARG_NONNULL ((2)));
1871 # endif
1872 _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
1873 # endif
1874 # if __GLIBC__ >= 2
1875 _GL_CXXALIASWARN (modfl);
1876 # endif
1877 #elif defined GNULIB_POSIXCHECK
1878 # undef modfl
1879 # if HAVE_RAW_DECL_MODFL
1880 _GL_WARN_ON_USE (modfl, "modfl is unportable - "
1881 "use gnulib module modfl for portability");
1882 # endif
1883 #endif
1886 #if @GNULIB_POWF@
1887 # if !@HAVE_POWF@
1888 # undef powf
1889 _GL_FUNCDECL_SYS (powf, float, (float x, float y));
1890 # endif
1891 _GL_CXXALIAS_SYS (powf, float, (float x, float y));
1892 _GL_CXXALIASWARN (powf);
1893 #elif defined GNULIB_POSIXCHECK
1894 # undef powf
1895 # if HAVE_RAW_DECL_POWF
1896 _GL_WARN_ON_USE (powf, "powf is unportable - "
1897 "use gnulib module powf for portability");
1898 # endif
1899 #endif
1902 #if @GNULIB_REMAINDERF@
1903 # if @REPLACE_REMAINDERF@
1904 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1905 # undef remainderf
1906 # define remainderf rpl_remainderf
1907 # endif
1908 _GL_FUNCDECL_RPL (remainderf, float, (float x, float y));
1909 _GL_CXXALIAS_RPL (remainderf, float, (float x, float y));
1910 # else
1911 # if !@HAVE_REMAINDERF@
1912 _GL_FUNCDECL_SYS (remainderf, float, (float x, float y));
1913 # endif
1914 _GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
1915 # endif
1916 _GL_CXXALIASWARN (remainderf);
1917 #elif defined GNULIB_POSIXCHECK
1918 # undef remainderf
1919 # if HAVE_RAW_DECL_REMAINDERF
1920 _GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
1921 "use gnulib module remainderf for portability");
1922 # endif
1923 #endif
1925 #if @GNULIB_REMAINDER@
1926 # if @REPLACE_REMAINDER@
1927 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1928 # undef remainder
1929 # define remainder rpl_remainder
1930 # endif
1931 _GL_FUNCDECL_RPL (remainder, double, (double x, double y));
1932 _GL_CXXALIAS_RPL (remainder, double, (double x, double y));
1933 # else
1934 # if !@HAVE_REMAINDER@ || !@HAVE_DECL_REMAINDER@
1935 _GL_FUNCDECL_SYS (remainder, double, (double x, double y));
1936 # endif
1937 _GL_CXXALIAS_SYS (remainder, double, (double x, double y));
1938 # endif
1939 # if __GLIBC__ >= 2
1940 _GL_CXXALIASWARN1 (remainder, double, (double x, double y));
1941 # endif
1942 #elif defined GNULIB_POSIXCHECK
1943 # undef remainder
1944 # if HAVE_RAW_DECL_REMAINDER
1945 _GL_WARN_ON_USE (remainder, "remainder is unportable - "
1946 "use gnulib module remainder for portability");
1947 # endif
1948 #endif
1950 #if @GNULIB_REMAINDERL@
1951 # if @REPLACE_REMAINDERL@
1952 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1953 # undef remainderl
1954 # define remainderl rpl_remainderl
1955 # endif
1956 _GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y));
1957 _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
1958 # else
1959 # if !@HAVE_DECL_REMAINDERL@
1960 # undef remainderl
1961 # if !(defined __cplusplus && defined _AIX)
1962 _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
1963 # endif
1964 # endif
1965 _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
1966 # endif
1967 _GL_CXXALIASWARN (remainderl);
1968 #elif defined GNULIB_POSIXCHECK
1969 # undef remainderl
1970 # if HAVE_RAW_DECL_REMAINDERL
1971 _GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
1972 "use gnulib module remainderl for portability");
1973 # endif
1974 #endif
1977 #if @GNULIB_RINTF@
1978 # if !@HAVE_DECL_RINTF@
1979 _GL_FUNCDECL_SYS (rintf, float, (float x));
1980 # endif
1981 _GL_CXXALIAS_SYS (rintf, float, (float x));
1982 _GL_CXXALIASWARN (rintf);
1983 #elif defined GNULIB_POSIXCHECK
1984 # undef rintf
1985 # if HAVE_RAW_DECL_RINTF
1986 _GL_WARN_ON_USE (rintf, "rintf is unportable - "
1987 "use gnulib module rintf for portability");
1988 # endif
1989 #endif
1991 #if @GNULIB_RINT@
1992 # if !@HAVE_RINT@
1993 _GL_FUNCDECL_SYS (rint, double, (double x));
1994 # endif
1995 _GL_CXXALIAS_SYS (rint, double, (double x));
1996 # if __GLIBC__ >= 2
1997 _GL_CXXALIASWARN1 (rint, double, (double x));
1998 # endif
1999 #elif defined GNULIB_POSIXCHECK
2000 # undef rint
2001 # if HAVE_RAW_DECL_RINT
2002 _GL_WARN_ON_USE (rint, "rint is unportable - "
2003 "use gnulib module rint for portability");
2004 # endif
2005 #endif
2007 #if @GNULIB_RINTL@
2008 # if @REPLACE_RINTL@
2009 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2010 # undef rintl
2011 # define rintl rpl_rintl
2012 # endif
2013 _GL_FUNCDECL_RPL (rintl, long double, (long double x));
2014 _GL_CXXALIAS_RPL (rintl, long double, (long double x));
2015 # else
2016 # if !@HAVE_RINTL@
2017 _GL_FUNCDECL_SYS (rintl, long double, (long double x));
2018 # endif
2019 _GL_CXXALIAS_SYS (rintl, long double, (long double x));
2020 # endif
2021 _GL_CXXALIASWARN (rintl);
2022 #elif defined GNULIB_POSIXCHECK
2023 # undef rintl
2024 # if HAVE_RAW_DECL_RINTL
2025 _GL_WARN_ON_USE (rintl, "rintl is unportable - "
2026 "use gnulib module rintl for portability");
2027 # endif
2028 #endif
2031 #if @GNULIB_ROUNDF@
2032 # if @REPLACE_ROUNDF@
2033 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2034 # undef roundf
2035 # define roundf rpl_roundf
2036 # endif
2037 _GL_FUNCDECL_RPL (roundf, float, (float x));
2038 _GL_CXXALIAS_RPL (roundf, float, (float x));
2039 # else
2040 # if !@HAVE_DECL_ROUNDF@
2041 _GL_FUNCDECL_SYS (roundf, float, (float x));
2042 # endif
2043 _GL_CXXALIAS_SYS (roundf, float, (float x));
2044 # endif
2045 _GL_CXXALIASWARN (roundf);
2046 #elif defined GNULIB_POSIXCHECK
2047 # undef roundf
2048 # if HAVE_RAW_DECL_ROUNDF
2049 _GL_WARN_ON_USE (roundf, "roundf is unportable - "
2050 "use gnulib module roundf for portability");
2051 # endif
2052 #endif
2054 #if @GNULIB_ROUND@
2055 # if @REPLACE_ROUND@
2056 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2057 # undef round
2058 # define round rpl_round
2059 # endif
2060 _GL_FUNCDECL_RPL (round, double, (double x));
2061 _GL_CXXALIAS_RPL (round, double, (double x));
2062 # else
2063 # if !@HAVE_DECL_ROUND@
2064 _GL_FUNCDECL_SYS (round, double, (double x));
2065 # endif
2066 _GL_CXXALIAS_SYS (round, double, (double x));
2067 # endif
2068 # if __GLIBC__ >= 2
2069 _GL_CXXALIASWARN1 (round, double, (double x));
2070 # endif
2071 #elif defined GNULIB_POSIXCHECK
2072 # undef round
2073 # if HAVE_RAW_DECL_ROUND
2074 _GL_WARN_ON_USE (round, "round is unportable - "
2075 "use gnulib module round for portability");
2076 # endif
2077 #endif
2079 #if @GNULIB_ROUNDL@
2080 # if @REPLACE_ROUNDL@
2081 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2082 # undef roundl
2083 # define roundl rpl_roundl
2084 # endif
2085 _GL_FUNCDECL_RPL (roundl, long double, (long double x));
2086 _GL_CXXALIAS_RPL (roundl, long double, (long double x));
2087 # else
2088 # if !@HAVE_DECL_ROUNDL@
2089 # undef roundl
2090 # if !(defined __cplusplus && defined _AIX)
2091 _GL_FUNCDECL_SYS (roundl, long double, (long double x));
2092 # endif
2093 # endif
2094 _GL_CXXALIAS_SYS (roundl, long double, (long double x));
2095 # endif
2096 _GL_CXXALIASWARN (roundl);
2097 #elif defined GNULIB_POSIXCHECK
2098 # undef roundl
2099 # if HAVE_RAW_DECL_ROUNDL
2100 _GL_WARN_ON_USE (roundl, "roundl is unportable - "
2101 "use gnulib module roundl for portability");
2102 # endif
2103 #endif
2106 #if @GNULIB_SINF@
2107 # if @REPLACE_SINF@
2108 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2109 # undef sinf
2110 # define sinf rpl_sinf
2111 # endif
2112 _GL_FUNCDECL_RPL (sinf, float, (float x));
2113 _GL_CXXALIAS_RPL (sinf, float, (float x));
2114 # else
2115 # if !@HAVE_SINF@
2116 # undef sinf
2117 _GL_FUNCDECL_SYS (sinf, float, (float x));
2118 # endif
2119 _GL_CXXALIAS_SYS (sinf, float, (float x));
2120 # endif
2121 _GL_CXXALIASWARN (sinf);
2122 #elif defined GNULIB_POSIXCHECK
2123 # undef sinf
2124 # if HAVE_RAW_DECL_SINF
2125 _GL_WARN_ON_USE (sinf, "sinf is unportable - "
2126 "use gnulib module sinf for portability");
2127 # endif
2128 #endif
2130 #if @GNULIB_SINL@
2131 # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
2132 # undef sinl
2133 _GL_FUNCDECL_SYS (sinl, long double, (long double x));
2134 # endif
2135 _GL_CXXALIAS_SYS (sinl, long double, (long double x));
2136 # if __GLIBC__ >= 2
2137 _GL_CXXALIASWARN (sinl);
2138 # endif
2139 #elif defined GNULIB_POSIXCHECK
2140 # undef sinl
2141 # if HAVE_RAW_DECL_SINL
2142 _GL_WARN_ON_USE (sinl, "sinl is unportable - "
2143 "use gnulib module sinl for portability");
2144 # endif
2145 #endif
2148 #if @GNULIB_SINHF@
2149 # if @REPLACE_SINHF@
2150 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2151 # undef sinhf
2152 # define sinhf rpl_sinhf
2153 # endif
2154 _GL_FUNCDECL_RPL (sinhf, float, (float x));
2155 _GL_CXXALIAS_RPL (sinhf, float, (float x));
2156 # else
2157 # if !@HAVE_SINHF@
2158 # undef sinhf
2159 _GL_FUNCDECL_SYS (sinhf, float, (float x));
2160 # endif
2161 _GL_CXXALIAS_SYS (sinhf, float, (float x));
2162 # endif
2163 _GL_CXXALIASWARN (sinhf);
2164 #elif defined GNULIB_POSIXCHECK
2165 # undef sinhf
2166 # if HAVE_RAW_DECL_SINHF
2167 _GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
2168 "use gnulib module sinhf for portability");
2169 # endif
2170 #endif
2173 #if @GNULIB_SQRTF@
2174 # if @REPLACE_SQRTF@
2175 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2176 # undef sqrtf
2177 # define sqrtf rpl_sqrtf
2178 # endif
2179 _GL_FUNCDECL_RPL (sqrtf, float, (float x));
2180 _GL_CXXALIAS_RPL (sqrtf, float, (float x));
2181 # else
2182 # if !@HAVE_SQRTF@
2183 # undef sqrtf
2184 _GL_FUNCDECL_SYS (sqrtf, float, (float x));
2185 # endif
2186 _GL_CXXALIAS_SYS (sqrtf, float, (float x));
2187 # endif
2188 _GL_CXXALIASWARN (sqrtf);
2189 #elif defined GNULIB_POSIXCHECK
2190 # undef sqrtf
2191 # if HAVE_RAW_DECL_SQRTF
2192 _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
2193 "use gnulib module sqrtf for portability");
2194 # endif
2195 #endif
2197 #if @GNULIB_SQRTL@
2198 # if @REPLACE_SQRTL@
2199 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2200 # undef sqrtl
2201 # define sqrtl rpl_sqrtl
2202 # endif
2203 _GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
2204 _GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
2205 # else
2206 # if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
2207 # undef sqrtl
2208 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
2209 # endif
2210 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
2211 # endif
2212 # if __GLIBC__ >= 2
2213 _GL_CXXALIASWARN (sqrtl);
2214 # endif
2215 #elif defined GNULIB_POSIXCHECK
2216 # undef sqrtl
2217 # if HAVE_RAW_DECL_SQRTL
2218 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
2219 "use gnulib module sqrtl for portability");
2220 # endif
2221 #endif
2224 #if @GNULIB_TANF@
2225 # if @REPLACE_TANF@
2226 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2227 # undef tanf
2228 # define tanf rpl_tanf
2229 # endif
2230 _GL_FUNCDECL_RPL (tanf, float, (float x));
2231 _GL_CXXALIAS_RPL (tanf, float, (float x));
2232 # else
2233 # if !@HAVE_TANF@
2234 # undef tanf
2235 _GL_FUNCDECL_SYS (tanf, float, (float x));
2236 # endif
2237 _GL_CXXALIAS_SYS (tanf, float, (float x));
2238 # endif
2239 _GL_CXXALIASWARN (tanf);
2240 #elif defined GNULIB_POSIXCHECK
2241 # undef tanf
2242 # if HAVE_RAW_DECL_TANF
2243 _GL_WARN_ON_USE (tanf, "tanf is unportable - "
2244 "use gnulib module tanf for portability");
2245 # endif
2246 #endif
2248 #if @GNULIB_TANL@
2249 # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@
2250 # undef tanl
2251 _GL_FUNCDECL_SYS (tanl, long double, (long double x));
2252 # endif
2253 _GL_CXXALIAS_SYS (tanl, long double, (long double x));
2254 # if __GLIBC__ >= 2
2255 _GL_CXXALIASWARN (tanl);
2256 # endif
2257 #elif defined GNULIB_POSIXCHECK
2258 # undef tanl
2259 # if HAVE_RAW_DECL_TANL
2260 _GL_WARN_ON_USE (tanl, "tanl is unportable - "
2261 "use gnulib module tanl for portability");
2262 # endif
2263 #endif
2266 #if @GNULIB_TANHF@
2267 # if @REPLACE_TANHF@
2268 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2269 # undef tanhf
2270 # define tanhf rpl_tanhf
2271 # endif
2272 _GL_FUNCDECL_RPL (tanhf, float, (float x));
2273 _GL_CXXALIAS_RPL (tanhf, float, (float x));
2274 # else
2275 # if !@HAVE_TANHF@
2276 # undef tanhf
2277 _GL_FUNCDECL_SYS (tanhf, float, (float x));
2278 # endif
2279 _GL_CXXALIAS_SYS (tanhf, float, (float x));
2280 # endif
2281 _GL_CXXALIASWARN (tanhf);
2282 #elif defined GNULIB_POSIXCHECK
2283 # undef tanhf
2284 # if HAVE_RAW_DECL_TANHF
2285 _GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
2286 "use gnulib module tanhf for portability");
2287 # endif
2288 #endif
2291 #if @GNULIB_TRUNCF@
2292 # if @REPLACE_TRUNCF@
2293 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2294 # undef truncf
2295 # define truncf rpl_truncf
2296 # endif
2297 _GL_FUNCDECL_RPL (truncf, float, (float x));
2298 _GL_CXXALIAS_RPL (truncf, float, (float x));
2299 # else
2300 # if !@HAVE_DECL_TRUNCF@
2301 _GL_FUNCDECL_SYS (truncf, float, (float x));
2302 # endif
2303 _GL_CXXALIAS_SYS (truncf, float, (float x));
2304 # endif
2305 _GL_CXXALIASWARN (truncf);
2306 #elif defined GNULIB_POSIXCHECK
2307 # undef truncf
2308 # if HAVE_RAW_DECL_TRUNCF
2309 _GL_WARN_ON_USE (truncf, "truncf is unportable - "
2310 "use gnulib module truncf for portability");
2311 # endif
2312 #endif
2314 #if @GNULIB_TRUNC@
2315 # if @REPLACE_TRUNC@
2316 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2317 # undef trunc
2318 # define trunc rpl_trunc
2319 # endif
2320 _GL_FUNCDECL_RPL (trunc, double, (double x));
2321 _GL_CXXALIAS_RPL (trunc, double, (double x));
2322 # else
2323 # if !@HAVE_DECL_TRUNC@
2324 _GL_FUNCDECL_SYS (trunc, double, (double x));
2325 # endif
2326 _GL_CXXALIAS_SYS (trunc, double, (double x));
2327 # endif
2328 # if __GLIBC__ >= 2
2329 _GL_CXXALIASWARN1 (trunc, double, (double x));
2330 # endif
2331 #elif defined GNULIB_POSIXCHECK
2332 # undef trunc
2333 # if HAVE_RAW_DECL_TRUNC
2334 _GL_WARN_ON_USE (trunc, "trunc is unportable - "
2335 "use gnulib module trunc for portability");
2336 # endif
2337 #endif
2339 #if @GNULIB_TRUNCL@
2340 # if @REPLACE_TRUNCL@
2341 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2342 # undef truncl
2343 # define truncl rpl_truncl
2344 # endif
2345 _GL_FUNCDECL_RPL (truncl, long double, (long double x));
2346 _GL_CXXALIAS_RPL (truncl, long double, (long double x));
2347 # else
2348 # if !@HAVE_DECL_TRUNCL@
2349 _GL_FUNCDECL_SYS (truncl, long double, (long double x));
2350 # endif
2351 _GL_CXXALIAS_SYS (truncl, long double, (long double x));
2352 # endif
2353 _GL_CXXALIASWARN (truncl);
2354 #elif defined GNULIB_POSIXCHECK
2355 # undef truncl
2356 # if HAVE_RAW_DECL_TRUNCL
2357 _GL_WARN_ON_USE (truncl, "truncl is unportable - "
2358 "use gnulib module truncl for portability");
2359 # endif
2360 #endif
2363 #if @GNULIB_MDA_Y0@
2364 /* On native Windows, map 'y0' to '_y0', so that -loldnames is not
2365 required. In C++ with GNULIB_NAMESPACE, avoid differences between
2366 platforms by defining GNULIB_NAMESPACE::y0 always. */
2367 # if defined _WIN32 && !defined __CYGWIN__
2368 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2369 # undef y0
2370 # define y0 _y0
2371 # endif
2372 _GL_CXXALIAS_MDA (y0, double, (double x));
2373 # else
2374 _GL_CXXALIAS_SYS (y0, double, (double x));
2375 # endif
2376 _GL_CXXALIASWARN (y0);
2377 #endif
2379 #if @GNULIB_MDA_Y1@
2380 /* On native Windows, map 'y1' to '_y1', so that -loldnames is not
2381 required. In C++ with GNULIB_NAMESPACE, avoid differences between
2382 platforms by defining GNULIB_NAMESPACE::y1 always. */
2383 # if defined _WIN32 && !defined __CYGWIN__
2384 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2385 # undef y1
2386 # define y1 _y1
2387 # endif
2388 _GL_CXXALIAS_MDA (y1, double, (double x));
2389 # else
2390 _GL_CXXALIAS_SYS (y1, double, (double x));
2391 # endif
2392 _GL_CXXALIASWARN (y1);
2393 #endif
2395 #if @GNULIB_MDA_YN@
2396 /* On native Windows, map 'yn' to '_yn', so that -loldnames is not
2397 required. In C++ with GNULIB_NAMESPACE, avoid differences between
2398 platforms by defining GNULIB_NAMESPACE::yn always. */
2399 # if defined _WIN32 && !defined __CYGWIN__
2400 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2401 # undef yn
2402 # define yn _yn
2403 # endif
2404 _GL_CXXALIAS_MDA (yn, double, (int n, double x));
2405 # else
2406 _GL_CXXALIAS_SYS (yn, double, (int n, double x));
2407 # endif
2408 _GL_CXXALIASWARN (yn);
2409 #endif
2412 /* Definitions of function-like macros come here, after the function
2413 declarations. */
2416 #if @GNULIB_ISFINITE@
2417 # if @REPLACE_ISFINITE@
2418 _GL_EXTERN_C int gl_isfinitef (float x);
2419 _GL_EXTERN_C int gl_isfinited (double x);
2420 _GL_EXTERN_C int gl_isfinitel (long double x);
2421 # undef isfinite
2422 # define isfinite(x) \
2423 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
2424 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
2425 gl_isfinitef (x))
2426 # endif
2427 # ifdef __cplusplus
2428 # if defined isfinite || defined GNULIB_NAMESPACE
2429 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
2430 # undef isfinite
2431 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
2432 /* This platform's <cmath> possibly defines isfinite through a set of inline
2433 functions. */
2434 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool)
2435 # define isfinite rpl_isfinite
2436 # define GNULIB_NAMESPACE_LACKS_ISFINITE 1
2437 # else
2438 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool)
2439 # endif
2440 # endif
2441 # endif
2442 #elif defined GNULIB_POSIXCHECK
2443 # if defined isfinite
2444 _GL_WARN_REAL_FLOATING_DECL (isfinite);
2445 # undef isfinite
2446 # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
2447 # endif
2448 #endif
2451 #if @GNULIB_ISINF@
2452 # if @REPLACE_ISINF@
2453 _GL_EXTERN_C int gl_isinff (float x);
2454 _GL_EXTERN_C int gl_isinfd (double x);
2455 _GL_EXTERN_C int gl_isinfl (long double x);
2456 # undef isinf
2457 # define isinf(x) \
2458 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
2459 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
2460 gl_isinff (x))
2461 # endif
2462 # ifdef __cplusplus
2463 # if defined isinf || defined GNULIB_NAMESPACE
2464 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
2465 # undef isinf
2466 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
2467 /* This platform's <cmath> possibly defines isinf through a set of inline
2468 functions. */
2469 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, rpl_isinf, bool)
2470 # define isinf rpl_isinf
2471 # define GNULIB_NAMESPACE_LACKS_ISINF 1
2472 # else
2473 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool)
2474 # endif
2475 # endif
2476 # endif
2477 #elif defined GNULIB_POSIXCHECK
2478 # if defined isinf
2479 _GL_WARN_REAL_FLOATING_DECL (isinf);
2480 # undef isinf
2481 # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
2482 # endif
2483 #endif
2486 #if @GNULIB_ISNANF@
2487 /* Test for NaN for 'float' numbers. */
2488 # if @HAVE_ISNANF@
2489 /* The original <math.h> included above provides a declaration of isnan macro
2490 or (older) isnanf function. */
2491 # if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2492 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
2493 GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't. */
2494 # undef isnanf
2495 # define isnanf(x) __builtin_isnan ((float)(x))
2496 # elif defined isnan
2497 # undef isnanf
2498 # define isnanf(x) isnan ((float)(x))
2499 # endif
2500 # else
2501 /* Test whether X is a NaN. */
2502 # undef isnanf
2503 # define isnanf rpl_isnanf
2504 _GL_EXTERN_C int isnanf (float x);
2505 # endif
2506 #endif
2508 #if @GNULIB_ISNAND@
2509 /* Test for NaN for 'double' numbers.
2510 This function is a gnulib extension, unlike isnan() which applied only
2511 to 'double' numbers earlier but now is a type-generic macro. */
2512 # if @HAVE_ISNAND@
2513 /* The original <math.h> included above provides a declaration of isnan
2514 macro. */
2515 # if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2516 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. */
2517 # undef isnand
2518 # define isnand(x) __builtin_isnan ((double)(x))
2519 # else
2520 # undef isnand
2521 # define isnand(x) isnan ((double)(x))
2522 # endif
2523 # else
2524 /* Test whether X is a NaN. */
2525 # undef isnand
2526 # define isnand rpl_isnand
2527 _GL_EXTERN_C int isnand (double x);
2528 # endif
2529 #endif
2531 #if @GNULIB_ISNANL@
2532 /* Test for NaN for 'long double' numbers. */
2533 # if @HAVE_ISNANL@
2534 /* The original <math.h> included above provides a declaration of isnan
2535 macro or (older) isnanl function. */
2536 # if (__GNUC__ >= 4) || (__clang_major__ >= 4)
2537 /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
2538 GCC >= 4.0 also provides __builtin_isnanl, but clang doesn't. */
2539 # undef isnanl
2540 # define isnanl(x) __builtin_isnan ((long double)(x))
2541 # elif defined isnan
2542 # undef isnanl
2543 # define isnanl(x) isnan ((long double)(x))
2544 # endif
2545 # else
2546 /* Test whether X is a NaN. */
2547 # undef isnanl
2548 # define isnanl rpl_isnanl
2549 _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
2550 # endif
2551 #endif
2553 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */
2554 #if @GNULIB_ISNAN@
2555 # if @REPLACE_ISNAN@
2556 /* We can't just use the isnanf macro (e.g.) as exposed by
2557 isnanf.h (e.g.) here, because those may end up being macros
2558 that recursively expand back to isnan. So use the gnulib
2559 replacements for them directly. */
2560 # if @HAVE_ISNANF@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2561 # define gl_isnan_f(x) __builtin_isnan ((float)(x))
2562 # else
2563 _GL_EXTERN_C int rpl_isnanf (float x);
2564 # define gl_isnan_f(x) rpl_isnanf (x)
2565 # endif
2566 # if @HAVE_ISNAND@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2567 # define gl_isnan_d(x) __builtin_isnan ((double)(x))
2568 # else
2569 _GL_EXTERN_C int rpl_isnand (double x);
2570 # define gl_isnan_d(x) rpl_isnand (x)
2571 # endif
2572 # if @HAVE_ISNANL@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
2573 # define gl_isnan_l(x) __builtin_isnan ((long double)(x))
2574 # else
2575 _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
2576 # define gl_isnan_l(x) rpl_isnanl (x)
2577 # endif
2578 # undef isnan
2579 # define isnan(x) \
2580 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
2581 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
2582 gl_isnan_f (x))
2583 # elif (__GNUC__ >= 4) || (__clang_major__ >= 4)
2584 # undef isnan
2585 # define isnan(x) \
2586 (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \
2587 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
2588 __builtin_isnan ((float)(x)))
2589 # endif
2590 # ifdef __cplusplus
2591 # if defined isnan || defined GNULIB_NAMESPACE
2592 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
2593 # undef isnan
2594 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__ && __clang_major__ < 12) || (defined __FreeBSD__ && __clang_major__ < 7) || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
2595 /* This platform's <cmath> possibly defines isnan through a set of inline
2596 functions. */
2597 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, rpl_isnan, bool)
2598 # define isnan rpl_isnan
2599 # define GNULIB_NAMESPACE_LACKS_ISNAN 1
2600 # else
2601 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool)
2602 # endif
2603 # endif
2604 # else
2605 /* Ensure isnan is a macro. */
2606 # ifndef isnan
2607 # define isnan isnan
2608 # endif
2609 # endif
2610 #elif defined GNULIB_POSIXCHECK
2611 # if defined isnan
2612 _GL_WARN_REAL_FLOATING_DECL (isnan);
2613 # undef isnan
2614 # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
2615 # endif
2616 #endif
2619 #if @GNULIB_SIGNBIT@
2620 # if (@REPLACE_SIGNBIT_USING_BUILTINS@ \
2621 && (!defined __cplusplus || __cplusplus < 201103))
2622 # undef signbit
2623 /* GCC >= 4.0 and clang provide three built-ins for signbit. */
2624 # define signbit(x) \
2625 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
2626 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
2627 __builtin_signbitf (x))
2628 # endif
2629 # if @REPLACE_SIGNBIT@ && !GNULIB_defined_signbit
2630 # undef signbit
2631 _GL_EXTERN_C int gl_signbitf (float arg);
2632 _GL_EXTERN_C int gl_signbitd (double arg);
2633 _GL_EXTERN_C int gl_signbitl (long double arg);
2634 # if (__GNUC__ >= 2 || defined __clang__) && !defined __STRICT_ANSI__
2635 # define _GL_NUM_UINT_WORDS(type) \
2636 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
2637 # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
2638 # define gl_signbitf_OPTIMIZED_MACRO
2639 # define gl_signbitf(arg) \
2640 ({ union { float _value; \
2641 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \
2642 } _m; \
2643 _m._value = (arg); \
2644 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \
2646 # endif
2647 # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
2648 # define gl_signbitd_OPTIMIZED_MACRO
2649 # define gl_signbitd(arg) \
2650 ({ union { double _value; \
2651 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \
2652 } _m; \
2653 _m._value = (arg); \
2654 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \
2656 # endif
2657 # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
2658 # define gl_signbitl_OPTIMIZED_MACRO
2659 # define gl_signbitl(arg) \
2660 ({ union { long double _value; \
2661 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
2662 } _m; \
2663 _m._value = (arg); \
2664 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \
2666 # endif
2667 # endif
2668 # define signbit(x) \
2669 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
2670 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
2671 gl_signbitf (x))
2672 # define GNULIB_defined_signbit 1
2673 # endif
2674 # ifdef __cplusplus
2675 # if defined signbit || defined GNULIB_NAMESPACE
2676 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
2677 # undef signbit
2678 # if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
2679 /* This platform's <cmath> possibly defines signbit through a set of inline
2680 functions. */
2681 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, rpl_signbit, bool)
2682 # define signbit rpl_signbit
2683 # define GNULIB_NAMESPACE_LACKS_SIGNBIT 1
2684 # else
2685 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, signbit, bool)
2686 # endif
2687 # endif
2688 # endif
2689 #elif defined GNULIB_POSIXCHECK
2690 # if defined signbit
2691 _GL_WARN_REAL_FLOATING_DECL (signbit);
2692 # undef signbit
2693 # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
2694 # endif
2695 #endif
2697 _GL_INLINE_HEADER_END
2699 #endif /* _@GUARD_PREFIX@_MATH_H */
2700 #endif /* _GL_INCLUDING_MATH_H */
2701 #endif /* _@GUARD_PREFIX@_MATH_H */