1 /* A GNU-like <math.h>.
2
3 Copyright (C) 2002-2003, 2007-2012 Free Software Foundation, Inc.
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17
18 #ifndef _@GUARD_PREFIX@_MATH_H
19
20 #if __GNUC__ >= 3
21 @PRAGMA_SYSTEM_HEADER@
22 #endif
23 @PRAGMA_COLUMNS@
24
25 /* The include_next requires a split double-inclusion guard. */
26 #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
27
28 #ifndef _@GUARD_PREFIX@_MATH_H
29 #define _@GUARD_PREFIX@_MATH_H
30
31 _GL_INLINE_HEADER_BEGIN
32 #ifndef _GL_MATH_INLINE
33 # define _GL_MATH_INLINE _GL_INLINE
34 #endif
35
36 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
37
38 /* The definition of _GL_ARG_NONNULL is copied here. */
39
40 /* The definition of _GL_WARN_ON_USE is copied here. */
41
42 #ifdef __cplusplus
43 /* Helper macros to define type-generic function FUNC as overloaded functions,
44 rather than as macros like in C. POSIX declares these with an argument of
45 real-floating (that is, one of float, double, or long double). */
46 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \
47 static inline int \
48 _gl_cxx_ ## func ## f (float f) \
49 { \
50 return func (f); \
51 } \
52 static inline int \
53 _gl_cxx_ ## func ## d (double d) \
54 { \
55 return func (d); \
56 } \
57 static inline int \
58 _gl_cxx_ ## func ## l (long double l) \
59 { \
60 return func (l); \
61 }
62 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \
63 inline int \
64 func (float f) \
65 { \
66 return _gl_cxx_ ## func ## f (f); \
67 } \
68 inline int \
69 func (double d) \
70 { \
71 return _gl_cxx_ ## func ## d (d); \
72 } \
73 inline int \
74 func (long double l) \
75 { \
76 return _gl_cxx_ ## func ## l (l); \
77 }
78 #endif
79
80 /* Helper macros to define a portability warning for the
81 classification macro FUNC called with VALUE. POSIX declares the
82 classification macros with an argument of real-floating (that is,
83 one of float, double, or long double). */
84 #define _GL_WARN_REAL_FLOATING_DECL(func) \
85 _GL_MATH_INLINE int \
86 rpl_ ## func ## f (float f) \
87 { \
88 return func (f); \
89 } \
90 _GL_MATH_INLINE int \
91 rpl_ ## func ## d (double d) \
92 { \
93 return func (d); \
94 } \
95 _GL_MATH_INLINE int \
96 rpl_ ## func ## l (long double l) \
97 { \
98 return func (l); \
99 } \
100 _GL_WARN_ON_USE (rpl_ ## func ## f, #func " is unportable - " \
101 "use gnulib module " #func " for portability"); \
102 _GL_WARN_ON_USE (rpl_ ## func ## d, #func " is unportable - " \
103 "use gnulib module " #func " for portability"); \
104 _GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \
105 "use gnulib module " #func " for portability")
106 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
107 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \
108 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \
109 : rpl_ ## func ## l (value))
110
111
112 #if @REPLACE_ITOLD@
113 /* Pull in a function that fixes the 'int' to 'long double' conversion
114 of glibc 2.7. */
115 _GL_EXTERN_C void _Qp_itoq (long double *, int);
116 static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
117 #endif
118
119
120 /* POSIX allows platforms that don't support NAN. But all major
121 machines in the past 15 years have supported something close to
122 IEEE NaN, so we define this unconditionally. We also must define
123 it on platforms like Solaris 10, where NAN is present but defined
124 as a function pointer rather than a floating point constant. */
125 #if !defined NAN || @REPLACE_NAN@
126 # if !GNULIB_defined_NAN
127 # undef NAN
128 /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
129 choke on the expression 0.0 / 0.0. */
130 # if defined __DECC || defined _MSC_VER
131 _GL_MATH_INLINE float
_NaN()132 _NaN ()
133 {
134 static float zero = 0.0f;
135 return zero / zero;
136 }
137 # define NAN (_NaN())
138 # else
139 # define NAN (0.0f / 0.0f)
140 # endif
141 # define GNULIB_defined_NAN 1
142 # endif
143 #endif
144
145 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
146 than a floating point constant. */
147 #if @REPLACE_HUGE_VAL@
148 # undef HUGE_VALF
149 # define HUGE_VALF (1.0f / 0.0f)
150 # undef HUGE_VAL
151 # define HUGE_VAL (1.0 / 0.0)
152 # undef HUGE_VALL
153 # define HUGE_VALL (1.0L / 0.0L)
154 #endif
155
156 /* HUGE_VALF is a 'float' Infinity. */
157 #ifndef HUGE_VALF
158 # if defined _MSC_VER
159 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f. */
160 # define HUGE_VALF (1e25f * 1e25f)
161 # else
162 # define HUGE_VALF (1.0f / 0.0f)
163 # endif
164 #endif
165
166 /* HUGE_VAL is a 'double' Infinity. */
167 #ifndef HUGE_VAL
168 # if defined _MSC_VER
169 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0. */
170 # define HUGE_VAL (1e250 * 1e250)
171 # else
172 # define HUGE_VAL (1.0 / 0.0)
173 # endif
174 #endif
175
176 /* HUGE_VALL is a 'long double' Infinity. */
177 #ifndef HUGE_VALL
178 # if defined _MSC_VER
179 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L. */
180 # define HUGE_VALL (1e250L * 1e250L)
181 # else
182 # define HUGE_VALL (1.0L / 0.0L)
183 # endif
184 #endif
185
186
187 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */
188 #if !(defined FP_ILOGB0 && defined FP_ILOGBNAN)
189 # if defined __NetBSD__ || defined __sgi
190 /* NetBSD, IRIX 6.5: match what ilogb() does */
191 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
192 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
193 # elif defined _AIX
194 /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */
195 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
196 # define FP_ILOGBNAN 2147483647 /* INT_MAX */
197 # elif defined __sun
198 /* Solaris 9: match what ilogb() does */
199 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
200 # define FP_ILOGBNAN 2147483647 /* INT_MAX */
201 # else
202 /* Gnulib defined values. */
203 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
204 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
205 # endif
206 #endif
207
208
209 #if @GNULIB_ACOSF@
210 # if !@HAVE_ACOSF@
211 # undef acosf
212 _GL_FUNCDECL_SYS (acosf, float, (float x));
213 # endif
214 _GL_CXXALIAS_SYS (acosf, float, (float x));
215 _GL_CXXALIASWARN (acosf);
216 #elif defined GNULIB_POSIXCHECK
217 # undef acosf
218 # if HAVE_RAW_DECL_ACOSF
219 _GL_WARN_ON_USE (acosf, "acosf is unportable - "
220 "use gnulib module acosf for portability");
221 # endif
222 #endif
223
224 #if @GNULIB_ACOSL@
225 # if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@
226 # undef acosl
227 _GL_FUNCDECL_SYS (acosl, long double, (long double x));
228 # endif
229 _GL_CXXALIAS_SYS (acosl, long double, (long double x));
230 _GL_CXXALIASWARN (acosl);
231 #elif defined GNULIB_POSIXCHECK
232 # undef acosl
233 # if HAVE_RAW_DECL_ACOSL
234 _GL_WARN_ON_USE (acosl, "acosl is unportable - "
235 "use gnulib module acosl for portability");
236 # endif
237 #endif
238
239
240 #if @GNULIB_ASINF@
241 # if !@HAVE_ASINF@
242 # undef asinf
243 _GL_FUNCDECL_SYS (asinf, float, (float x));
244 # endif
245 _GL_CXXALIAS_SYS (asinf, float, (float x));
246 _GL_CXXALIASWARN (asinf);
247 #elif defined GNULIB_POSIXCHECK
248 # undef asinf
249 # if HAVE_RAW_DECL_ASINF
250 _GL_WARN_ON_USE (asinf, "asinf is unportable - "
251 "use gnulib module asinf for portability");
252 # endif
253 #endif
254
255 #if @GNULIB_ASINL@
256 # if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@
257 # undef asinl
258 _GL_FUNCDECL_SYS (asinl, long double, (long double x));
259 # endif
260 _GL_CXXALIAS_SYS (asinl, long double, (long double x));
261 _GL_CXXALIASWARN (asinl);
262 #elif defined GNULIB_POSIXCHECK
263 # undef asinl
264 # if HAVE_RAW_DECL_ASINL
265 _GL_WARN_ON_USE (asinl, "asinl is unportable - "
266 "use gnulib module asinl for portability");
267 # endif
268 #endif
269
270
271 #if @GNULIB_ATANF@
272 # if !@HAVE_ATANF@
273 # undef atanf
274 _GL_FUNCDECL_SYS (atanf, float, (float x));
275 # endif
276 _GL_CXXALIAS_SYS (atanf, float, (float x));
277 _GL_CXXALIASWARN (atanf);
278 #elif defined GNULIB_POSIXCHECK
279 # undef atanf
280 # if HAVE_RAW_DECL_ATANF
281 _GL_WARN_ON_USE (atanf, "atanf is unportable - "
282 "use gnulib module atanf for portability");
283 # endif
284 #endif
285
286 #if @GNULIB_ATANL@
287 # if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@
288 # undef atanl
289 _GL_FUNCDECL_SYS (atanl, long double, (long double x));
290 # endif
291 _GL_CXXALIAS_SYS (atanl, long double, (long double x));
292 _GL_CXXALIASWARN (atanl);
293 #elif defined GNULIB_POSIXCHECK
294 # undef atanl
295 # if HAVE_RAW_DECL_ATANL
296 _GL_WARN_ON_USE (atanl, "atanl is unportable - "
297 "use gnulib module atanl for portability");
298 # endif
299 #endif
300
301
302 #if @GNULIB_ATAN2F@
303 # if !@HAVE_ATAN2F@
304 # undef atan2f
305 _GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
306 # endif
307 _GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
308 _GL_CXXALIASWARN (atan2f);
309 #elif defined GNULIB_POSIXCHECK
310 # undef atan2f
311 # if HAVE_RAW_DECL_ATAN2F
312 _GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
313 "use gnulib module atan2f for portability");
314 # endif
315 #endif
316
317
318 #if @GNULIB_CBRTF@
319 # if @REPLACE_CBRTF@
320 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
321 # undef cbrtf
322 # define cbrtf rpl_cbrtf
323 # endif
324 _GL_FUNCDECL_RPL (cbrtf, float, (float x));
325 _GL_CXXALIAS_RPL (cbrtf, float, (float x));
326 # else
327 # if !@HAVE_DECL_CBRTF@
328 _GL_FUNCDECL_SYS (cbrtf, float, (float x));
329 # endif
330 _GL_CXXALIAS_SYS (cbrtf, float, (float x));
331 # endif
332 _GL_CXXALIASWARN (cbrtf);
333 #elif defined GNULIB_POSIXCHECK
334 # undef cbrtf
335 # if HAVE_RAW_DECL_CBRTF
336 _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
337 "use gnulib module cbrtf for portability");
338 # endif
339 #endif
340
341 #if @GNULIB_CBRT@
342 # if !@HAVE_CBRT@
343 _GL_FUNCDECL_SYS (cbrt, double, (double x));
344 # endif
345 _GL_CXXALIAS_SYS (cbrt, double, (double x));
346 _GL_CXXALIASWARN (cbrt);
347 #elif defined GNULIB_POSIXCHECK
348 # undef cbrt
349 # if HAVE_RAW_DECL_CBRT
350 _GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
351 "use gnulib module cbrt for portability");
352 # endif
353 #endif
354
355 #if @GNULIB_CBRTL@
356 # if @REPLACE_CBRTL@
357 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
358 # undef cbrtl
359 # define cbrtl rpl_cbrtl
360 # endif
361 _GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
362 _GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
363 # else
364 # if !@HAVE_DECL_CBRTL@
365 _GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
366 # endif
367 _GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
368 # endif
369 _GL_CXXALIASWARN (cbrtl);
370 #elif defined GNULIB_POSIXCHECK
371 # undef cbrtl
372 # if HAVE_RAW_DECL_CBRTL
373 _GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
374 "use gnulib module cbrtl for portability");
375 # endif
376 #endif
377
378
379 #if @GNULIB_CEILF@
380 # if @REPLACE_CEILF@
381 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
382 # undef ceilf
383 # define ceilf rpl_ceilf
384 # endif
385 _GL_FUNCDECL_RPL (ceilf, float, (float x));
386 _GL_CXXALIAS_RPL (ceilf, float, (float x));
387 # else
388 # if !@HAVE_DECL_CEILF@
389 # undef ceilf
390 _GL_FUNCDECL_SYS (ceilf, float, (float x));
391 # endif
392 _GL_CXXALIAS_SYS (ceilf, float, (float x));
393 # endif
394 _GL_CXXALIASWARN (ceilf);
395 #elif defined GNULIB_POSIXCHECK
396 # undef ceilf
397 # if HAVE_RAW_DECL_CEILF
398 _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
399 "use gnulib module ceilf for portability");
400 # endif
401 #endif
402
403 #if @GNULIB_CEIL@
404 # if @REPLACE_CEIL@
405 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
406 # define ceil rpl_ceil
407 # endif
408 _GL_FUNCDECL_RPL (ceil, double, (double x));
409 _GL_CXXALIAS_RPL (ceil, double, (double x));
410 # else
411 _GL_CXXALIAS_SYS (ceil, double, (double x));
412 # endif
413 _GL_CXXALIASWARN (ceil);
414 #endif
415
416 #if @GNULIB_CEILL@
417 # if @REPLACE_CEILL@
418 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
419 # undef ceill
420 # define ceill rpl_ceill
421 # endif
422 _GL_FUNCDECL_RPL (ceill, long double, (long double x));
423 _GL_CXXALIAS_RPL (ceill, long double, (long double x));
424 # else
425 # if !@HAVE_DECL_CEILL@
426 # undef ceill
427 _GL_FUNCDECL_SYS (ceill, long double, (long double x));
428 # endif
429 _GL_CXXALIAS_SYS (ceill, long double, (long double x));
430 # endif
431 _GL_CXXALIASWARN (ceill);
432 #elif defined GNULIB_POSIXCHECK
433 # undef ceill
434 # if HAVE_RAW_DECL_CEILL
435 _GL_WARN_ON_USE (ceill, "ceill is unportable - "
436 "use gnulib module ceill for portability");
437 # endif
438 #endif
439
440
441 #if @GNULIB_COPYSIGNF@
442 # if !@HAVE_DECL_COPYSIGNF@
443 _GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
444 # endif
445 _GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
446 _GL_CXXALIASWARN (copysignf);
447 #elif defined GNULIB_POSIXCHECK
448 # undef copysignf
449 # if HAVE_RAW_DECL_COPYSIGNF
450 _GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
451 "use gnulib module copysignf for portability");
452 # endif
453 #endif
454
455 #if @GNULIB_COPYSIGN@
456 # if !@HAVE_COPYSIGN@
457 _GL_FUNCDECL_SYS (copysign, double, (double x, double y));
458 # endif
459 _GL_CXXALIAS_SYS (copysign, double, (double x, double y));
460 _GL_CXXALIASWARN (copysign);
461 #elif defined GNULIB_POSIXCHECK
462 # undef copysign
463 # if HAVE_RAW_DECL_COPYSIGN
464 _GL_WARN_ON_USE (copysign, "copysign is unportable - "
465 "use gnulib module copysign for portability");
466 # endif
467 #endif
468
469 #if @GNULIB_COPYSIGNL@
470 # if !@HAVE_COPYSIGNL@
471 _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
472 # endif
473 _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
474 _GL_CXXALIASWARN (copysignl);
475 #elif defined GNULIB_POSIXCHECK
476 # undef copysignl
477 # if HAVE_RAW_DECL_COPYSIGNL
478 _GL_WARN_ON_USE (copysign, "copysignl is unportable - "
479 "use gnulib module copysignl for portability");
480 # endif
481 #endif
482
483
484 #if @GNULIB_COSF@
485 # if !@HAVE_COSF@
486 # undef cosf
487 _GL_FUNCDECL_SYS (cosf, float, (float x));
488 # endif
489 _GL_CXXALIAS_SYS (cosf, float, (float x));
490 _GL_CXXALIASWARN (cosf);
491 #elif defined GNULIB_POSIXCHECK
492 # undef cosf
493 # if HAVE_RAW_DECL_COSF
494 _GL_WARN_ON_USE (cosf, "cosf is unportable - "
495 "use gnulib module cosf for portability");
496 # endif
497 #endif
498
499 #if @GNULIB_COSL@
500 # if !@HAVE_COSL@ || !@HAVE_DECL_COSL@
501 # undef cosl
502 _GL_FUNCDECL_SYS (cosl, long double, (long double x));
503 # endif
504 _GL_CXXALIAS_SYS (cosl, long double, (long double x));
505 _GL_CXXALIASWARN (cosl);
506 #elif defined GNULIB_POSIXCHECK
507 # undef cosl
508 # if HAVE_RAW_DECL_COSL
509 _GL_WARN_ON_USE (cosl, "cosl is unportable - "
510 "use gnulib module cosl for portability");
511 # endif
512 #endif
513
514
515 #if @GNULIB_COSHF@
516 # if !@HAVE_COSHF@
517 # undef coshf
518 _GL_FUNCDECL_SYS (coshf, float, (float x));
519 # endif
520 _GL_CXXALIAS_SYS (coshf, float, (float x));
521 _GL_CXXALIASWARN (coshf);
522 #elif defined GNULIB_POSIXCHECK
523 # undef coshf
524 # if HAVE_RAW_DECL_COSHF
525 _GL_WARN_ON_USE (coshf, "coshf is unportable - "
526 "use gnulib module coshf for portability");
527 # endif
528 #endif
529
530
531 #if @GNULIB_EXPF@
532 # if !@HAVE_EXPF@
533 # undef expf
534 _GL_FUNCDECL_SYS (expf, float, (float x));
535 # endif
536 _GL_CXXALIAS_SYS (expf, float, (float x));
537 _GL_CXXALIASWARN (expf);
538 #elif defined GNULIB_POSIXCHECK
539 # undef expf
540 # if HAVE_RAW_DECL_EXPF
541 _GL_WARN_ON_USE (expf, "expf is unportable - "
542 "use gnulib module expf for portability");
543 # endif
544 #endif
545
546 #if @GNULIB_EXPL@
547 # if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@
548 # undef expl
549 _GL_FUNCDECL_SYS (expl, long double, (long double x));
550 # endif
551 _GL_CXXALIAS_SYS (expl, long double, (long double x));
552 _GL_CXXALIASWARN (expl);
553 #elif defined GNULIB_POSIXCHECK
554 # undef expl
555 # if HAVE_RAW_DECL_EXPL
556 _GL_WARN_ON_USE (expl, "expl is unportable - "
557 "use gnulib module expl for portability");
558 # endif
559 #endif
560
561
562 #if @GNULIB_EXP2F@
563 # if !@HAVE_DECL_EXP2F@
564 _GL_FUNCDECL_SYS (exp2f, float, (float x));
565 # endif
566 _GL_CXXALIAS_SYS (exp2f, float, (float x));
567 _GL_CXXALIASWARN (exp2f);
568 #elif defined GNULIB_POSIXCHECK
569 # undef exp2f
570 # if HAVE_RAW_DECL_EXP2F
571 _GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
572 "use gnulib module exp2f for portability");
573 # endif
574 #endif
575
576 #if @GNULIB_EXP2@
577 # if @REPLACE_EXP2@
578 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
579 # undef exp2
580 # define exp2 rpl_exp2
581 # endif
582 _GL_FUNCDECL_RPL (exp2, double, (double x));
583 _GL_CXXALIAS_RPL (exp2, double, (double x));
584 # else
585 # if !@HAVE_DECL_EXP2@
586 _GL_FUNCDECL_SYS (exp2, double, (double x));
587 # endif
588 _GL_CXXALIAS_SYS (exp2, double, (double x));
589 # endif
590 _GL_CXXALIASWARN (exp2);
591 #elif defined GNULIB_POSIXCHECK
592 # undef exp2
593 # if HAVE_RAW_DECL_EXP2
594 _GL_WARN_ON_USE (exp2, "exp2 is unportable - "
595 "use gnulib module exp2 for portability");
596 # endif
597 #endif
598
599 #if @GNULIB_EXP2L@
600 # if @REPLACE_EXP2L@
601 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
602 # undef exp2l
603 # define exp2l rpl_exp2l
604 # endif
605 _GL_FUNCDECL_RPL (exp2l, long double, (long double x));
606 _GL_CXXALIAS_RPL (exp2l, long double, (long double x));
607 # else
608 # if !@HAVE_DECL_EXP2L@
609 # undef exp2l
610 _GL_FUNCDECL_SYS (exp2l, long double, (long double x));
611 # endif
612 _GL_CXXALIAS_SYS (exp2l, long double, (long double x));
613 # endif
614 _GL_CXXALIASWARN (exp2l);
615 #elif defined GNULIB_POSIXCHECK
616 # undef exp2l
617 # if HAVE_RAW_DECL_EXP2L
618 _GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
619 "use gnulib module exp2l for portability");
620 # endif
621 #endif
622
623
624 #if @GNULIB_EXPM1F@
625 # if @REPLACE_EXPM1F@
626 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
627 # undef expm1f
628 # define expm1f rpl_expm1f
629 # endif
630 _GL_FUNCDECL_RPL (expm1f, float, (float x));
631 _GL_CXXALIAS_RPL (expm1f, float, (float x));
632 # else
633 # if !@HAVE_EXPM1F@
634 _GL_FUNCDECL_SYS (expm1f, float, (float x));
635 # endif
636 _GL_CXXALIAS_SYS (expm1f, float, (float x));
637 # endif
638 _GL_CXXALIASWARN (expm1f);
639 #elif defined GNULIB_POSIXCHECK
640 # undef expm1f
641 # if HAVE_RAW_DECL_EXPM1F
642 _GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
643 "use gnulib module expm1f for portability");
644 # endif
645 #endif
646
647 #if @GNULIB_EXPM1@
648 # if @REPLACE_EXPM1@
649 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
650 # undef expm1
651 # define expm1 rpl_expm1
652 # endif
653 _GL_FUNCDECL_RPL (expm1, double, (double x));
654 _GL_CXXALIAS_RPL (expm1, double, (double x));
655 # else
656 # if !@HAVE_EXPM1@
657 _GL_FUNCDECL_SYS (expm1, double, (double x));
658 # endif
659 _GL_CXXALIAS_SYS (expm1, double, (double x));
660 # endif
661 _GL_CXXALIASWARN (expm1);
662 #elif defined GNULIB_POSIXCHECK
663 # undef expm1
664 # if HAVE_RAW_DECL_EXPM1
665 _GL_WARN_ON_USE (expm1, "expm1 is unportable - "
666 "use gnulib module expm1 for portability");
667 # endif
668 #endif
669
670 #if @GNULIB_EXPM1L@
671 # if !@HAVE_DECL_EXPM1L@
672 # undef expm1l
673 _GL_FUNCDECL_SYS (expm1l, long double, (long double x));
674 # endif
675 _GL_CXXALIAS_SYS (expm1l, long double, (long double x));
676 _GL_CXXALIASWARN (expm1l);
677 #elif defined GNULIB_POSIXCHECK
678 # undef expm1l
679 # if HAVE_RAW_DECL_EXPM1L
680 _GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
681 "use gnulib module expm1l for portability");
682 # endif
683 #endif
684
685
686 #if @GNULIB_FABSF@
687 # if !@HAVE_FABSF@
688 # undef fabsf
689 _GL_FUNCDECL_SYS (fabsf, float, (float x));
690 # endif
691 _GL_CXXALIAS_SYS (fabsf, float, (float x));
692 _GL_CXXALIASWARN (fabsf);
693 #elif defined GNULIB_POSIXCHECK
694 # undef fabsf
695 # if HAVE_RAW_DECL_FABSF
696 _GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
697 "use gnulib module fabsf for portability");
698 # endif
699 #endif
700
701 #if @GNULIB_FABSL@
702 # if @REPLACE_FABSL@
703 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
704 # undef fabsl
705 # define fabsl rpl_fabsl
706 # endif
707 _GL_FUNCDECL_RPL (fabsl, long double, (long double x));
708 _GL_CXXALIAS_RPL (fabsl, long double, (long double x));
709 # else
710 # if !@HAVE_FABSL@
711 # undef fabsl
712 _GL_FUNCDECL_SYS (fabsl, long double, (long double x));
713 # endif
714 _GL_CXXALIAS_SYS (fabsl, long double, (long double x));
715 # endif
716 _GL_CXXALIASWARN (fabsl);
717 #elif defined GNULIB_POSIXCHECK
718 # undef fabsl
719 # if HAVE_RAW_DECL_FABSL
720 _GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
721 "use gnulib module fabsl for portability");
722 # endif
723 #endif
724
725
726 #if @GNULIB_FLOORF@
727 # if @REPLACE_FLOORF@
728 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
729 # undef floorf
730 # define floorf rpl_floorf
731 # endif
732 _GL_FUNCDECL_RPL (floorf, float, (float x));
733 _GL_CXXALIAS_RPL (floorf, float, (float x));
734 # else
735 # if !@HAVE_DECL_FLOORF@
736 # undef floorf
737 _GL_FUNCDECL_SYS (floorf, float, (float x));
738 # endif
739 _GL_CXXALIAS_SYS (floorf, float, (float x));
740 # endif
741 _GL_CXXALIASWARN (floorf);
742 #elif defined GNULIB_POSIXCHECK
743 # undef floorf
744 # if HAVE_RAW_DECL_FLOORF
745 _GL_WARN_ON_USE (floorf, "floorf is unportable - "
746 "use gnulib module floorf for portability");
747 # endif
748 #endif
749
750 #if @GNULIB_FLOOR@
751 # if @REPLACE_FLOOR@
752 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
753 # define floor rpl_floor
754 # endif
755 _GL_FUNCDECL_RPL (floor, double, (double x));
756 _GL_CXXALIAS_RPL (floor, double, (double x));
757 # else
758 _GL_CXXALIAS_SYS (floor, double, (double x));
759 # endif
760 _GL_CXXALIASWARN (floor);
761 #endif
762
763 #if @GNULIB_FLOORL@
764 # if @REPLACE_FLOORL@
765 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
766 # undef floorl
767 # define floorl rpl_floorl
768 # endif
769 _GL_FUNCDECL_RPL (floorl, long double, (long double x));
770 _GL_CXXALIAS_RPL (floorl, long double, (long double x));
771 # else
772 # if !@HAVE_DECL_FLOORL@
773 # undef floorl
774 _GL_FUNCDECL_SYS (floorl, long double, (long double x));
775 # endif
776 _GL_CXXALIAS_SYS (floorl, long double, (long double x));
777 # endif
778 _GL_CXXALIASWARN (floorl);
779 #elif defined GNULIB_POSIXCHECK
780 # undef floorl
781 # if HAVE_RAW_DECL_FLOORL
782 _GL_WARN_ON_USE (floorl, "floorl is unportable - "
783 "use gnulib module floorl for portability");
784 # endif
785 #endif
786
787
788 #if @GNULIB_FMAF@
789 # if @REPLACE_FMAF@
790 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
791 # undef fmaf
792 # define fmaf rpl_fmaf
793 # endif
794 _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
795 _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
796 # else
797 # if !@HAVE_FMAF@
798 _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
799 # endif
800 _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
801 # endif
802 _GL_CXXALIASWARN (fmaf);
803 #elif defined GNULIB_POSIXCHECK
804 # undef fmaf
805 # if HAVE_RAW_DECL_FMAF
806 _GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
807 "use gnulib module fmaf for portability");
808 # endif
809 #endif
810
811 #if @GNULIB_FMA@
812 # if @REPLACE_FMA@
813 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
814 # undef fma
815 # define fma rpl_fma
816 # endif
817 _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
818 _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
819 # else
820 # if !@HAVE_FMA@
821 _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
822 # endif
823 _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
824 # endif
825 _GL_CXXALIASWARN (fma);
826 #elif defined GNULIB_POSIXCHECK
827 # undef fma
828 # if HAVE_RAW_DECL_FMA
829 _GL_WARN_ON_USE (fma, "fma is unportable - "
830 "use gnulib module fma for portability");
831 # endif
832 #endif
833
834 #if @GNULIB_FMAL@
835 # if @REPLACE_FMAL@
836 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
837 # undef fmal
838 # define fmal rpl_fmal
839 # endif
840 _GL_FUNCDECL_RPL (fmal, long double,
841 (long double x, long double y, long double z));
842 _GL_CXXALIAS_RPL (fmal, long double,
843 (long double x, long double y, long double z));
844 # else
845 # if !@HAVE_FMAL@
846 # undef fmal
847 _GL_FUNCDECL_SYS (fmal, long double,
848 (long double x, long double y, long double z));
849 # endif
850 _GL_CXXALIAS_SYS (fmal, long double,
851 (long double x, long double y, long double z));
852 # endif
853 _GL_CXXALIASWARN (fmal);
854 #elif defined GNULIB_POSIXCHECK
855 # undef fmal
856 # if HAVE_RAW_DECL_FMAL
857 _GL_WARN_ON_USE (fmal, "fmal is unportable - "
858 "use gnulib module fmal for portability");
859 # endif
860 #endif
861
862
863 #if @GNULIB_FMODF@
864 # if @REPLACE_FMODF@
865 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
866 # undef fmodf
867 # define fmodf rpl_fmodf
868 # endif
869 _GL_FUNCDECL_RPL (fmodf, float, (float x, float y));
870 _GL_CXXALIAS_RPL (fmodf, float, (float x, float y));
871 # else
872 # if !@HAVE_FMODF@
873 # undef fmodf
874 _GL_FUNCDECL_SYS (fmodf, float, (float x, float y));
875 # endif
876 _GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
877 # endif
878 _GL_CXXALIASWARN (fmodf);
879 #elif defined GNULIB_POSIXCHECK
880 # undef fmodf
881 # if HAVE_RAW_DECL_FMODF
882 _GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
883 "use gnulib module fmodf for portability");
884 # endif
885 #endif
886
887 #if @GNULIB_FMOD@
888 # if @REPLACE_FMOD@
889 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
890 # undef fmod
891 # define fmod rpl_fmod
892 # endif
893 _GL_FUNCDECL_RPL (fmod, double, (double x, double y));
894 _GL_CXXALIAS_RPL (fmod, double, (double x, double y));
895 # else
896 _GL_CXXALIAS_SYS (fmod, double, (double x, double y));
897 # endif
898 _GL_CXXALIASWARN (fmod);
899 #elif defined GNULIB_POSIXCHECK
900 # undef fmod
901 # if HAVE_RAW_DECL_FMOD
902 _GL_WARN_ON_USE (fmod, "fmod has portability problems - "
903 "use gnulib module fmod for portability");
904 # endif
905 #endif
906
907 #if @GNULIB_FMODL@
908 # if @REPLACE_FMODL@
909 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
910 # undef fmodl
911 # define fmodl rpl_fmodl
912 # endif
913 _GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y));
914 _GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y));
915 # else
916 # if !@HAVE_FMODL@
917 # undef fmodl
918 _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
919 # endif
920 _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
921 # endif
922 _GL_CXXALIASWARN (fmodl);
923 #elif defined GNULIB_POSIXCHECK
924 # undef fmodl
925 # if HAVE_RAW_DECL_FMODL
926 _GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
927 "use gnulib module fmodl for portability");
928 # endif
929 #endif
930
931
932 /* Write x as
933 x = mantissa * 2^exp
934 where
935 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
936 If x is zero: mantissa = x, exp = 0.
937 If x is infinite or NaN: mantissa = x, exp unspecified.
938 Store exp in *EXPPTR and return mantissa. */
939 #if @GNULIB_FREXPF@
940 # if @REPLACE_FREXPF@
941 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
942 # undef frexpf
943 # define frexpf rpl_frexpf
944 # endif
945 _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
946 _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr));
947 # else
948 # if !@HAVE_FREXPF@
949 # undef frexpf
950 _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
951 # endif
952 _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
953 # endif
954 _GL_CXXALIASWARN (frexpf);
955 #elif defined GNULIB_POSIXCHECK
956 # undef frexpf
957 # if HAVE_RAW_DECL_FREXPF
958 _GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
959 "use gnulib module frexpf for portability");
960 # endif
961 #endif
962
963 /* Write x as
964 x = mantissa * 2^exp
965 where
966 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
967 If x is zero: mantissa = x, exp = 0.
968 If x is infinite or NaN: mantissa = x, exp unspecified.
969 Store exp in *EXPPTR and return mantissa. */
970 #if @GNULIB_FREXP@
971 # if @REPLACE_FREXP@
972 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
973 # define frexp rpl_frexp
974 # endif
975 _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
976 _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
977 # else
978 _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
979 # endif
980 _GL_CXXALIASWARN (frexp);
981 #elif defined GNULIB_POSIXCHECK
982 # undef frexp
983 /* Assume frexp is always declared. */
984 _GL_WARN_ON_USE (frexp, "frexp is unportable - "
985 "use gnulib module frexp for portability");
986 #endif
987
988 /* Write x as
989 x = mantissa * 2^exp
990 where
991 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
992 If x is zero: mantissa = x, exp = 0.
993 If x is infinite or NaN: mantissa = x, exp unspecified.
994 Store exp in *EXPPTR and return mantissa. */
995 #if @GNULIB_FREXPL@ && @REPLACE_FREXPL@
996 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
997 # undef frexpl
998 # define frexpl rpl_frexpl
999 # endif
1000 _GL_FUNCDECL_RPL (frexpl, long double,
1001 (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1002 _GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
1003 #else
1004 # if !@HAVE_DECL_FREXPL@
1005 _GL_FUNCDECL_SYS (frexpl, long double,
1006 (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1007 # endif
1008 # if @GNULIB_FREXPL@
1009 _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
1010 # endif
1011 #endif
1012 #if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@)
1013 _GL_CXXALIASWARN (frexpl);
1014 #endif
1015 #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
1016 # undef frexpl
1017 # if HAVE_RAW_DECL_FREXPL
1018 _GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
1019 "use gnulib module frexpl for portability");
1020 # endif
1021 #endif
1022
1023
1024 /* Return sqrt(x^2+y^2). */
1025 #if @GNULIB_HYPOTF@
1026 # if @REPLACE_HYPOTF@
1027 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1028 # undef hypotf
1029 # define hypotf rpl_hypotf
1030 # endif
1031 _GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
1032 _GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
1033 # else
1034 # if !@HAVE_HYPOTF@
1035 _GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
1036 # endif
1037 _GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
1038 # endif
1039 _GL_CXXALIASWARN (hypotf);
1040 #elif defined GNULIB_POSIXCHECK
1041 # undef hypotf
1042 # if HAVE_RAW_DECL_HYPOTF
1043 _GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
1044 "use gnulib module hypotf for portability");
1045 # endif
1046 #endif
1047
1048 /* Return sqrt(x^2+y^2). */
1049 #if @GNULIB_HYPOT@
1050 # if @REPLACE_HYPOT@
1051 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1052 # undef hypot
1053 # define hypot rpl_hypot
1054 # endif
1055 _GL_FUNCDECL_RPL (hypot, double, (double x, double y));
1056 _GL_CXXALIAS_RPL (hypot, double, (double x, double y));
1057 # else
1058 _GL_CXXALIAS_SYS (hypot, double, (double x, double y));
1059 # endif
1060 _GL_CXXALIASWARN (hypot);
1061 #elif defined GNULIB_POSIXCHECK
1062 # undef hypot
1063 # if HAVE_RAW_DECL_HYPOT
1064 _GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
1065 "use gnulib module hypot for portability");
1066 # endif
1067 #endif
1068
1069 /* Return sqrt(x^2+y^2). */
1070 #if @GNULIB_HYPOTL@
1071 # if @REPLACE_HYPOTL@
1072 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1073 # undef hypotl
1074 # define hypotl rpl_hypotl
1075 # endif
1076 _GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y));
1077 _GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y));
1078 # else
1079 # if !@HAVE_HYPOTL@
1080 _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
1081 # endif
1082 _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
1083 # endif
1084 _GL_CXXALIASWARN (hypotl);
1085 #elif defined GNULIB_POSIXCHECK
1086 # undef hypotl
1087 # if HAVE_RAW_DECL_HYPOTL
1088 _GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
1089 "use gnulib module hypotl for portability");
1090 # endif
1091 #endif
1092
1093
1094 #if @GNULIB_ILOGBF@
1095 # if @REPLACE_ILOGBF@
1096 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1097 # undef ilogbf
1098 # define ilogbf rpl_ilogbf
1099 # endif
1100 _GL_FUNCDECL_RPL (ilogbf, int, (float x));
1101 _GL_CXXALIAS_RPL (ilogbf, int, (float x));
1102 # else
1103 # if !@HAVE_ILOGBF@
1104 _GL_FUNCDECL_SYS (ilogbf, int, (float x));
1105 # endif
1106 _GL_CXXALIAS_SYS (ilogbf, int, (float x));
1107 # endif
1108 _GL_CXXALIASWARN (ilogbf);
1109 #elif defined GNULIB_POSIXCHECK
1110 # undef ilogbf
1111 # if HAVE_RAW_DECL_ILOGBF
1112 _GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
1113 "use gnulib module ilogbf for portability");
1114 # endif
1115 #endif
1116
1117 #if @GNULIB_ILOGB@
1118 # if @REPLACE_ILOGB@
1119 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1120 # undef ilogb
1121 # define ilogb rpl_ilogb
1122 # endif
1123 _GL_FUNCDECL_RPL (ilogb, int, (double x));
1124 _GL_CXXALIAS_RPL (ilogb, int, (double x));
1125 # else
1126 # if !@HAVE_ILOGB@
1127 _GL_FUNCDECL_SYS (ilogb, int, (double x));
1128 # endif
1129 _GL_CXXALIAS_SYS (ilogb, int, (double x));
1130 # endif
1131 _GL_CXXALIASWARN (ilogb);
1132 #elif defined GNULIB_POSIXCHECK
1133 # undef ilogb
1134 # if HAVE_RAW_DECL_ILOGB
1135 _GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
1136 "use gnulib module ilogb for portability");
1137 # endif
1138 #endif
1139
1140 #if @GNULIB_ILOGBL@
1141 # if !@HAVE_ILOGBL@
1142 _GL_FUNCDECL_SYS (ilogbl, int, (long double x));
1143 # endif
1144 _GL_CXXALIAS_SYS (ilogbl, int, (long double x));
1145 _GL_CXXALIASWARN (ilogbl);
1146 #elif defined GNULIB_POSIXCHECK
1147 # undef ilogbl
1148 # if HAVE_RAW_DECL_ILOGBL
1149 _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
1150 "use gnulib module ilogbl for portability");
1151 # endif
1152 #endif
1153
1154
1155 /* Return x * 2^exp. */
1156 #if @GNULIB_LDEXPF@
1157 # if !@HAVE_LDEXPF@
1158 # undef ldexpf
1159 _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
1160 # endif
1161 _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
1162 _GL_CXXALIASWARN (ldexpf);
1163 #elif defined GNULIB_POSIXCHECK
1164 # undef ldexpf
1165 # if HAVE_RAW_DECL_LDEXPF
1166 _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
1167 "use gnulib module ldexpf for portability");
1168 # endif
1169 #endif
1170
1171 /* Return x * 2^exp. */
1172 #if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
1173 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1174 # undef ldexpl
1175 # define ldexpl rpl_ldexpl
1176 # endif
1177 _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
1178 _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
1179 #else
1180 # if !@HAVE_DECL_LDEXPL@
1181 _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
1182 # endif
1183 # if @GNULIB_LDEXPL@
1184 _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
1185 # endif
1186 #endif
1187 #if @GNULIB_LDEXPL@
1188 _GL_CXXALIASWARN (ldexpl);
1189 #endif
1190 #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
1191 # undef ldexpl
1192 # if HAVE_RAW_DECL_LDEXPL
1193 _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
1194 "use gnulib module ldexpl for portability");
1195 # endif
1196 #endif
1197
1198
1199 #if @GNULIB_LOGF@
1200 # if @REPLACE_LOGF@
1201 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1202 # undef logf
1203 # define logf rpl_logf
1204 # endif
1205 _GL_FUNCDECL_RPL (logf, float, (float x));
1206 _GL_CXXALIAS_RPL (logf, float, (float x));
1207 # else
1208 # if !@HAVE_LOGF@
1209 # undef logf
1210 _GL_FUNCDECL_SYS (logf, float, (float x));
1211 # endif
1212 _GL_CXXALIAS_SYS (logf, float, (float x));
1213 # endif
1214 _GL_CXXALIASWARN (logf);
1215 #elif defined GNULIB_POSIXCHECK
1216 # undef logf
1217 # if HAVE_RAW_DECL_LOGF
1218 _GL_WARN_ON_USE (logf, "logf is unportable - "
1219 "use gnulib module logf for portability");
1220 # endif
1221 #endif
1222
1223 #if @GNULIB_LOG@
1224 # if @REPLACE_LOG@
1225 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1226 # undef log
1227 # define log rpl_log
1228 # endif
1229 _GL_FUNCDECL_RPL (log, double, (double x));
1230 _GL_CXXALIAS_RPL (log, double, (double x));
1231 # else
1232 _GL_CXXALIAS_SYS (log, double, (double x));
1233 # endif
1234 _GL_CXXALIASWARN (log);
1235 #elif defined GNULIB_POSIXCHECK
1236 # undef log
1237 # if HAVE_RAW_DECL_LOG
1238 _GL_WARN_ON_USE (log, "log has portability problems - "
1239 "use gnulib module log for portability");
1240 # endif
1241 #endif
1242
1243 #if @GNULIB_LOGL@
1244 # if @REPLACE_LOGL@
1245 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1246 # undef logl
1247 # define logl rpl_logl
1248 # endif
1249 _GL_FUNCDECL_RPL (logl, long double, (long double x));
1250 _GL_CXXALIAS_RPL (logl, long double, (long double x));
1251 # else
1252 # if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
1253 # undef logl
1254 _GL_FUNCDECL_SYS (logl, long double, (long double x));
1255 # endif
1256 _GL_CXXALIAS_SYS (logl, long double, (long double x));
1257 # endif
1258 _GL_CXXALIASWARN (logl);
1259 #elif defined GNULIB_POSIXCHECK
1260 # undef logl
1261 # if HAVE_RAW_DECL_LOGL
1262 _GL_WARN_ON_USE (logl, "logl is unportable - "
1263 "use gnulib module logl for portability");
1264 # endif
1265 #endif
1266
1267
1268 #if @GNULIB_LOG10F@
1269 # if @REPLACE_LOG10F@
1270 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1271 # undef log10f
1272 # define log10f rpl_log10f
1273 # endif
1274 _GL_FUNCDECL_RPL (log10f, float, (float x));
1275 _GL_CXXALIAS_RPL (log10f, float, (float x));
1276 # else
1277 # if !@HAVE_LOG10F@
1278 # undef log10f
1279 _GL_FUNCDECL_SYS (log10f, float, (float x));
1280 # endif
1281 _GL_CXXALIAS_SYS (log10f, float, (float x));
1282 # endif
1283 _GL_CXXALIASWARN (log10f);
1284 #elif defined GNULIB_POSIXCHECK
1285 # undef log10f
1286 # if HAVE_RAW_DECL_LOG10F
1287 _GL_WARN_ON_USE (log10f, "log10f is unportable - "
1288 "use gnulib module log10f for portability");
1289 # endif
1290 #endif
1291
1292 #if @GNULIB_LOG10@
1293 # if @REPLACE_LOG10@
1294 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1295 # undef log10
1296 # define log10 rpl_log10
1297 # endif
1298 _GL_FUNCDECL_RPL (log10, double, (double x));
1299 _GL_CXXALIAS_RPL (log10, double, (double x));
1300 # else
1301 _GL_CXXALIAS_SYS (log10, double, (double x));
1302 # endif
1303 _GL_CXXALIASWARN (log10);
1304 #elif defined GNULIB_POSIXCHECK
1305 # undef log10
1306 # if HAVE_RAW_DECL_LOG10
1307 _GL_WARN_ON_USE (log10, "log10 has portability problems - "
1308 "use gnulib module log10 for portability");
1309 # endif
1310 #endif
1311
1312 #if @GNULIB_LOG10L@
1313 # if @REPLACE_LOG10L@
1314 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1315 # undef log10l
1316 # define log10l rpl_log10l
1317 # endif
1318 _GL_FUNCDECL_RPL (log10l, long double, (long double x));
1319 _GL_CXXALIAS_RPL (log10l, long double, (long double x));
1320 # else
1321 # if !@HAVE_LOG10L@ || !@HAVE_DECL_LOG10L@
1322 # undef log10l
1323 _GL_FUNCDECL_SYS (log10l, long double, (long double x));
1324 # endif
1325 _GL_CXXALIAS_SYS (log10l, long double, (long double x));
1326 # endif
1327 _GL_CXXALIASWARN (log10l);
1328 #elif defined GNULIB_POSIXCHECK
1329 # undef log10l
1330 # if HAVE_RAW_DECL_LOG10L
1331 _GL_WARN_ON_USE (log10l, "log10l is unportable - "
1332 "use gnulib module log10l for portability");
1333 # endif
1334 #endif
1335
1336
1337 #if @GNULIB_LOG1PF@
1338 # if @REPLACE_LOG1PF@
1339 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1340 # undef log1pf
1341 # define log1pf rpl_log1pf
1342 # endif
1343 _GL_FUNCDECL_RPL (log1pf, float, (float x));
1344 _GL_CXXALIAS_RPL (log1pf, float, (float x));
1345 # else
1346 # if !@HAVE_LOG1PF@
1347 _GL_FUNCDECL_SYS (log1pf, float, (float x));
1348 # endif
1349 _GL_CXXALIAS_SYS (log1pf, float, (float x));
1350 # endif
1351 _GL_CXXALIASWARN (log1pf);
1352 #elif defined GNULIB_POSIXCHECK
1353 # undef log1pf
1354 # if HAVE_RAW_DECL_LOG1PF
1355 _GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
1356 "use gnulib module log1pf for portability");
1357 # endif
1358 #endif
1359
1360 #if @GNULIB_LOG1P@
1361 # if @REPLACE_LOG1P@
1362 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1363 # undef log1p
1364 # define log1p rpl_log1p
1365 # endif
1366 _GL_FUNCDECL_RPL (log1p, double, (double x));
1367 _GL_CXXALIAS_RPL (log1p, double, (double x));
1368 # else
1369 # if !@HAVE_LOG1P@
1370 _GL_FUNCDECL_SYS (log1p, double, (double x));
1371 # endif
1372 _GL_CXXALIAS_SYS (log1p, double, (double x));
1373 # endif
1374 _GL_CXXALIASWARN (log1p);
1375 #elif defined GNULIB_POSIXCHECK
1376 # undef log1p
1377 # if HAVE_RAW_DECL_LOG1P
1378 _GL_WARN_ON_USE (log1p, "log1p has portability problems - "
1379 "use gnulib module log1p for portability");
1380 # endif
1381 #endif
1382
1383 #if @GNULIB_LOG1PL@
1384 # if @REPLACE_LOG1PL@
1385 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1386 # undef log1pl
1387 # define log1pl rpl_log1pl
1388 # endif
1389 _GL_FUNCDECL_RPL (log1pl, long double, (long double x));
1390 _GL_CXXALIAS_RPL (log1pl, long double, (long double x));
1391 # else
1392 # if !@HAVE_LOG1PL@
1393 _GL_FUNCDECL_SYS (log1pl, long double, (long double x));
1394 # endif
1395 _GL_CXXALIAS_SYS (log1pl, long double, (long double x));
1396 # endif
1397 _GL_CXXALIASWARN (log1pl);
1398 #elif defined GNULIB_POSIXCHECK
1399 # undef log1pl
1400 # if HAVE_RAW_DECL_LOG1PL
1401 _GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
1402 "use gnulib module log1pl for portability");
1403 # endif
1404 #endif
1405
1406
1407 #if @GNULIB_LOG2F@
1408 # if @REPLACE_LOG2F@
1409 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1410 # undef log2f
1411 # define log2f rpl_log2f
1412 # endif
1413 _GL_FUNCDECL_RPL (log2f, float, (float x));
1414 _GL_CXXALIAS_RPL (log2f, float, (float x));
1415 # else
1416 # if !@HAVE_DECL_LOG2F@
1417 # undef log2f
1418 _GL_FUNCDECL_SYS (log2f, float, (float x));
1419 # endif
1420 _GL_CXXALIAS_SYS (log2f, float, (float x));
1421 # endif
1422 _GL_CXXALIASWARN (log2f);
1423 #elif defined GNULIB_POSIXCHECK
1424 # undef log2f
1425 # if HAVE_RAW_DECL_LOG2F
1426 _GL_WARN_ON_USE (log2f, "log2f is unportable - "
1427 "use gnulib module log2f for portability");
1428 # endif
1429 #endif
1430
1431 #if @GNULIB_LOG2@
1432 # if @REPLACE_LOG2@
1433 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1434 # undef log2
1435 # define log2 rpl_log2
1436 # endif
1437 _GL_FUNCDECL_RPL (log2, double, (double x));
1438 _GL_CXXALIAS_RPL (log2, double, (double x));
1439 # else
1440 # if !@HAVE_DECL_LOG2@
1441 # undef log2
1442 _GL_FUNCDECL_SYS (log2, double, (double x));
1443 # endif
1444 _GL_CXXALIAS_SYS (log2, double, (double x));
1445 # endif
1446 _GL_CXXALIASWARN (log2);
1447 #elif defined GNULIB_POSIXCHECK
1448 # undef log2
1449 # if HAVE_RAW_DECL_LOG2
1450 _GL_WARN_ON_USE (log2, "log2 is unportable - "
1451 "use gnulib module log2 for portability");
1452 # endif
1453 #endif
1454
1455 #if @GNULIB_LOG2L@
1456 # if @REPLACE_LOG2L@
1457 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1458 # undef log2l
1459 # define log2l rpl_log2l
1460 # endif
1461 _GL_FUNCDECL_RPL (log2l, long double, (long double x));
1462 _GL_CXXALIAS_RPL (log2l, long double, (long double x));
1463 # else
1464 # if !@HAVE_DECL_LOG2L@
1465 _GL_FUNCDECL_SYS (log2l, long double, (long double x));
1466 # endif
1467 _GL_CXXALIAS_SYS (log2l, long double, (long double x));
1468 # endif
1469 _GL_CXXALIASWARN (log2l);
1470 #elif defined GNULIB_POSIXCHECK
1471 # undef log2l
1472 # if HAVE_RAW_DECL_LOG2L
1473 _GL_WARN_ON_USE (log2l, "log2l is unportable - "
1474 "use gnulib module log2l for portability");
1475 # endif
1476 #endif
1477
1478
1479 #if @GNULIB_LOGBF@
1480 # if @REPLACE_LOGBF@
1481 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1482 # undef logbf
1483 # define logbf rpl_logbf
1484 # endif
1485 _GL_FUNCDECL_RPL (logbf, float, (float x));
1486 _GL_CXXALIAS_RPL (logbf, float, (float x));
1487 # else
1488 # if !@HAVE_LOGBF@
1489 _GL_FUNCDECL_SYS (logbf, float, (float x));
1490 # endif
1491 _GL_CXXALIAS_SYS (logbf, float, (float x));
1492 # endif
1493 _GL_CXXALIASWARN (logbf);
1494 #elif defined GNULIB_POSIXCHECK
1495 # undef logbf
1496 # if HAVE_RAW_DECL_LOGBF
1497 _GL_WARN_ON_USE (logbf, "logbf is unportable - "
1498 "use gnulib module logbf for portability");
1499 # endif
1500 #endif
1501
1502 #if @GNULIB_LOGB@
1503 # if @REPLACE_LOGB@
1504 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1505 # undef logb
1506 # define logb rpl_logb
1507 # endif
1508 _GL_FUNCDECL_RPL (logb, double, (double x));
1509 _GL_CXXALIAS_RPL (logb, double, (double x));
1510 # else
1511 # if !@HAVE_DECL_LOGB@
1512 _GL_FUNCDECL_SYS (logb, double, (double x));
1513 # endif
1514 _GL_CXXALIAS_SYS (logb, double, (double x));
1515 # endif
1516 _GL_CXXALIASWARN (logb);
1517 #elif defined GNULIB_POSIXCHECK
1518 # undef logb
1519 # if HAVE_RAW_DECL_LOGB
1520 _GL_WARN_ON_USE (logb, "logb is unportable - "
1521 "use gnulib module logb for portability");
1522 # endif
1523 #endif
1524
1525 #if @GNULIB_LOGBL@
1526 # if @REPLACE_LOGBL@
1527 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1528 # undef logbl
1529 # define logbl rpl_logbl
1530 # endif
1531 _GL_FUNCDECL_RPL (logbl, long double, (long double x));
1532 _GL_CXXALIAS_RPL (logbl, long double, (long double x));
1533 # else
1534 # if !@HAVE_LOGBL@
1535 _GL_FUNCDECL_SYS (logbl, long double, (long double x));
1536 # endif
1537 _GL_CXXALIAS_SYS (logbl, long double, (long double x));
1538 # endif
1539 _GL_CXXALIASWARN (logbl);
1540 #elif defined GNULIB_POSIXCHECK
1541 # undef logbl
1542 # if HAVE_RAW_DECL_LOGBL
1543 _GL_WARN_ON_USE (logbl, "logbl is unportable - "
1544 "use gnulib module logbl for portability");
1545 # endif
1546 #endif
1547
1548
1549 #if @GNULIB_MODFF@
1550 # if @REPLACE_MODFF@
1551 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1552 # undef modff
1553 # define modff rpl_modff
1554 # endif
1555 _GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
1556 _GL_CXXALIAS_RPL (modff, float, (float x, float *iptr));
1557 # else
1558 # if !@HAVE_MODFF@
1559 # undef modff
1560 _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
1561 # endif
1562 _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
1563 # endif
1564 _GL_CXXALIASWARN (modff);
1565 #elif defined GNULIB_POSIXCHECK
1566 # undef modff
1567 # if HAVE_RAW_DECL_MODFF
1568 _GL_WARN_ON_USE (modff, "modff is unportable - "
1569 "use gnulib module modff for portability");
1570 # endif
1571 #endif
1572
1573 #if @GNULIB_MODF@
1574 # if @REPLACE_MODF@
1575 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1576 # undef modf
1577 # define modf rpl_modf
1578 # endif
1579 _GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2)));
1580 _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
1581 # else
1582 _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
1583 # endif
1584 _GL_CXXALIASWARN (modf);
1585 #elif defined GNULIB_POSIXCHECK
1586 # undef modf
1587 # if HAVE_RAW_DECL_MODF
1588 _GL_WARN_ON_USE (modf, "modf has portability problems - "
1589 "use gnulib module modf for portability");
1590 # endif
1591 #endif
1592
1593 #if @GNULIB_MODFL@
1594 # if @REPLACE_MODFL@
1595 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1596 # undef modfl
1597 # define modfl rpl_modfl
1598 # endif
1599 _GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr)
1600 _GL_ARG_NONNULL ((2)));
1601 _GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr));
1602 # else
1603 # if !@HAVE_MODFL@
1604 # undef modfl
1605 _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
1606 _GL_ARG_NONNULL ((2)));
1607 # endif
1608 _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
1609 # endif
1610 _GL_CXXALIASWARN (modfl);
1611 #elif defined GNULIB_POSIXCHECK
1612 # undef modfl
1613 # if HAVE_RAW_DECL_MODFL
1614 _GL_WARN_ON_USE (modfl, "modfl is unportable - "
1615 "use gnulib module modfl for portability");
1616 # endif
1617 #endif
1618
1619
1620 #if @GNULIB_POWF@
1621 # if !@HAVE_POWF@
1622 # undef powf
1623 _GL_FUNCDECL_SYS (powf, float, (float x, float y));
1624 # endif
1625 _GL_CXXALIAS_SYS (powf, float, (float x, float y));
1626 _GL_CXXALIASWARN (powf);
1627 #elif defined GNULIB_POSIXCHECK
1628 # undef powf
1629 # if HAVE_RAW_DECL_POWF
1630 _GL_WARN_ON_USE (powf, "powf is unportable - "
1631 "use gnulib module powf for portability");
1632 # endif
1633 #endif
1634
1635
1636 #if @GNULIB_REMAINDERF@
1637 # if @REPLACE_REMAINDERF@
1638 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1639 # undef remainderf
1640 # define remainderf rpl_remainderf
1641 # endif
1642 _GL_FUNCDECL_RPL (remainderf, float, (float x, float y));
1643 _GL_CXXALIAS_RPL (remainderf, float, (float x, float y));
1644 # else
1645 # if !@HAVE_REMAINDERF@
1646 _GL_FUNCDECL_SYS (remainderf, float, (float x, float y));
1647 # endif
1648 _GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
1649 # endif
1650 _GL_CXXALIASWARN (remainderf);
1651 #elif defined GNULIB_POSIXCHECK
1652 # undef remainderf
1653 # if HAVE_RAW_DECL_REMAINDERF
1654 _GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
1655 "use gnulib module remainderf for portability");
1656 # endif
1657 #endif
1658
1659 #if @GNULIB_REMAINDER@
1660 # if @REPLACE_REMAINDER@
1661 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1662 # undef remainder
1663 # define remainder rpl_remainder
1664 # endif
1665 _GL_FUNCDECL_RPL (remainder, double, (double x, double y));
1666 _GL_CXXALIAS_RPL (remainder, double, (double x, double y));
1667 # else
1668 # if !@HAVE_REMAINDER@ || !@HAVE_DECL_REMAINDER@
1669 _GL_FUNCDECL_SYS (remainder, double, (double x, double y));
1670 # endif
1671 _GL_CXXALIAS_SYS (remainder, double, (double x, double y));
1672 # endif
1673 _GL_CXXALIASWARN (remainder);
1674 #elif defined GNULIB_POSIXCHECK
1675 # undef remainder
1676 # if HAVE_RAW_DECL_REMAINDER
1677 _GL_WARN_ON_USE (remainder, "remainder is unportable - "
1678 "use gnulib module remainder for portability");
1679 # endif
1680 #endif
1681
1682 #if @GNULIB_REMAINDERL@
1683 # if @REPLACE_REMAINDERL@
1684 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1685 # undef remainderl
1686 # define remainderl rpl_remainderl
1687 # endif
1688 _GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y));
1689 _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
1690 # else
1691 # if !@HAVE_DECL_REMAINDERL@
1692 # undef remainderl
1693 _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
1694 # endif
1695 _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
1696 # endif
1697 _GL_CXXALIASWARN (remainderl);
1698 #elif defined GNULIB_POSIXCHECK
1699 # undef remainderl
1700 # if HAVE_RAW_DECL_REMAINDERL
1701 _GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
1702 "use gnulib module remainderl for portability");
1703 # endif
1704 #endif
1705
1706
1707 #if @GNULIB_RINTF@
1708 # if !@HAVE_DECL_RINTF@
1709 _GL_FUNCDECL_SYS (rintf, float, (float x));
1710 # endif
1711 _GL_CXXALIAS_SYS (rintf, float, (float x));
1712 _GL_CXXALIASWARN (rintf);
1713 #elif defined GNULIB_POSIXCHECK
1714 # undef rintf
1715 # if HAVE_RAW_DECL_RINTF
1716 _GL_WARN_ON_USE (rintf, "rintf is unportable - "
1717 "use gnulib module rintf for portability");
1718 # endif
1719 #endif
1720
1721 #if @GNULIB_RINT@
1722 # if !@HAVE_RINT@
1723 _GL_FUNCDECL_SYS (rint, double, (double x));
1724 # endif
1725 _GL_CXXALIAS_SYS (rint, double, (double x));
1726 _GL_CXXALIASWARN (rint);
1727 #elif defined GNULIB_POSIXCHECK
1728 # undef rint
1729 # if HAVE_RAW_DECL_RINT
1730 _GL_WARN_ON_USE (rint, "rint is unportable - "
1731 "use gnulib module rint for portability");
1732 # endif
1733 #endif
1734
1735 #if @GNULIB_RINTL@
1736 # if !@HAVE_RINTL@
1737 _GL_FUNCDECL_SYS (rintl, long double, (long double x));
1738 # endif
1739 _GL_CXXALIAS_SYS (rintl, long double, (long double x));
1740 _GL_CXXALIASWARN (rintl);
1741 #elif defined GNULIB_POSIXCHECK
1742 # undef rintl
1743 # if HAVE_RAW_DECL_RINTL
1744 _GL_WARN_ON_USE (rintl, "rintl is unportable - "
1745 "use gnulib module rintl for portability");
1746 # endif
1747 #endif
1748
1749
1750 #if @GNULIB_ROUNDF@
1751 # if @REPLACE_ROUNDF@
1752 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1753 # undef roundf
1754 # define roundf rpl_roundf
1755 # endif
1756 _GL_FUNCDECL_RPL (roundf, float, (float x));
1757 _GL_CXXALIAS_RPL (roundf, float, (float x));
1758 # else
1759 # if !@HAVE_DECL_ROUNDF@
1760 _GL_FUNCDECL_SYS (roundf, float, (float x));
1761 # endif
1762 _GL_CXXALIAS_SYS (roundf, float, (float x));
1763 # endif
1764 _GL_CXXALIASWARN (roundf);
1765 #elif defined GNULIB_POSIXCHECK
1766 # undef roundf
1767 # if HAVE_RAW_DECL_ROUNDF
1768 _GL_WARN_ON_USE (roundf, "roundf is unportable - "
1769 "use gnulib module roundf for portability");
1770 # endif
1771 #endif
1772
1773 #if @GNULIB_ROUND@
1774 # if @REPLACE_ROUND@
1775 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1776 # undef round
1777 # define round rpl_round
1778 # endif
1779 _GL_FUNCDECL_RPL (round, double, (double x));
1780 _GL_CXXALIAS_RPL (round, double, (double x));
1781 # else
1782 # if !@HAVE_DECL_ROUND@
1783 _GL_FUNCDECL_SYS (round, double, (double x));
1784 # endif
1785 _GL_CXXALIAS_SYS (round, double, (double x));
1786 # endif
1787 _GL_CXXALIASWARN (round);
1788 #elif defined GNULIB_POSIXCHECK
1789 # undef round
1790 # if HAVE_RAW_DECL_ROUND
1791 _GL_WARN_ON_USE (round, "round is unportable - "
1792 "use gnulib module round for portability");
1793 # endif
1794 #endif
1795
1796 #if @GNULIB_ROUNDL@
1797 # if @REPLACE_ROUNDL@
1798 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1799 # undef roundl
1800 # define roundl rpl_roundl
1801 # endif
1802 _GL_FUNCDECL_RPL (roundl, long double, (long double x));
1803 _GL_CXXALIAS_RPL (roundl, long double, (long double x));
1804 # else
1805 # if !@HAVE_DECL_ROUNDL@
1806 # undef roundl
1807 _GL_FUNCDECL_SYS (roundl, long double, (long double x));
1808 # endif
1809 _GL_CXXALIAS_SYS (roundl, long double, (long double x));
1810 # endif
1811 _GL_CXXALIASWARN (roundl);
1812 #elif defined GNULIB_POSIXCHECK
1813 # undef roundl
1814 # if HAVE_RAW_DECL_ROUNDL
1815 _GL_WARN_ON_USE (roundl, "roundl is unportable - "
1816 "use gnulib module roundl for portability");
1817 # endif
1818 #endif
1819
1820
1821 #if @GNULIB_SINF@
1822 # if !@HAVE_SINF@
1823 # undef sinf
1824 _GL_FUNCDECL_SYS (sinf, float, (float x));
1825 # endif
1826 _GL_CXXALIAS_SYS (sinf, float, (float x));
1827 _GL_CXXALIASWARN (sinf);
1828 #elif defined GNULIB_POSIXCHECK
1829 # undef sinf
1830 # if HAVE_RAW_DECL_SINF
1831 _GL_WARN_ON_USE (sinf, "sinf is unportable - "
1832 "use gnulib module sinf for portability");
1833 # endif
1834 #endif
1835
1836 #if @GNULIB_SINL@
1837 # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
1838 # undef sinl
1839 _GL_FUNCDECL_SYS (sinl, long double, (long double x));
1840 # endif
1841 _GL_CXXALIAS_SYS (sinl, long double, (long double x));
1842 _GL_CXXALIASWARN (sinl);
1843 #elif defined GNULIB_POSIXCHECK
1844 # undef sinl
1845 # if HAVE_RAW_DECL_SINL
1846 _GL_WARN_ON_USE (sinl, "sinl is unportable - "
1847 "use gnulib module sinl for portability");
1848 # endif
1849 #endif
1850
1851
1852 #if @GNULIB_SINHF@
1853 # if !@HAVE_SINHF@
1854 # undef sinhf
1855 _GL_FUNCDECL_SYS (sinhf, float, (float x));
1856 # endif
1857 _GL_CXXALIAS_SYS (sinhf, float, (float x));
1858 _GL_CXXALIASWARN (sinhf);
1859 #elif defined GNULIB_POSIXCHECK
1860 # undef sinhf
1861 # if HAVE_RAW_DECL_SINHF
1862 _GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
1863 "use gnulib module sinhf for portability");
1864 # endif
1865 #endif
1866
1867
1868 #if @GNULIB_SQRTF@
1869 # if !@HAVE_SQRTF@
1870 # undef sqrtf
1871 _GL_FUNCDECL_SYS (sqrtf, float, (float x));
1872 # endif
1873 _GL_CXXALIAS_SYS (sqrtf, float, (float x));
1874 _GL_CXXALIASWARN (sqrtf);
1875 #elif defined GNULIB_POSIXCHECK
1876 # undef sqrtf
1877 # if HAVE_RAW_DECL_SQRTF
1878 _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
1879 "use gnulib module sqrtf for portability");
1880 # endif
1881 #endif
1882
1883 #if @GNULIB_SQRTL@
1884 # if @REPLACE_SQRTL@
1885 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1886 # undef sqrtl
1887 # define sqrtl rpl_sqrtl
1888 # endif
1889 _GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
1890 _GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
1891 # else
1892 # if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
1893 # undef sqrtl
1894 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
1895 # endif
1896 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
1897 # endif
1898 _GL_CXXALIASWARN (sqrtl);
1899 #elif defined GNULIB_POSIXCHECK
1900 # undef sqrtl
1901 # if HAVE_RAW_DECL_SQRTL
1902 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
1903 "use gnulib module sqrtl for portability");
1904 # endif
1905 #endif
1906
1907
1908 #if @GNULIB_TANF@
1909 # if !@HAVE_TANF@
1910 # undef tanf
1911 _GL_FUNCDECL_SYS (tanf, float, (float x));
1912 # endif
1913 _GL_CXXALIAS_SYS (tanf, float, (float x));
1914 _GL_CXXALIASWARN (tanf);
1915 #elif defined GNULIB_POSIXCHECK
1916 # undef tanf
1917 # if HAVE_RAW_DECL_TANF
1918 _GL_WARN_ON_USE (tanf, "tanf is unportable - "
1919 "use gnulib module tanf for portability");
1920 # endif
1921 #endif
1922
1923 #if @GNULIB_TANL@
1924 # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@
1925 # undef tanl
1926 _GL_FUNCDECL_SYS (tanl, long double, (long double x));
1927 # endif
1928 _GL_CXXALIAS_SYS (tanl, long double, (long double x));
1929 _GL_CXXALIASWARN (tanl);
1930 #elif defined GNULIB_POSIXCHECK
1931 # undef tanl
1932 # if HAVE_RAW_DECL_TANL
1933 _GL_WARN_ON_USE (tanl, "tanl is unportable - "
1934 "use gnulib module tanl for portability");
1935 # endif
1936 #endif
1937
1938
1939 #if @GNULIB_TANHF@
1940 # if !@HAVE_TANHF@
1941 # undef tanhf
1942 _GL_FUNCDECL_SYS (tanhf, float, (float x));
1943 # endif
1944 _GL_CXXALIAS_SYS (tanhf, float, (float x));
1945 _GL_CXXALIASWARN (tanhf);
1946 #elif defined GNULIB_POSIXCHECK
1947 # undef tanhf
1948 # if HAVE_RAW_DECL_TANHF
1949 _GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
1950 "use gnulib module tanhf for portability");
1951 # endif
1952 #endif
1953
1954
1955 #if @GNULIB_TRUNCF@
1956 # if @REPLACE_TRUNCF@
1957 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1958 # define truncf rpl_truncf
1959 # endif
1960 _GL_FUNCDECL_RPL (truncf, float, (float x));
1961 _GL_CXXALIAS_RPL (truncf, float, (float x));
1962 # else
1963 # if !@HAVE_DECL_TRUNCF@
1964 _GL_FUNCDECL_SYS (truncf, float, (float x));
1965 # endif
1966 _GL_CXXALIAS_SYS (truncf, float, (float x));
1967 # endif
1968 _GL_CXXALIASWARN (truncf);
1969 #elif defined GNULIB_POSIXCHECK
1970 # undef truncf
1971 # if HAVE_RAW_DECL_TRUNCF
1972 _GL_WARN_ON_USE (truncf, "truncf is unportable - "
1973 "use gnulib module truncf for portability");
1974 # endif
1975 #endif
1976
1977 #if @GNULIB_TRUNC@
1978 # if @REPLACE_TRUNC@
1979 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1980 # define trunc rpl_trunc
1981 # endif
1982 _GL_FUNCDECL_RPL (trunc, double, (double x));
1983 _GL_CXXALIAS_RPL (trunc, double, (double x));
1984 # else
1985 # if !@HAVE_DECL_TRUNC@
1986 _GL_FUNCDECL_SYS (trunc, double, (double x));
1987 # endif
1988 _GL_CXXALIAS_SYS (trunc, double, (double x));
1989 # endif
1990 _GL_CXXALIASWARN (trunc);
1991 #elif defined GNULIB_POSIXCHECK
1992 # undef trunc
1993 # if HAVE_RAW_DECL_TRUNC
1994 _GL_WARN_ON_USE (trunc, "trunc is unportable - "
1995 "use gnulib module trunc for portability");
1996 # endif
1997 #endif
1998
1999 #if @GNULIB_TRUNCL@
2000 # if @REPLACE_TRUNCL@
2001 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2002 # undef truncl
2003 # define truncl rpl_truncl
2004 # endif
2005 _GL_FUNCDECL_RPL (truncl, long double, (long double x));
2006 _GL_CXXALIAS_RPL (truncl, long double, (long double x));
2007 # else
2008 # if !@HAVE_DECL_TRUNCL@
2009 _GL_FUNCDECL_SYS (truncl, long double, (long double x));
2010 # endif
2011 _GL_CXXALIAS_SYS (truncl, long double, (long double x));
2012 # endif
2013 _GL_CXXALIASWARN (truncl);
2014 #elif defined GNULIB_POSIXCHECK
2015 # undef truncl
2016 # if HAVE_RAW_DECL_TRUNCL
2017 _GL_WARN_ON_USE (truncl, "truncl is unportable - "
2018 "use gnulib module truncl for portability");
2019 # endif
2020 #endif
2021
2022
2023 /* Definitions of function-like macros come here, after the function
2024 declarations. */
2025
2026
2027 #if @GNULIB_ISFINITE@
2028 # if @REPLACE_ISFINITE@
2029 _GL_EXTERN_C int gl_isfinitef (float x);
2030 _GL_EXTERN_C int gl_isfinited (double x);
2031 _GL_EXTERN_C int gl_isfinitel (long double x);
2032 # undef isfinite
2033 # define isfinite(x) \
2034 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
2035 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
2036 gl_isfinitef (x))
2037 # endif
2038 # ifdef __cplusplus
2039 # ifdef isfinite
2040 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
2041 # undef isfinite
2042 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite)
2043 # endif
2044 # endif
2045 #elif defined GNULIB_POSIXCHECK
2046 # if defined isfinite
2047 _GL_WARN_REAL_FLOATING_DECL (isfinite);
2048 # undef isfinite
2049 # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
2050 # endif
2051 #endif
2052
2053
2054 #if @GNULIB_ISINF@
2055 # if @REPLACE_ISINF@
2056 _GL_EXTERN_C int gl_isinff (float x);
2057 _GL_EXTERN_C int gl_isinfd (double x);
2058 _GL_EXTERN_C int gl_isinfl (long double x);
2059 # undef isinf
2060 # define isinf(x) \
2061 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
2062 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
2063 gl_isinff (x))
2064 # endif
2065 # ifdef __cplusplus
2066 # ifdef isinf
2067 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
2068 # undef isinf
2069 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf)
2070 # endif
2071 # endif
2072 #elif defined GNULIB_POSIXCHECK
2073 # if defined isinf
2074 _GL_WARN_REAL_FLOATING_DECL (isinf);
2075 # undef isinf
2076 # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
2077 # endif
2078 #endif
2079
2080
2081 #if @GNULIB_ISNANF@
2082 /* Test for NaN for 'float' numbers. */
2083 # if @HAVE_ISNANF@
2084 /* The original <math.h> included above provides a declaration of isnan macro
2085 or (older) isnanf function. */
2086 # if __GNUC__ >= 4
2087 /* GCC 4.0 and newer provides three built-ins for isnan. */
2088 # undef isnanf
2089 # define isnanf(x) __builtin_isnanf ((float)(x))
2090 # elif defined isnan
2091 # undef isnanf
2092 # define isnanf(x) isnan ((float)(x))
2093 # endif
2094 # else
2095 /* Test whether X is a NaN. */
2096 # undef isnanf
2097 # define isnanf rpl_isnanf
2098 _GL_EXTERN_C int isnanf (float x);
2099 # endif
2100 #endif
2101
2102 #if @GNULIB_ISNAND@
2103 /* Test for NaN for 'double' numbers.
2104 This function is a gnulib extension, unlike isnan() which applied only
2105 to 'double' numbers earlier but now is a type-generic macro. */
2106 # if @HAVE_ISNAND@
2107 /* The original <math.h> included above provides a declaration of isnan
2108 macro. */
2109 # if __GNUC__ >= 4
2110 /* GCC 4.0 and newer provides three built-ins for isnan. */
2111 # undef isnand
2112 # define isnand(x) __builtin_isnan ((double)(x))
2113 # else
2114 # undef isnand
2115 # define isnand(x) isnan ((double)(x))
2116 # endif
2117 # else
2118 /* Test whether X is a NaN. */
2119 # undef isnand
2120 # define isnand rpl_isnand
2121 _GL_EXTERN_C int isnand (double x);
2122 # endif
2123 #endif
2124
2125 #if @GNULIB_ISNANL@
2126 /* Test for NaN for 'long double' numbers. */
2127 # if @HAVE_ISNANL@
2128 /* The original <math.h> included above provides a declaration of isnan
2129 macro or (older) isnanl function. */
2130 # if __GNUC__ >= 4
2131 /* GCC 4.0 and newer provides three built-ins for isnan. */
2132 # undef isnanl
2133 # define isnanl(x) __builtin_isnanl ((long double)(x))
2134 # elif defined isnan
2135 # undef isnanl
2136 # define isnanl(x) isnan ((long double)(x))
2137 # endif
2138 # else
2139 /* Test whether X is a NaN. */
2140 # undef isnanl
2141 # define isnanl rpl_isnanl
2142 _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
2143 # endif
2144 #endif
2145
2146 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */
2147 #if @GNULIB_ISNAN@
2148 # if @REPLACE_ISNAN@
2149 /* We can't just use the isnanf macro (e.g.) as exposed by
2150 isnanf.h (e.g.) here, because those may end up being macros
2151 that recursively expand back to isnan. So use the gnulib
2152 replacements for them directly. */
2153 # if @HAVE_ISNANF@ && __GNUC__ >= 4
2154 # define gl_isnan_f(x) __builtin_isnanf ((float)(x))
2155 # else
2156 _GL_EXTERN_C int rpl_isnanf (float x);
2157 # define gl_isnan_f(x) rpl_isnanf (x)
2158 # endif
2159 # if @HAVE_ISNAND@ && __GNUC__ >= 4
2160 # define gl_isnan_d(x) __builtin_isnan ((double)(x))
2161 # else
2162 _GL_EXTERN_C int rpl_isnand (double x);
2163 # define gl_isnan_d(x) rpl_isnand (x)
2164 # endif
2165 # if @HAVE_ISNANL@ && __GNUC__ >= 4
2166 # define gl_isnan_l(x) __builtin_isnanl ((long double)(x))
2167 # else
2168 _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
2169 # define gl_isnan_l(x) rpl_isnanl (x)
2170 # endif
2171 # undef isnan
2172 # define isnan(x) \
2173 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
2174 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
2175 gl_isnan_f (x))
2176 # elif __GNUC__ >= 4
2177 # undef isnan
2178 # define isnan(x) \
2179 (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \
2180 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
2181 __builtin_isnanf ((float)(x)))
2182 # endif
2183 # ifdef __cplusplus
2184 # ifdef isnan
2185 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
2186 # undef isnan
2187 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan)
2188 # endif
2189 # else
2190 /* Ensure isnan is a macro. */
2191 # ifndef isnan
2192 # define isnan isnan
2193 # endif
2194 # endif
2195 #elif defined GNULIB_POSIXCHECK
2196 # if defined isnan
2197 _GL_WARN_REAL_FLOATING_DECL (isnan);
2198 # undef isnan
2199 # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
2200 # endif
2201 #endif
2202
2203
2204 #if @GNULIB_SIGNBIT@
2205 # if @REPLACE_SIGNBIT_USING_GCC@
2206 # undef signbit
2207 /* GCC 4.0 and newer provides three built-ins for signbit. */
2208 # define signbit(x) \
2209 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
2210 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
2211 __builtin_signbitf (x))
2212 # endif
2213 # if @REPLACE_SIGNBIT@
2214 # undef signbit
2215 _GL_EXTERN_C int gl_signbitf (float arg);
2216 _GL_EXTERN_C int gl_signbitd (double arg);
2217 _GL_EXTERN_C int gl_signbitl (long double arg);
2218 # if __GNUC__ >= 2 && !defined __STRICT_ANSI__
2219 # define _GL_NUM_UINT_WORDS(type) \
2220 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
2221 # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
2222 # define gl_signbitf_OPTIMIZED_MACRO
2223 # define gl_signbitf(arg) \
2224 ({ union { float _value; \
2225 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \
2226 } _m; \
2227 _m._value = (arg); \
2228 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \
2229 })
2230 # endif
2231 # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
2232 # define gl_signbitd_OPTIMIZED_MACRO
2233 # define gl_signbitd(arg) \
2234 ({ union { double _value; \
2235 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \
2236 } _m; \
2237 _m._value = (arg); \
2238 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \
2239 })
2240 # endif
2241 # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
2242 # define gl_signbitl_OPTIMIZED_MACRO
2243 # define gl_signbitl(arg) \
2244 ({ union { long double _value; \
2245 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
2246 } _m; \
2247 _m._value = (arg); \
2248 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \
2249 })
2250 # endif
2251 # endif
2252 # define signbit(x) \
2253 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
2254 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
2255 gl_signbitf (x))
2256 # endif
2257 # ifdef __cplusplus
2258 # ifdef signbit
2259 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
2260 # undef signbit
2261 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit)
2262 # endif
2263 # endif
2264 #elif defined GNULIB_POSIXCHECK
2265 # if defined signbit
2266 _GL_WARN_REAL_FLOATING_DECL (signbit);
2267 # undef signbit
2268 # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
2269 # endif
2270 #endif
2271
2272 _GL_INLINE_HEADER_END
2273
2274 #endif /* _@GUARD_PREFIX@_MATH_H */
2275 #endif /* _@GUARD_PREFIX@_MATH_H */
2276