1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
2 /* A GNU-like <math.h>.
3
4 Copyright (C) 2002-2003, 2007-2012 Free Software Foundation, Inc.
5
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
18
19 #ifndef _GL_MATH_H
20
21 #if __GNUC__ >= 3
22 #pragma GCC system_header
23 #endif
24
25
26 /* The include_next requires a split double-inclusion guard. */
27 #include_next <math.h>
28
29 #ifndef _GL_MATH_H
30 #define _GL_MATH_H
31
32 _GL_INLINE_HEADER_BEGIN
33 #ifndef _GL_MATH_INLINE
34 # define _GL_MATH_INLINE _GL_INLINE
35 #endif
36
37 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
38 #ifndef _GL_CXXDEFS_H
39 #define _GL_CXXDEFS_H
40
41 /* The three most frequent use cases of these macros are:
42
43 * For providing a substitute for a function that is missing on some
44 platforms, but is declared and works fine on the platforms on which
45 it exists:
46
47 #if @GNULIB_FOO@
48 # if !@HAVE_FOO@
49 _GL_FUNCDECL_SYS (foo, ...);
50 # endif
51 _GL_CXXALIAS_SYS (foo, ...);
52 _GL_CXXALIASWARN (foo);
53 #elif defined GNULIB_POSIXCHECK
54 ...
55 #endif
56
57 * For providing a replacement for a function that exists on all platforms,
58 but is broken/insufficient and needs to be replaced on some platforms:
59
60 #if @GNULIB_FOO@
61 # if @REPLACE_FOO@
62 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
63 # undef foo
64 # define foo rpl_foo
65 # endif
66 _GL_FUNCDECL_RPL (foo, ...);
67 _GL_CXXALIAS_RPL (foo, ...);
68 # else
69 _GL_CXXALIAS_SYS (foo, ...);
70 # endif
71 _GL_CXXALIASWARN (foo);
72 #elif defined GNULIB_POSIXCHECK
73 ...
74 #endif
75
76 * For providing a replacement for a function that exists on some platforms
77 but is broken/insufficient and needs to be replaced on some of them and
78 is additionally either missing or undeclared on some other platforms:
79
80 #if @GNULIB_FOO@
81 # if @REPLACE_FOO@
82 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
83 # undef foo
84 # define foo rpl_foo
85 # endif
86 _GL_FUNCDECL_RPL (foo, ...);
87 _GL_CXXALIAS_RPL (foo, ...);
88 # else
89 # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@
90 _GL_FUNCDECL_SYS (foo, ...);
91 # endif
92 _GL_CXXALIAS_SYS (foo, ...);
93 # endif
94 _GL_CXXALIASWARN (foo);
95 #elif defined GNULIB_POSIXCHECK
96 ...
97 #endif
98 */
99
100 /* _GL_EXTERN_C declaration;
101 performs the declaration with C linkage. */
102 #if defined __cplusplus
103 # define _GL_EXTERN_C extern "C"
104 #else
105 # define _GL_EXTERN_C extern
106 #endif
107
108 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
109 declares a replacement function, named rpl_func, with the given prototype,
110 consisting of return type, parameters, and attributes.
111 Example:
112 _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
113 _GL_ARG_NONNULL ((1)));
114 */
115 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
116 _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
117 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
118 _GL_EXTERN_C rettype rpl_func parameters_and_attributes
119
120 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
121 declares the system function, named func, with the given prototype,
122 consisting of return type, parameters, and attributes.
123 Example:
124 _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
125 _GL_ARG_NONNULL ((1)));
126 */
127 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
128 _GL_EXTERN_C rettype func parameters_and_attributes
129
130 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
131 declares a C++ alias called GNULIB_NAMESPACE::func
132 that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
133 Example:
134 _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
135 */
136 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
137 _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
138 #if defined __cplusplus && defined GNULIB_NAMESPACE
139 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
140 namespace GNULIB_NAMESPACE \
141 { \
142 rettype (*const func) parameters = ::rpl_func; \
143 } \
144 _GL_EXTERN_C int _gl_cxxalias_dummy
145 #else
146 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
147 _GL_EXTERN_C int _gl_cxxalias_dummy
148 #endif
149
150 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
151 is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
152 except that the C function rpl_func may have a slightly different
153 declaration. A cast is used to silence the "invalid conversion" error
154 that would otherwise occur. */
155 #if defined __cplusplus && defined GNULIB_NAMESPACE
156 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
157 namespace GNULIB_NAMESPACE \
158 { \
159 rettype (*const func) parameters = \
160 reinterpret_cast<rettype(*)parameters>(::rpl_func); \
161 } \
162 _GL_EXTERN_C int _gl_cxxalias_dummy
163 #else
164 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
165 _GL_EXTERN_C int _gl_cxxalias_dummy
166 #endif
167
168 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
169 declares a C++ alias called GNULIB_NAMESPACE::func
170 that redirects to the system provided function func, if GNULIB_NAMESPACE
171 is defined.
172 Example:
173 _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
174 */
175 #if defined __cplusplus && defined GNULIB_NAMESPACE
176 /* If we were to write
177 rettype (*const func) parameters = ::func;
178 like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
179 better (remove an indirection through a 'static' pointer variable),
180 but then the _GL_CXXALIASWARN macro below would cause a warning not only
181 for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */
182 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
183 namespace GNULIB_NAMESPACE \
184 { \
185 static rettype (*func) parameters = ::func; \
186 } \
187 _GL_EXTERN_C int _gl_cxxalias_dummy
188 #else
189 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
190 _GL_EXTERN_C int _gl_cxxalias_dummy
191 #endif
192
193 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
194 is like _GL_CXXALIAS_SYS (func, rettype, parameters);
195 except that the C function func may have a slightly different declaration.
196 A cast is used to silence the "invalid conversion" error that would
197 otherwise occur. */
198 #if defined __cplusplus && defined GNULIB_NAMESPACE
199 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
200 namespace GNULIB_NAMESPACE \
201 { \
202 static rettype (*func) parameters = \
203 reinterpret_cast<rettype(*)parameters>(::func); \
204 } \
205 _GL_EXTERN_C int _gl_cxxalias_dummy
206 #else
207 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
208 _GL_EXTERN_C int _gl_cxxalias_dummy
209 #endif
210
211 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
212 is like _GL_CXXALIAS_SYS (func, rettype, parameters);
213 except that the C function is picked among a set of overloaded functions,
214 namely the one with rettype2 and parameters2. Two consecutive casts
215 are used to silence the "cannot find a match" and "invalid conversion"
216 errors that would otherwise occur. */
217 #if defined __cplusplus && defined GNULIB_NAMESPACE
218 /* The outer cast must be a reinterpret_cast.
219 The inner cast: When the function is defined as a set of overloaded
220 functions, it works as a static_cast<>, choosing the designated variant.
221 When the function is defined as a single variant, it works as a
222 reinterpret_cast<>. The parenthesized cast syntax works both ways. */
223 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
224 namespace GNULIB_NAMESPACE \
225 { \
226 static rettype (*func) parameters = \
227 reinterpret_cast<rettype(*)parameters>( \
228 (rettype2(*)parameters2)(::func)); \
229 } \
230 _GL_EXTERN_C int _gl_cxxalias_dummy
231 #else
232 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
233 _GL_EXTERN_C int _gl_cxxalias_dummy
234 #endif
235
236 /* _GL_CXXALIASWARN (func);
237 causes a warning to be emitted when ::func is used but not when
238 GNULIB_NAMESPACE::func is used. func must be defined without overloaded
239 variants. */
240 #if defined __cplusplus && defined GNULIB_NAMESPACE
241 # define _GL_CXXALIASWARN(func) \
242 _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
243 # define _GL_CXXALIASWARN_1(func,namespace) \
244 _GL_CXXALIASWARN_2 (func, namespace)
245 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
246 we enable the warning only when not optimizing. */
247 # if !__OPTIMIZE__
248 # define _GL_CXXALIASWARN_2(func,namespace) \
249 _GL_WARN_ON_USE (func, \
250 "The symbol ::" #func " refers to the system function. " \
251 "Use " #namespace "::" #func " instead.")
252 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
253 # define _GL_CXXALIASWARN_2(func,namespace) \
254 extern __typeof__ (func) func
255 # else
256 # define _GL_CXXALIASWARN_2(func,namespace) \
257 _GL_EXTERN_C int _gl_cxxalias_dummy
258 # endif
259 #else
260 # define _GL_CXXALIASWARN(func) \
261 _GL_EXTERN_C int _gl_cxxalias_dummy
262 #endif
263
264 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
265 causes a warning to be emitted when the given overloaded variant of ::func
266 is used but not when GNULIB_NAMESPACE::func is used. */
267 #if defined __cplusplus && defined GNULIB_NAMESPACE
268 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
269 _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
270 GNULIB_NAMESPACE)
271 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
272 _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
273 /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
274 we enable the warning only when not optimizing. */
275 # if !__OPTIMIZE__
276 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
277 _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
278 "The symbol ::" #func " refers to the system function. " \
279 "Use " #namespace "::" #func " instead.")
280 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
281 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
282 extern __typeof__ (func) func
283 # else
284 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
285 _GL_EXTERN_C int _gl_cxxalias_dummy
286 # endif
287 #else
288 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
289 _GL_EXTERN_C int _gl_cxxalias_dummy
290 #endif
291
292 #endif /* _GL_CXXDEFS_H */
293
294 /* The definition of _GL_ARG_NONNULL is copied here. */
295 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
296 that the values passed as arguments n, ..., m must be non-NULL pointers.
297 n = 1 stands for the first argument, n = 2 for the second argument etc. */
298 #ifndef _GL_ARG_NONNULL
299 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
300 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
301 # else
302 # define _GL_ARG_NONNULL(params)
303 # endif
304 #endif
305
306 /* The definition of _GL_WARN_ON_USE is copied here. */
307 #ifndef _GL_WARN_ON_USE
308
309 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
310 /* A compiler attribute is available in gcc versions 4.3.0 and later. */
311 # define _GL_WARN_ON_USE(function, message) \
312 extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
313 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
314 /* Verify the existence of the function. */
315 # define _GL_WARN_ON_USE(function, message) \
316 extern __typeof__ (function) function
317 # else /* Unsupported. */
318 # define _GL_WARN_ON_USE(function, message) \
319 _GL_WARN_EXTERN_C int _gl_warn_on_use
320 # endif
321 #endif
322
323 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
324 is like _GL_WARN_ON_USE (function, "string"), except that the function is
325 declared with the given prototype, consisting of return type, parameters,
326 and attributes.
327 This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
328 not work in this case. */
329 #ifndef _GL_WARN_ON_USE_CXX
330 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
331 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
332 extern rettype function parameters_and_attributes \
333 __attribute__ ((__warning__ (msg)))
334 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
335 /* Verify the existence of the function. */
336 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
337 extern rettype function parameters_and_attributes
338 # else /* Unsupported. */
339 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
340 _GL_WARN_EXTERN_C int _gl_warn_on_use
341 # endif
342 #endif
343
344 /* _GL_WARN_EXTERN_C declaration;
345 performs the declaration with C linkage. */
346 #ifndef _GL_WARN_EXTERN_C
347 # if defined __cplusplus
348 # define _GL_WARN_EXTERN_C extern "C"
349 # else
350 # define _GL_WARN_EXTERN_C extern
351 # endif
352 #endif
353
354 #ifdef __cplusplus
355 /* Helper macros to define type-generic function FUNC as overloaded functions,
356 rather than as macros like in C. POSIX declares these with an argument of
357 real-floating (that is, one of float, double, or long double). */
358 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \
359 static inline int \
360 _gl_cxx_ ## func ## f (float f) \
361 { \
362 return func (f); \
363 } \
364 static inline int \
365 _gl_cxx_ ## func ## d (double d) \
366 { \
367 return func (d); \
368 } \
369 static inline int \
370 _gl_cxx_ ## func ## l (long double l) \
371 { \
372 return func (l); \
373 }
374 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \
375 inline int \
376 func (float f) \
377 { \
378 return _gl_cxx_ ## func ## f (f); \
379 } \
380 inline int \
381 func (double d) \
382 { \
383 return _gl_cxx_ ## func ## d (d); \
384 } \
385 inline int \
386 func (long double l) \
387 { \
388 return _gl_cxx_ ## func ## l (l); \
389 }
390 #endif
391
392 /* Helper macros to define a portability warning for the
393 classification macro FUNC called with VALUE. POSIX declares the
394 classification macros with an argument of real-floating (that is,
395 one of float, double, or long double). */
396 #define _GL_WARN_REAL_FLOATING_DECL(func) \
397 _GL_MATH_INLINE int \
398 rpl_ ## func ## f (float f) \
399 { \
400 return func (f); \
401 } \
402 _GL_MATH_INLINE int \
403 rpl_ ## func ## d (double d) \
404 { \
405 return func (d); \
406 } \
407 _GL_MATH_INLINE int \
408 rpl_ ## func ## l (long double l) \
409 { \
410 return func (l); \
411 } \
412 _GL_WARN_ON_USE (rpl_ ## func ## f, #func " is unportable - " \
413 "use gnulib module " #func " for portability"); \
414 _GL_WARN_ON_USE (rpl_ ## func ## d, #func " is unportable - " \
415 "use gnulib module " #func " for portability"); \
416 _GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \
417 "use gnulib module " #func " for portability")
418 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
419 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \
420 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \
421 : rpl_ ## func ## l (value))
422
423
424 #if 0
425 /* Pull in a function that fixes the 'int' to 'long double' conversion
426 of glibc 2.7. */
427 _GL_EXTERN_C void _Qp_itoq (long double *, int);
428 static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
429 #endif
430
431
432 /* POSIX allows platforms that don't support NAN. But all major
433 machines in the past 15 years have supported something close to
434 IEEE NaN, so we define this unconditionally. We also must define
435 it on platforms like Solaris 10, where NAN is present but defined
436 as a function pointer rather than a floating point constant. */
437 #if !defined NAN || 0
438 # if !GNULIB_defined_NAN
439 # undef NAN
440 /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
441 choke on the expression 0.0 / 0.0. */
442 # if defined __DECC || defined _MSC_VER
443 _GL_MATH_INLINE float
_NaN()444 _NaN ()
445 {
446 static float zero = 0.0f;
447 return zero / zero;
448 }
449 # define NAN (_NaN())
450 # else
451 # define NAN (0.0f / 0.0f)
452 # endif
453 # define GNULIB_defined_NAN 1
454 # endif
455 #endif
456
457 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
458 than a floating point constant. */
459 #if 0
460 # undef HUGE_VALF
461 # define HUGE_VALF (1.0f / 0.0f)
462 # undef HUGE_VAL
463 # define HUGE_VAL (1.0 / 0.0)
464 # undef HUGE_VALL
465 # define HUGE_VALL (1.0L / 0.0L)
466 #endif
467
468 /* HUGE_VALF is a 'float' Infinity. */
469 #ifndef HUGE_VALF
470 # if defined _MSC_VER
471 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f. */
472 # define HUGE_VALF (1e25f * 1e25f)
473 # else
474 # define HUGE_VALF (1.0f / 0.0f)
475 # endif
476 #endif
477
478 /* HUGE_VAL is a 'double' Infinity. */
479 #ifndef HUGE_VAL
480 # if defined _MSC_VER
481 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0. */
482 # define HUGE_VAL (1e250 * 1e250)
483 # else
484 # define HUGE_VAL (1.0 / 0.0)
485 # endif
486 #endif
487
488 /* HUGE_VALL is a 'long double' Infinity. */
489 #ifndef HUGE_VALL
490 # if defined _MSC_VER
491 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L. */
492 # define HUGE_VALL (1e250L * 1e250L)
493 # else
494 # define HUGE_VALL (1.0L / 0.0L)
495 # endif
496 #endif
497
498
499 /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined. */
500 #if !(defined FP_ILOGB0 && defined FP_ILOGBNAN)
501 # if defined __NetBSD__ || defined __sgi
502 /* NetBSD, IRIX 6.5: match what ilogb() does */
503 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
504 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
505 # elif defined _AIX
506 /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */
507 # define FP_ILOGB0 (- 2147483647 - 1) /* INT_MIN */
508 # define FP_ILOGBNAN 2147483647 /* INT_MAX */
509 # elif defined __sun
510 /* Solaris 9: match what ilogb() does */
511 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
512 # define FP_ILOGBNAN 2147483647 /* INT_MAX */
513 # else
514 /* Gnulib defined values. */
515 # define FP_ILOGB0 (- 2147483647) /* - INT_MAX */
516 # define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
517 # endif
518 #endif
519
520
521 #if 0
522 # if !1
523 # undef acosf
524 _GL_FUNCDECL_SYS (acosf, float, (float x));
525 # endif
526 _GL_CXXALIAS_SYS (acosf, float, (float x));
527 _GL_CXXALIASWARN (acosf);
528 #elif defined GNULIB_POSIXCHECK
529 # undef acosf
530 # if HAVE_RAW_DECL_ACOSF
531 _GL_WARN_ON_USE (acosf, "acosf is unportable - "
532 "use gnulib module acosf for portability");
533 # endif
534 #endif
535
536 #if 0
537 # if !1 || !1
538 # undef acosl
539 _GL_FUNCDECL_SYS (acosl, long double, (long double x));
540 # endif
541 _GL_CXXALIAS_SYS (acosl, long double, (long double x));
542 _GL_CXXALIASWARN (acosl);
543 #elif defined GNULIB_POSIXCHECK
544 # undef acosl
545 # if HAVE_RAW_DECL_ACOSL
546 _GL_WARN_ON_USE (acosl, "acosl is unportable - "
547 "use gnulib module acosl for portability");
548 # endif
549 #endif
550
551
552 #if 0
553 # if !1
554 # undef asinf
555 _GL_FUNCDECL_SYS (asinf, float, (float x));
556 # endif
557 _GL_CXXALIAS_SYS (asinf, float, (float x));
558 _GL_CXXALIASWARN (asinf);
559 #elif defined GNULIB_POSIXCHECK
560 # undef asinf
561 # if HAVE_RAW_DECL_ASINF
562 _GL_WARN_ON_USE (asinf, "asinf is unportable - "
563 "use gnulib module asinf for portability");
564 # endif
565 #endif
566
567 #if 0
568 # if !1 || !1
569 # undef asinl
570 _GL_FUNCDECL_SYS (asinl, long double, (long double x));
571 # endif
572 _GL_CXXALIAS_SYS (asinl, long double, (long double x));
573 _GL_CXXALIASWARN (asinl);
574 #elif defined GNULIB_POSIXCHECK
575 # undef asinl
576 # if HAVE_RAW_DECL_ASINL
577 _GL_WARN_ON_USE (asinl, "asinl is unportable - "
578 "use gnulib module asinl for portability");
579 # endif
580 #endif
581
582
583 #if 0
584 # if !1
585 # undef atanf
586 _GL_FUNCDECL_SYS (atanf, float, (float x));
587 # endif
588 _GL_CXXALIAS_SYS (atanf, float, (float x));
589 _GL_CXXALIASWARN (atanf);
590 #elif defined GNULIB_POSIXCHECK
591 # undef atanf
592 # if HAVE_RAW_DECL_ATANF
593 _GL_WARN_ON_USE (atanf, "atanf is unportable - "
594 "use gnulib module atanf for portability");
595 # endif
596 #endif
597
598 #if 0
599 # if !1 || !1
600 # undef atanl
601 _GL_FUNCDECL_SYS (atanl, long double, (long double x));
602 # endif
603 _GL_CXXALIAS_SYS (atanl, long double, (long double x));
604 _GL_CXXALIASWARN (atanl);
605 #elif defined GNULIB_POSIXCHECK
606 # undef atanl
607 # if HAVE_RAW_DECL_ATANL
608 _GL_WARN_ON_USE (atanl, "atanl is unportable - "
609 "use gnulib module atanl for portability");
610 # endif
611 #endif
612
613
614 #if 0
615 # if !1
616 # undef atan2f
617 _GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
618 # endif
619 _GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
620 _GL_CXXALIASWARN (atan2f);
621 #elif defined GNULIB_POSIXCHECK
622 # undef atan2f
623 # if HAVE_RAW_DECL_ATAN2F
624 _GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
625 "use gnulib module atan2f for portability");
626 # endif
627 #endif
628
629
630 #if 0
631 # if 0
632 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
633 # undef cbrtf
634 # define cbrtf rpl_cbrtf
635 # endif
636 _GL_FUNCDECL_RPL (cbrtf, float, (float x));
637 _GL_CXXALIAS_RPL (cbrtf, float, (float x));
638 # else
639 # if !1
640 _GL_FUNCDECL_SYS (cbrtf, float, (float x));
641 # endif
642 _GL_CXXALIAS_SYS (cbrtf, float, (float x));
643 # endif
644 _GL_CXXALIASWARN (cbrtf);
645 #elif defined GNULIB_POSIXCHECK
646 # undef cbrtf
647 # if HAVE_RAW_DECL_CBRTF
648 _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
649 "use gnulib module cbrtf for portability");
650 # endif
651 #endif
652
653 #if 0
654 # if !1
655 _GL_FUNCDECL_SYS (cbrt, double, (double x));
656 # endif
657 _GL_CXXALIAS_SYS (cbrt, double, (double x));
658 _GL_CXXALIASWARN (cbrt);
659 #elif defined GNULIB_POSIXCHECK
660 # undef cbrt
661 # if HAVE_RAW_DECL_CBRT
662 _GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
663 "use gnulib module cbrt for portability");
664 # endif
665 #endif
666
667 #if 0
668 # if 0
669 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
670 # undef cbrtl
671 # define cbrtl rpl_cbrtl
672 # endif
673 _GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
674 _GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
675 # else
676 # if !1
677 _GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
678 # endif
679 _GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
680 # endif
681 _GL_CXXALIASWARN (cbrtl);
682 #elif defined GNULIB_POSIXCHECK
683 # undef cbrtl
684 # if HAVE_RAW_DECL_CBRTL
685 _GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
686 "use gnulib module cbrtl for portability");
687 # endif
688 #endif
689
690
691 #if 0
692 # if 0
693 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
694 # undef ceilf
695 # define ceilf rpl_ceilf
696 # endif
697 _GL_FUNCDECL_RPL (ceilf, float, (float x));
698 _GL_CXXALIAS_RPL (ceilf, float, (float x));
699 # else
700 # if !1
701 # undef ceilf
702 _GL_FUNCDECL_SYS (ceilf, float, (float x));
703 # endif
704 _GL_CXXALIAS_SYS (ceilf, float, (float x));
705 # endif
706 _GL_CXXALIASWARN (ceilf);
707 #elif defined GNULIB_POSIXCHECK
708 # undef ceilf
709 # if HAVE_RAW_DECL_CEILF
710 _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
711 "use gnulib module ceilf for portability");
712 # endif
713 #endif
714
715 #if 0
716 # if 0
717 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
718 # define ceil rpl_ceil
719 # endif
720 _GL_FUNCDECL_RPL (ceil, double, (double x));
721 _GL_CXXALIAS_RPL (ceil, double, (double x));
722 # else
723 _GL_CXXALIAS_SYS (ceil, double, (double x));
724 # endif
725 _GL_CXXALIASWARN (ceil);
726 #endif
727
728 #if 0
729 # if 0
730 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
731 # undef ceill
732 # define ceill rpl_ceill
733 # endif
734 _GL_FUNCDECL_RPL (ceill, long double, (long double x));
735 _GL_CXXALIAS_RPL (ceill, long double, (long double x));
736 # else
737 # if !1
738 # undef ceill
739 _GL_FUNCDECL_SYS (ceill, long double, (long double x));
740 # endif
741 _GL_CXXALIAS_SYS (ceill, long double, (long double x));
742 # endif
743 _GL_CXXALIASWARN (ceill);
744 #elif defined GNULIB_POSIXCHECK
745 # undef ceill
746 # if HAVE_RAW_DECL_CEILL
747 _GL_WARN_ON_USE (ceill, "ceill is unportable - "
748 "use gnulib module ceill for portability");
749 # endif
750 #endif
751
752
753 #if 0
754 # if !1
755 _GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
756 # endif
757 _GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
758 _GL_CXXALIASWARN (copysignf);
759 #elif defined GNULIB_POSIXCHECK
760 # undef copysignf
761 # if HAVE_RAW_DECL_COPYSIGNF
762 _GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
763 "use gnulib module copysignf for portability");
764 # endif
765 #endif
766
767 #if 0
768 # if !1
769 _GL_FUNCDECL_SYS (copysign, double, (double x, double y));
770 # endif
771 _GL_CXXALIAS_SYS (copysign, double, (double x, double y));
772 _GL_CXXALIASWARN (copysign);
773 #elif defined GNULIB_POSIXCHECK
774 # undef copysign
775 # if HAVE_RAW_DECL_COPYSIGN
776 _GL_WARN_ON_USE (copysign, "copysign is unportable - "
777 "use gnulib module copysign for portability");
778 # endif
779 #endif
780
781 #if 0
782 # if !1
783 _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
784 # endif
785 _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
786 _GL_CXXALIASWARN (copysignl);
787 #elif defined GNULIB_POSIXCHECK
788 # undef copysignl
789 # if HAVE_RAW_DECL_COPYSIGNL
790 _GL_WARN_ON_USE (copysign, "copysignl is unportable - "
791 "use gnulib module copysignl for portability");
792 # endif
793 #endif
794
795
796 #if 0
797 # if !1
798 # undef cosf
799 _GL_FUNCDECL_SYS (cosf, float, (float x));
800 # endif
801 _GL_CXXALIAS_SYS (cosf, float, (float x));
802 _GL_CXXALIASWARN (cosf);
803 #elif defined GNULIB_POSIXCHECK
804 # undef cosf
805 # if HAVE_RAW_DECL_COSF
806 _GL_WARN_ON_USE (cosf, "cosf is unportable - "
807 "use gnulib module cosf for portability");
808 # endif
809 #endif
810
811 #if 0
812 # if !1 || !1
813 # undef cosl
814 _GL_FUNCDECL_SYS (cosl, long double, (long double x));
815 # endif
816 _GL_CXXALIAS_SYS (cosl, long double, (long double x));
817 _GL_CXXALIASWARN (cosl);
818 #elif defined GNULIB_POSIXCHECK
819 # undef cosl
820 # if HAVE_RAW_DECL_COSL
821 _GL_WARN_ON_USE (cosl, "cosl is unportable - "
822 "use gnulib module cosl for portability");
823 # endif
824 #endif
825
826
827 #if 0
828 # if !1
829 # undef coshf
830 _GL_FUNCDECL_SYS (coshf, float, (float x));
831 # endif
832 _GL_CXXALIAS_SYS (coshf, float, (float x));
833 _GL_CXXALIASWARN (coshf);
834 #elif defined GNULIB_POSIXCHECK
835 # undef coshf
836 # if HAVE_RAW_DECL_COSHF
837 _GL_WARN_ON_USE (coshf, "coshf is unportable - "
838 "use gnulib module coshf for portability");
839 # endif
840 #endif
841
842
843 #if 0
844 # if !1
845 # undef expf
846 _GL_FUNCDECL_SYS (expf, float, (float x));
847 # endif
848 _GL_CXXALIAS_SYS (expf, float, (float x));
849 _GL_CXXALIASWARN (expf);
850 #elif defined GNULIB_POSIXCHECK
851 # undef expf
852 # if HAVE_RAW_DECL_EXPF
853 _GL_WARN_ON_USE (expf, "expf is unportable - "
854 "use gnulib module expf for portability");
855 # endif
856 #endif
857
858 #if 0
859 # if !1 || !1
860 # undef expl
861 _GL_FUNCDECL_SYS (expl, long double, (long double x));
862 # endif
863 _GL_CXXALIAS_SYS (expl, long double, (long double x));
864 _GL_CXXALIASWARN (expl);
865 #elif defined GNULIB_POSIXCHECK
866 # undef expl
867 # if HAVE_RAW_DECL_EXPL
868 _GL_WARN_ON_USE (expl, "expl is unportable - "
869 "use gnulib module expl for portability");
870 # endif
871 #endif
872
873
874 #if 0
875 # if !1
876 _GL_FUNCDECL_SYS (exp2f, float, (float x));
877 # endif
878 _GL_CXXALIAS_SYS (exp2f, float, (float x));
879 _GL_CXXALIASWARN (exp2f);
880 #elif defined GNULIB_POSIXCHECK
881 # undef exp2f
882 # if HAVE_RAW_DECL_EXP2F
883 _GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
884 "use gnulib module exp2f for portability");
885 # endif
886 #endif
887
888 #if 0
889 # if 0
890 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
891 # undef exp2
892 # define exp2 rpl_exp2
893 # endif
894 _GL_FUNCDECL_RPL (exp2, double, (double x));
895 _GL_CXXALIAS_RPL (exp2, double, (double x));
896 # else
897 # if !1
898 _GL_FUNCDECL_SYS (exp2, double, (double x));
899 # endif
900 _GL_CXXALIAS_SYS (exp2, double, (double x));
901 # endif
902 _GL_CXXALIASWARN (exp2);
903 #elif defined GNULIB_POSIXCHECK
904 # undef exp2
905 # if HAVE_RAW_DECL_EXP2
906 _GL_WARN_ON_USE (exp2, "exp2 is unportable - "
907 "use gnulib module exp2 for portability");
908 # endif
909 #endif
910
911 #if 0
912 # if 0
913 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
914 # undef exp2l
915 # define exp2l rpl_exp2l
916 # endif
917 _GL_FUNCDECL_RPL (exp2l, long double, (long double x));
918 _GL_CXXALIAS_RPL (exp2l, long double, (long double x));
919 # else
920 # if !1
921 # undef exp2l
922 _GL_FUNCDECL_SYS (exp2l, long double, (long double x));
923 # endif
924 _GL_CXXALIAS_SYS (exp2l, long double, (long double x));
925 # endif
926 _GL_CXXALIASWARN (exp2l);
927 #elif defined GNULIB_POSIXCHECK
928 # undef exp2l
929 # if HAVE_RAW_DECL_EXP2L
930 _GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
931 "use gnulib module exp2l for portability");
932 # endif
933 #endif
934
935
936 #if 0
937 # if 0
938 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
939 # undef expm1f
940 # define expm1f rpl_expm1f
941 # endif
942 _GL_FUNCDECL_RPL (expm1f, float, (float x));
943 _GL_CXXALIAS_RPL (expm1f, float, (float x));
944 # else
945 # if !1
946 _GL_FUNCDECL_SYS (expm1f, float, (float x));
947 # endif
948 _GL_CXXALIAS_SYS (expm1f, float, (float x));
949 # endif
950 _GL_CXXALIASWARN (expm1f);
951 #elif defined GNULIB_POSIXCHECK
952 # undef expm1f
953 # if HAVE_RAW_DECL_EXPM1F
954 _GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
955 "use gnulib module expm1f for portability");
956 # endif
957 #endif
958
959 #if 0
960 # if 0
961 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
962 # undef expm1
963 # define expm1 rpl_expm1
964 # endif
965 _GL_FUNCDECL_RPL (expm1, double, (double x));
966 _GL_CXXALIAS_RPL (expm1, double, (double x));
967 # else
968 # if !1
969 _GL_FUNCDECL_SYS (expm1, double, (double x));
970 # endif
971 _GL_CXXALIAS_SYS (expm1, double, (double x));
972 # endif
973 _GL_CXXALIASWARN (expm1);
974 #elif defined GNULIB_POSIXCHECK
975 # undef expm1
976 # if HAVE_RAW_DECL_EXPM1
977 _GL_WARN_ON_USE (expm1, "expm1 is unportable - "
978 "use gnulib module expm1 for portability");
979 # endif
980 #endif
981
982 #if 0
983 # if !1
984 # undef expm1l
985 _GL_FUNCDECL_SYS (expm1l, long double, (long double x));
986 # endif
987 _GL_CXXALIAS_SYS (expm1l, long double, (long double x));
988 _GL_CXXALIASWARN (expm1l);
989 #elif defined GNULIB_POSIXCHECK
990 # undef expm1l
991 # if HAVE_RAW_DECL_EXPM1L
992 _GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
993 "use gnulib module expm1l for portability");
994 # endif
995 #endif
996
997
998 #if 0
999 # if !1
1000 # undef fabsf
1001 _GL_FUNCDECL_SYS (fabsf, float, (float x));
1002 # endif
1003 _GL_CXXALIAS_SYS (fabsf, float, (float x));
1004 _GL_CXXALIASWARN (fabsf);
1005 #elif defined GNULIB_POSIXCHECK
1006 # undef fabsf
1007 # if HAVE_RAW_DECL_FABSF
1008 _GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
1009 "use gnulib module fabsf for portability");
1010 # endif
1011 #endif
1012
1013 #if 0
1014 # if 0
1015 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1016 # undef fabsl
1017 # define fabsl rpl_fabsl
1018 # endif
1019 _GL_FUNCDECL_RPL (fabsl, long double, (long double x));
1020 _GL_CXXALIAS_RPL (fabsl, long double, (long double x));
1021 # else
1022 # if !1
1023 # undef fabsl
1024 _GL_FUNCDECL_SYS (fabsl, long double, (long double x));
1025 # endif
1026 _GL_CXXALIAS_SYS (fabsl, long double, (long double x));
1027 # endif
1028 _GL_CXXALIASWARN (fabsl);
1029 #elif defined GNULIB_POSIXCHECK
1030 # undef fabsl
1031 # if HAVE_RAW_DECL_FABSL
1032 _GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
1033 "use gnulib module fabsl for portability");
1034 # endif
1035 #endif
1036
1037
1038 #if 0
1039 # if 0
1040 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1041 # undef floorf
1042 # define floorf rpl_floorf
1043 # endif
1044 _GL_FUNCDECL_RPL (floorf, float, (float x));
1045 _GL_CXXALIAS_RPL (floorf, float, (float x));
1046 # else
1047 # if !1
1048 # undef floorf
1049 _GL_FUNCDECL_SYS (floorf, float, (float x));
1050 # endif
1051 _GL_CXXALIAS_SYS (floorf, float, (float x));
1052 # endif
1053 _GL_CXXALIASWARN (floorf);
1054 #elif defined GNULIB_POSIXCHECK
1055 # undef floorf
1056 # if HAVE_RAW_DECL_FLOORF
1057 _GL_WARN_ON_USE (floorf, "floorf is unportable - "
1058 "use gnulib module floorf for portability");
1059 # endif
1060 #endif
1061
1062 #if 0
1063 # if 0
1064 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1065 # define floor rpl_floor
1066 # endif
1067 _GL_FUNCDECL_RPL (floor, double, (double x));
1068 _GL_CXXALIAS_RPL (floor, double, (double x));
1069 # else
1070 _GL_CXXALIAS_SYS (floor, double, (double x));
1071 # endif
1072 _GL_CXXALIASWARN (floor);
1073 #endif
1074
1075 #if 0
1076 # if 0
1077 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1078 # undef floorl
1079 # define floorl rpl_floorl
1080 # endif
1081 _GL_FUNCDECL_RPL (floorl, long double, (long double x));
1082 _GL_CXXALIAS_RPL (floorl, long double, (long double x));
1083 # else
1084 # if !1
1085 # undef floorl
1086 _GL_FUNCDECL_SYS (floorl, long double, (long double x));
1087 # endif
1088 _GL_CXXALIAS_SYS (floorl, long double, (long double x));
1089 # endif
1090 _GL_CXXALIASWARN (floorl);
1091 #elif defined GNULIB_POSIXCHECK
1092 # undef floorl
1093 # if HAVE_RAW_DECL_FLOORL
1094 _GL_WARN_ON_USE (floorl, "floorl is unportable - "
1095 "use gnulib module floorl for portability");
1096 # endif
1097 #endif
1098
1099
1100 #if 0
1101 # if 0
1102 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1103 # undef fmaf
1104 # define fmaf rpl_fmaf
1105 # endif
1106 _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
1107 _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
1108 # else
1109 # if !1
1110 _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
1111 # endif
1112 _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
1113 # endif
1114 _GL_CXXALIASWARN (fmaf);
1115 #elif defined GNULIB_POSIXCHECK
1116 # undef fmaf
1117 # if HAVE_RAW_DECL_FMAF
1118 _GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
1119 "use gnulib module fmaf for portability");
1120 # endif
1121 #endif
1122
1123 #if 0
1124 # if 0
1125 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1126 # undef fma
1127 # define fma rpl_fma
1128 # endif
1129 _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
1130 _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
1131 # else
1132 # if !1
1133 _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
1134 # endif
1135 _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
1136 # endif
1137 _GL_CXXALIASWARN (fma);
1138 #elif defined GNULIB_POSIXCHECK
1139 # undef fma
1140 # if HAVE_RAW_DECL_FMA
1141 _GL_WARN_ON_USE (fma, "fma is unportable - "
1142 "use gnulib module fma for portability");
1143 # endif
1144 #endif
1145
1146 #if 0
1147 # if 0
1148 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1149 # undef fmal
1150 # define fmal rpl_fmal
1151 # endif
1152 _GL_FUNCDECL_RPL (fmal, long double,
1153 (long double x, long double y, long double z));
1154 _GL_CXXALIAS_RPL (fmal, long double,
1155 (long double x, long double y, long double z));
1156 # else
1157 # if !1
1158 # undef fmal
1159 _GL_FUNCDECL_SYS (fmal, long double,
1160 (long double x, long double y, long double z));
1161 # endif
1162 _GL_CXXALIAS_SYS (fmal, long double,
1163 (long double x, long double y, long double z));
1164 # endif
1165 _GL_CXXALIASWARN (fmal);
1166 #elif defined GNULIB_POSIXCHECK
1167 # undef fmal
1168 # if HAVE_RAW_DECL_FMAL
1169 _GL_WARN_ON_USE (fmal, "fmal is unportable - "
1170 "use gnulib module fmal for portability");
1171 # endif
1172 #endif
1173
1174
1175 #if 0
1176 # if 0
1177 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1178 # undef fmodf
1179 # define fmodf rpl_fmodf
1180 # endif
1181 _GL_FUNCDECL_RPL (fmodf, float, (float x, float y));
1182 _GL_CXXALIAS_RPL (fmodf, float, (float x, float y));
1183 # else
1184 # if !1
1185 # undef fmodf
1186 _GL_FUNCDECL_SYS (fmodf, float, (float x, float y));
1187 # endif
1188 _GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
1189 # endif
1190 _GL_CXXALIASWARN (fmodf);
1191 #elif defined GNULIB_POSIXCHECK
1192 # undef fmodf
1193 # if HAVE_RAW_DECL_FMODF
1194 _GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
1195 "use gnulib module fmodf for portability");
1196 # endif
1197 #endif
1198
1199 #if 0
1200 # if 0
1201 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1202 # undef fmod
1203 # define fmod rpl_fmod
1204 # endif
1205 _GL_FUNCDECL_RPL (fmod, double, (double x, double y));
1206 _GL_CXXALIAS_RPL (fmod, double, (double x, double y));
1207 # else
1208 _GL_CXXALIAS_SYS (fmod, double, (double x, double y));
1209 # endif
1210 _GL_CXXALIASWARN (fmod);
1211 #elif defined GNULIB_POSIXCHECK
1212 # undef fmod
1213 # if HAVE_RAW_DECL_FMOD
1214 _GL_WARN_ON_USE (fmod, "fmod has portability problems - "
1215 "use gnulib module fmod for portability");
1216 # endif
1217 #endif
1218
1219 #if 0
1220 # if 0
1221 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1222 # undef fmodl
1223 # define fmodl rpl_fmodl
1224 # endif
1225 _GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y));
1226 _GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y));
1227 # else
1228 # if !1
1229 # undef fmodl
1230 _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
1231 # endif
1232 _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
1233 # endif
1234 _GL_CXXALIASWARN (fmodl);
1235 #elif defined GNULIB_POSIXCHECK
1236 # undef fmodl
1237 # if HAVE_RAW_DECL_FMODL
1238 _GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
1239 "use gnulib module fmodl for portability");
1240 # endif
1241 #endif
1242
1243
1244 /* Write x as
1245 x = mantissa * 2^exp
1246 where
1247 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1248 If x is zero: mantissa = x, exp = 0.
1249 If x is infinite or NaN: mantissa = x, exp unspecified.
1250 Store exp in *EXPPTR and return mantissa. */
1251 #if 0
1252 # if 0
1253 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1254 # undef frexpf
1255 # define frexpf rpl_frexpf
1256 # endif
1257 _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1258 _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr));
1259 # else
1260 # if !1
1261 # undef frexpf
1262 _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1263 # endif
1264 _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
1265 # endif
1266 _GL_CXXALIASWARN (frexpf);
1267 #elif defined GNULIB_POSIXCHECK
1268 # undef frexpf
1269 # if HAVE_RAW_DECL_FREXPF
1270 _GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
1271 "use gnulib module frexpf for portability");
1272 # endif
1273 #endif
1274
1275 /* Write x as
1276 x = mantissa * 2^exp
1277 where
1278 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1279 If x is zero: mantissa = x, exp = 0.
1280 If x is infinite or NaN: mantissa = x, exp unspecified.
1281 Store exp in *EXPPTR and return mantissa. */
1282 #if 1
1283 # if 0
1284 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1285 # define frexp rpl_frexp
1286 # endif
1287 _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
1288 _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
1289 # else
1290 _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
1291 # endif
1292 _GL_CXXALIASWARN (frexp);
1293 #elif defined GNULIB_POSIXCHECK
1294 # undef frexp
1295 /* Assume frexp is always declared. */
1296 _GL_WARN_ON_USE (frexp, "frexp is unportable - "
1297 "use gnulib module frexp for portability");
1298 #endif
1299
1300 /* Write x as
1301 x = mantissa * 2^exp
1302 where
1303 If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1304 If x is zero: mantissa = x, exp = 0.
1305 If x is infinite or NaN: mantissa = x, exp unspecified.
1306 Store exp in *EXPPTR and return mantissa. */
1307 #if 1 && 0
1308 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1309 # undef frexpl
1310 # define frexpl rpl_frexpl
1311 # endif
1312 _GL_FUNCDECL_RPL (frexpl, long double,
1313 (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1314 _GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
1315 #else
1316 # if !1
1317 _GL_FUNCDECL_SYS (frexpl, long double,
1318 (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1319 # endif
1320 # if 1
1321 _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
1322 # endif
1323 #endif
1324 #if 1 && !(0 && !1)
1325 _GL_CXXALIASWARN (frexpl);
1326 #endif
1327 #if !1 && defined GNULIB_POSIXCHECK
1328 # undef frexpl
1329 # if HAVE_RAW_DECL_FREXPL
1330 _GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
1331 "use gnulib module frexpl for portability");
1332 # endif
1333 #endif
1334
1335
1336 /* Return sqrt(x^2+y^2). */
1337 #if 0
1338 # if 0
1339 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1340 # undef hypotf
1341 # define hypotf rpl_hypotf
1342 # endif
1343 _GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
1344 _GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
1345 # else
1346 # if !1
1347 _GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
1348 # endif
1349 _GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
1350 # endif
1351 _GL_CXXALIASWARN (hypotf);
1352 #elif defined GNULIB_POSIXCHECK
1353 # undef hypotf
1354 # if HAVE_RAW_DECL_HYPOTF
1355 _GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
1356 "use gnulib module hypotf for portability");
1357 # endif
1358 #endif
1359
1360 /* Return sqrt(x^2+y^2). */
1361 #if 0
1362 # if 0
1363 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1364 # undef hypot
1365 # define hypot rpl_hypot
1366 # endif
1367 _GL_FUNCDECL_RPL (hypot, double, (double x, double y));
1368 _GL_CXXALIAS_RPL (hypot, double, (double x, double y));
1369 # else
1370 _GL_CXXALIAS_SYS (hypot, double, (double x, double y));
1371 # endif
1372 _GL_CXXALIASWARN (hypot);
1373 #elif defined GNULIB_POSIXCHECK
1374 # undef hypot
1375 # if HAVE_RAW_DECL_HYPOT
1376 _GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
1377 "use gnulib module hypot for portability");
1378 # endif
1379 #endif
1380
1381 /* Return sqrt(x^2+y^2). */
1382 #if 0
1383 # if 0
1384 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1385 # undef hypotl
1386 # define hypotl rpl_hypotl
1387 # endif
1388 _GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y));
1389 _GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y));
1390 # else
1391 # if !1
1392 _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
1393 # endif
1394 _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
1395 # endif
1396 _GL_CXXALIASWARN (hypotl);
1397 #elif defined GNULIB_POSIXCHECK
1398 # undef hypotl
1399 # if HAVE_RAW_DECL_HYPOTL
1400 _GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
1401 "use gnulib module hypotl for portability");
1402 # endif
1403 #endif
1404
1405
1406 #if 0
1407 # if 0
1408 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1409 # undef ilogbf
1410 # define ilogbf rpl_ilogbf
1411 # endif
1412 _GL_FUNCDECL_RPL (ilogbf, int, (float x));
1413 _GL_CXXALIAS_RPL (ilogbf, int, (float x));
1414 # else
1415 # if !1
1416 _GL_FUNCDECL_SYS (ilogbf, int, (float x));
1417 # endif
1418 _GL_CXXALIAS_SYS (ilogbf, int, (float x));
1419 # endif
1420 _GL_CXXALIASWARN (ilogbf);
1421 #elif defined GNULIB_POSIXCHECK
1422 # undef ilogbf
1423 # if HAVE_RAW_DECL_ILOGBF
1424 _GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
1425 "use gnulib module ilogbf for portability");
1426 # endif
1427 #endif
1428
1429 #if 0
1430 # if 0
1431 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1432 # undef ilogb
1433 # define ilogb rpl_ilogb
1434 # endif
1435 _GL_FUNCDECL_RPL (ilogb, int, (double x));
1436 _GL_CXXALIAS_RPL (ilogb, int, (double x));
1437 # else
1438 # if !1
1439 _GL_FUNCDECL_SYS (ilogb, int, (double x));
1440 # endif
1441 _GL_CXXALIAS_SYS (ilogb, int, (double x));
1442 # endif
1443 _GL_CXXALIASWARN (ilogb);
1444 #elif defined GNULIB_POSIXCHECK
1445 # undef ilogb
1446 # if HAVE_RAW_DECL_ILOGB
1447 _GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
1448 "use gnulib module ilogb for portability");
1449 # endif
1450 #endif
1451
1452 #if 0
1453 # if !1
1454 _GL_FUNCDECL_SYS (ilogbl, int, (long double x));
1455 # endif
1456 _GL_CXXALIAS_SYS (ilogbl, int, (long double x));
1457 _GL_CXXALIASWARN (ilogbl);
1458 #elif defined GNULIB_POSIXCHECK
1459 # undef ilogbl
1460 # if HAVE_RAW_DECL_ILOGBL
1461 _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
1462 "use gnulib module ilogbl for portability");
1463 # endif
1464 #endif
1465
1466
1467 /* Return x * 2^exp. */
1468 #if 0
1469 # if !1
1470 # undef ldexpf
1471 _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
1472 # endif
1473 _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
1474 _GL_CXXALIASWARN (ldexpf);
1475 #elif defined GNULIB_POSIXCHECK
1476 # undef ldexpf
1477 # if HAVE_RAW_DECL_LDEXPF
1478 _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
1479 "use gnulib module ldexpf for portability");
1480 # endif
1481 #endif
1482
1483 /* Return x * 2^exp. */
1484 #if 1 && 0
1485 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1486 # undef ldexpl
1487 # define ldexpl rpl_ldexpl
1488 # endif
1489 _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
1490 _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
1491 #else
1492 # if !1
1493 _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
1494 # endif
1495 # if 1
1496 _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
1497 # endif
1498 #endif
1499 #if 1
1500 _GL_CXXALIASWARN (ldexpl);
1501 #endif
1502 #if !1 && defined GNULIB_POSIXCHECK
1503 # undef ldexpl
1504 # if HAVE_RAW_DECL_LDEXPL
1505 _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
1506 "use gnulib module ldexpl for portability");
1507 # endif
1508 #endif
1509
1510
1511 #if 0
1512 # if 0
1513 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1514 # undef logf
1515 # define logf rpl_logf
1516 # endif
1517 _GL_FUNCDECL_RPL (logf, float, (float x));
1518 _GL_CXXALIAS_RPL (logf, float, (float x));
1519 # else
1520 # if !1
1521 # undef logf
1522 _GL_FUNCDECL_SYS (logf, float, (float x));
1523 # endif
1524 _GL_CXXALIAS_SYS (logf, float, (float x));
1525 # endif
1526 _GL_CXXALIASWARN (logf);
1527 #elif defined GNULIB_POSIXCHECK
1528 # undef logf
1529 # if HAVE_RAW_DECL_LOGF
1530 _GL_WARN_ON_USE (logf, "logf is unportable - "
1531 "use gnulib module logf for portability");
1532 # endif
1533 #endif
1534
1535 #if 0
1536 # if 0
1537 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1538 # undef log
1539 # define log rpl_log
1540 # endif
1541 _GL_FUNCDECL_RPL (log, double, (double x));
1542 _GL_CXXALIAS_RPL (log, double, (double x));
1543 # else
1544 _GL_CXXALIAS_SYS (log, double, (double x));
1545 # endif
1546 _GL_CXXALIASWARN (log);
1547 #elif defined GNULIB_POSIXCHECK
1548 # undef log
1549 # if HAVE_RAW_DECL_LOG
1550 _GL_WARN_ON_USE (log, "log has portability problems - "
1551 "use gnulib module log for portability");
1552 # endif
1553 #endif
1554
1555 #if 0
1556 # if 0
1557 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1558 # undef logl
1559 # define logl rpl_logl
1560 # endif
1561 _GL_FUNCDECL_RPL (logl, long double, (long double x));
1562 _GL_CXXALIAS_RPL (logl, long double, (long double x));
1563 # else
1564 # if !1 || !1
1565 # undef logl
1566 _GL_FUNCDECL_SYS (logl, long double, (long double x));
1567 # endif
1568 _GL_CXXALIAS_SYS (logl, long double, (long double x));
1569 # endif
1570 _GL_CXXALIASWARN (logl);
1571 #elif defined GNULIB_POSIXCHECK
1572 # undef logl
1573 # if HAVE_RAW_DECL_LOGL
1574 _GL_WARN_ON_USE (logl, "logl is unportable - "
1575 "use gnulib module logl for portability");
1576 # endif
1577 #endif
1578
1579
1580 #if 0
1581 # if 0
1582 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1583 # undef log10f
1584 # define log10f rpl_log10f
1585 # endif
1586 _GL_FUNCDECL_RPL (log10f, float, (float x));
1587 _GL_CXXALIAS_RPL (log10f, float, (float x));
1588 # else
1589 # if !1
1590 # undef log10f
1591 _GL_FUNCDECL_SYS (log10f, float, (float x));
1592 # endif
1593 _GL_CXXALIAS_SYS (log10f, float, (float x));
1594 # endif
1595 _GL_CXXALIASWARN (log10f);
1596 #elif defined GNULIB_POSIXCHECK
1597 # undef log10f
1598 # if HAVE_RAW_DECL_LOG10F
1599 _GL_WARN_ON_USE (log10f, "log10f is unportable - "
1600 "use gnulib module log10f for portability");
1601 # endif
1602 #endif
1603
1604 #if 0
1605 # if 0
1606 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1607 # undef log10
1608 # define log10 rpl_log10
1609 # endif
1610 _GL_FUNCDECL_RPL (log10, double, (double x));
1611 _GL_CXXALIAS_RPL (log10, double, (double x));
1612 # else
1613 _GL_CXXALIAS_SYS (log10, double, (double x));
1614 # endif
1615 _GL_CXXALIASWARN (log10);
1616 #elif defined GNULIB_POSIXCHECK
1617 # undef log10
1618 # if HAVE_RAW_DECL_LOG10
1619 _GL_WARN_ON_USE (log10, "log10 has portability problems - "
1620 "use gnulib module log10 for portability");
1621 # endif
1622 #endif
1623
1624 #if 0
1625 # if 0
1626 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1627 # undef log10l
1628 # define log10l rpl_log10l
1629 # endif
1630 _GL_FUNCDECL_RPL (log10l, long double, (long double x));
1631 _GL_CXXALIAS_RPL (log10l, long double, (long double x));
1632 # else
1633 # if !1 || !1
1634 # undef log10l
1635 _GL_FUNCDECL_SYS (log10l, long double, (long double x));
1636 # endif
1637 _GL_CXXALIAS_SYS (log10l, long double, (long double x));
1638 # endif
1639 _GL_CXXALIASWARN (log10l);
1640 #elif defined GNULIB_POSIXCHECK
1641 # undef log10l
1642 # if HAVE_RAW_DECL_LOG10L
1643 _GL_WARN_ON_USE (log10l, "log10l is unportable - "
1644 "use gnulib module log10l for portability");
1645 # endif
1646 #endif
1647
1648
1649 #if 0
1650 # if 0
1651 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1652 # undef log1pf
1653 # define log1pf rpl_log1pf
1654 # endif
1655 _GL_FUNCDECL_RPL (log1pf, float, (float x));
1656 _GL_CXXALIAS_RPL (log1pf, float, (float x));
1657 # else
1658 # if !1
1659 _GL_FUNCDECL_SYS (log1pf, float, (float x));
1660 # endif
1661 _GL_CXXALIAS_SYS (log1pf, float, (float x));
1662 # endif
1663 _GL_CXXALIASWARN (log1pf);
1664 #elif defined GNULIB_POSIXCHECK
1665 # undef log1pf
1666 # if HAVE_RAW_DECL_LOG1PF
1667 _GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
1668 "use gnulib module log1pf for portability");
1669 # endif
1670 #endif
1671
1672 #if 0
1673 # if 0
1674 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1675 # undef log1p
1676 # define log1p rpl_log1p
1677 # endif
1678 _GL_FUNCDECL_RPL (log1p, double, (double x));
1679 _GL_CXXALIAS_RPL (log1p, double, (double x));
1680 # else
1681 # if !1
1682 _GL_FUNCDECL_SYS (log1p, double, (double x));
1683 # endif
1684 _GL_CXXALIAS_SYS (log1p, double, (double x));
1685 # endif
1686 _GL_CXXALIASWARN (log1p);
1687 #elif defined GNULIB_POSIXCHECK
1688 # undef log1p
1689 # if HAVE_RAW_DECL_LOG1P
1690 _GL_WARN_ON_USE (log1p, "log1p has portability problems - "
1691 "use gnulib module log1p for portability");
1692 # endif
1693 #endif
1694
1695 #if 0
1696 # if 0
1697 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1698 # undef log1pl
1699 # define log1pl rpl_log1pl
1700 # endif
1701 _GL_FUNCDECL_RPL (log1pl, long double, (long double x));
1702 _GL_CXXALIAS_RPL (log1pl, long double, (long double x));
1703 # else
1704 # if !1
1705 _GL_FUNCDECL_SYS (log1pl, long double, (long double x));
1706 # endif
1707 _GL_CXXALIAS_SYS (log1pl, long double, (long double x));
1708 # endif
1709 _GL_CXXALIASWARN (log1pl);
1710 #elif defined GNULIB_POSIXCHECK
1711 # undef log1pl
1712 # if HAVE_RAW_DECL_LOG1PL
1713 _GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
1714 "use gnulib module log1pl for portability");
1715 # endif
1716 #endif
1717
1718
1719 #if 0
1720 # if 0
1721 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1722 # undef log2f
1723 # define log2f rpl_log2f
1724 # endif
1725 _GL_FUNCDECL_RPL (log2f, float, (float x));
1726 _GL_CXXALIAS_RPL (log2f, float, (float x));
1727 # else
1728 # if !1
1729 # undef log2f
1730 _GL_FUNCDECL_SYS (log2f, float, (float x));
1731 # endif
1732 _GL_CXXALIAS_SYS (log2f, float, (float x));
1733 # endif
1734 _GL_CXXALIASWARN (log2f);
1735 #elif defined GNULIB_POSIXCHECK
1736 # undef log2f
1737 # if HAVE_RAW_DECL_LOG2F
1738 _GL_WARN_ON_USE (log2f, "log2f is unportable - "
1739 "use gnulib module log2f for portability");
1740 # endif
1741 #endif
1742
1743 #if 0
1744 # if 0
1745 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1746 # undef log2
1747 # define log2 rpl_log2
1748 # endif
1749 _GL_FUNCDECL_RPL (log2, double, (double x));
1750 _GL_CXXALIAS_RPL (log2, double, (double x));
1751 # else
1752 # if !1
1753 # undef log2
1754 _GL_FUNCDECL_SYS (log2, double, (double x));
1755 # endif
1756 _GL_CXXALIAS_SYS (log2, double, (double x));
1757 # endif
1758 _GL_CXXALIASWARN (log2);
1759 #elif defined GNULIB_POSIXCHECK
1760 # undef log2
1761 # if HAVE_RAW_DECL_LOG2
1762 _GL_WARN_ON_USE (log2, "log2 is unportable - "
1763 "use gnulib module log2 for portability");
1764 # endif
1765 #endif
1766
1767 #if 0
1768 # if 0
1769 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1770 # undef log2l
1771 # define log2l rpl_log2l
1772 # endif
1773 _GL_FUNCDECL_RPL (log2l, long double, (long double x));
1774 _GL_CXXALIAS_RPL (log2l, long double, (long double x));
1775 # else
1776 # if !1
1777 _GL_FUNCDECL_SYS (log2l, long double, (long double x));
1778 # endif
1779 _GL_CXXALIAS_SYS (log2l, long double, (long double x));
1780 # endif
1781 _GL_CXXALIASWARN (log2l);
1782 #elif defined GNULIB_POSIXCHECK
1783 # undef log2l
1784 # if HAVE_RAW_DECL_LOG2L
1785 _GL_WARN_ON_USE (log2l, "log2l is unportable - "
1786 "use gnulib module log2l for portability");
1787 # endif
1788 #endif
1789
1790
1791 #if 0
1792 # if 0
1793 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1794 # undef logbf
1795 # define logbf rpl_logbf
1796 # endif
1797 _GL_FUNCDECL_RPL (logbf, float, (float x));
1798 _GL_CXXALIAS_RPL (logbf, float, (float x));
1799 # else
1800 # if !1
1801 _GL_FUNCDECL_SYS (logbf, float, (float x));
1802 # endif
1803 _GL_CXXALIAS_SYS (logbf, float, (float x));
1804 # endif
1805 _GL_CXXALIASWARN (logbf);
1806 #elif defined GNULIB_POSIXCHECK
1807 # undef logbf
1808 # if HAVE_RAW_DECL_LOGBF
1809 _GL_WARN_ON_USE (logbf, "logbf is unportable - "
1810 "use gnulib module logbf for portability");
1811 # endif
1812 #endif
1813
1814 #if 0
1815 # if 0
1816 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1817 # undef logb
1818 # define logb rpl_logb
1819 # endif
1820 _GL_FUNCDECL_RPL (logb, double, (double x));
1821 _GL_CXXALIAS_RPL (logb, double, (double x));
1822 # else
1823 # if !1
1824 _GL_FUNCDECL_SYS (logb, double, (double x));
1825 # endif
1826 _GL_CXXALIAS_SYS (logb, double, (double x));
1827 # endif
1828 _GL_CXXALIASWARN (logb);
1829 #elif defined GNULIB_POSIXCHECK
1830 # undef logb
1831 # if HAVE_RAW_DECL_LOGB
1832 _GL_WARN_ON_USE (logb, "logb is unportable - "
1833 "use gnulib module logb for portability");
1834 # endif
1835 #endif
1836
1837 #if 0
1838 # if 0
1839 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1840 # undef logbl
1841 # define logbl rpl_logbl
1842 # endif
1843 _GL_FUNCDECL_RPL (logbl, long double, (long double x));
1844 _GL_CXXALIAS_RPL (logbl, long double, (long double x));
1845 # else
1846 # if !1
1847 _GL_FUNCDECL_SYS (logbl, long double, (long double x));
1848 # endif
1849 _GL_CXXALIAS_SYS (logbl, long double, (long double x));
1850 # endif
1851 _GL_CXXALIASWARN (logbl);
1852 #elif defined GNULIB_POSIXCHECK
1853 # undef logbl
1854 # if HAVE_RAW_DECL_LOGBL
1855 _GL_WARN_ON_USE (logbl, "logbl is unportable - "
1856 "use gnulib module logbl for portability");
1857 # endif
1858 #endif
1859
1860
1861 #if 0
1862 # if 0
1863 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1864 # undef modff
1865 # define modff rpl_modff
1866 # endif
1867 _GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
1868 _GL_CXXALIAS_RPL (modff, float, (float x, float *iptr));
1869 # else
1870 # if !1
1871 # undef modff
1872 _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
1873 # endif
1874 _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
1875 # endif
1876 _GL_CXXALIASWARN (modff);
1877 #elif defined GNULIB_POSIXCHECK
1878 # undef modff
1879 # if HAVE_RAW_DECL_MODFF
1880 _GL_WARN_ON_USE (modff, "modff is unportable - "
1881 "use gnulib module modff for portability");
1882 # endif
1883 #endif
1884
1885 #if 0
1886 # if 0
1887 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1888 # undef modf
1889 # define modf rpl_modf
1890 # endif
1891 _GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2)));
1892 _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
1893 # else
1894 _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
1895 # endif
1896 _GL_CXXALIASWARN (modf);
1897 #elif defined GNULIB_POSIXCHECK
1898 # undef modf
1899 # if HAVE_RAW_DECL_MODF
1900 _GL_WARN_ON_USE (modf, "modf has portability problems - "
1901 "use gnulib module modf for portability");
1902 # endif
1903 #endif
1904
1905 #if 0
1906 # if 0
1907 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1908 # undef modfl
1909 # define modfl rpl_modfl
1910 # endif
1911 _GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr)
1912 _GL_ARG_NONNULL ((2)));
1913 _GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr));
1914 # else
1915 # if !1
1916 # undef modfl
1917 _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
1918 _GL_ARG_NONNULL ((2)));
1919 # endif
1920 _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
1921 # endif
1922 _GL_CXXALIASWARN (modfl);
1923 #elif defined GNULIB_POSIXCHECK
1924 # undef modfl
1925 # if HAVE_RAW_DECL_MODFL
1926 _GL_WARN_ON_USE (modfl, "modfl is unportable - "
1927 "use gnulib module modfl for portability");
1928 # endif
1929 #endif
1930
1931
1932 #if 0
1933 # if !1
1934 # undef powf
1935 _GL_FUNCDECL_SYS (powf, float, (float x, float y));
1936 # endif
1937 _GL_CXXALIAS_SYS (powf, float, (float x, float y));
1938 _GL_CXXALIASWARN (powf);
1939 #elif defined GNULIB_POSIXCHECK
1940 # undef powf
1941 # if HAVE_RAW_DECL_POWF
1942 _GL_WARN_ON_USE (powf, "powf is unportable - "
1943 "use gnulib module powf for portability");
1944 # endif
1945 #endif
1946
1947
1948 #if 0
1949 # if 0
1950 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1951 # undef remainderf
1952 # define remainderf rpl_remainderf
1953 # endif
1954 _GL_FUNCDECL_RPL (remainderf, float, (float x, float y));
1955 _GL_CXXALIAS_RPL (remainderf, float, (float x, float y));
1956 # else
1957 # if !1
1958 _GL_FUNCDECL_SYS (remainderf, float, (float x, float y));
1959 # endif
1960 _GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
1961 # endif
1962 _GL_CXXALIASWARN (remainderf);
1963 #elif defined GNULIB_POSIXCHECK
1964 # undef remainderf
1965 # if HAVE_RAW_DECL_REMAINDERF
1966 _GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
1967 "use gnulib module remainderf for portability");
1968 # endif
1969 #endif
1970
1971 #if 0
1972 # if 0
1973 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1974 # undef remainder
1975 # define remainder rpl_remainder
1976 # endif
1977 _GL_FUNCDECL_RPL (remainder, double, (double x, double y));
1978 _GL_CXXALIAS_RPL (remainder, double, (double x, double y));
1979 # else
1980 # if !1 || !1
1981 _GL_FUNCDECL_SYS (remainder, double, (double x, double y));
1982 # endif
1983 _GL_CXXALIAS_SYS (remainder, double, (double x, double y));
1984 # endif
1985 _GL_CXXALIASWARN (remainder);
1986 #elif defined GNULIB_POSIXCHECK
1987 # undef remainder
1988 # if HAVE_RAW_DECL_REMAINDER
1989 _GL_WARN_ON_USE (remainder, "remainder is unportable - "
1990 "use gnulib module remainder for portability");
1991 # endif
1992 #endif
1993
1994 #if 0
1995 # if 0
1996 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1997 # undef remainderl
1998 # define remainderl rpl_remainderl
1999 # endif
2000 _GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y));
2001 _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
2002 # else
2003 # if !1
2004 # undef remainderl
2005 _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
2006 # endif
2007 _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
2008 # endif
2009 _GL_CXXALIASWARN (remainderl);
2010 #elif defined GNULIB_POSIXCHECK
2011 # undef remainderl
2012 # if HAVE_RAW_DECL_REMAINDERL
2013 _GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
2014 "use gnulib module remainderl for portability");
2015 # endif
2016 #endif
2017
2018
2019 #if 0
2020 # if !1
2021 _GL_FUNCDECL_SYS (rintf, float, (float x));
2022 # endif
2023 _GL_CXXALIAS_SYS (rintf, float, (float x));
2024 _GL_CXXALIASWARN (rintf);
2025 #elif defined GNULIB_POSIXCHECK
2026 # undef rintf
2027 # if HAVE_RAW_DECL_RINTF
2028 _GL_WARN_ON_USE (rintf, "rintf is unportable - "
2029 "use gnulib module rintf for portability");
2030 # endif
2031 #endif
2032
2033 #if 0
2034 # if !1
2035 _GL_FUNCDECL_SYS (rint, double, (double x));
2036 # endif
2037 _GL_CXXALIAS_SYS (rint, double, (double x));
2038 _GL_CXXALIASWARN (rint);
2039 #elif defined GNULIB_POSIXCHECK
2040 # undef rint
2041 # if HAVE_RAW_DECL_RINT
2042 _GL_WARN_ON_USE (rint, "rint is unportable - "
2043 "use gnulib module rint for portability");
2044 # endif
2045 #endif
2046
2047 #if 0
2048 # if !1
2049 _GL_FUNCDECL_SYS (rintl, long double, (long double x));
2050 # endif
2051 _GL_CXXALIAS_SYS (rintl, long double, (long double x));
2052 _GL_CXXALIASWARN (rintl);
2053 #elif defined GNULIB_POSIXCHECK
2054 # undef rintl
2055 # if HAVE_RAW_DECL_RINTL
2056 _GL_WARN_ON_USE (rintl, "rintl is unportable - "
2057 "use gnulib module rintl for portability");
2058 # endif
2059 #endif
2060
2061
2062 #if 0
2063 # if 0
2064 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2065 # undef roundf
2066 # define roundf rpl_roundf
2067 # endif
2068 _GL_FUNCDECL_RPL (roundf, float, (float x));
2069 _GL_CXXALIAS_RPL (roundf, float, (float x));
2070 # else
2071 # if !1
2072 _GL_FUNCDECL_SYS (roundf, float, (float x));
2073 # endif
2074 _GL_CXXALIAS_SYS (roundf, float, (float x));
2075 # endif
2076 _GL_CXXALIASWARN (roundf);
2077 #elif defined GNULIB_POSIXCHECK
2078 # undef roundf
2079 # if HAVE_RAW_DECL_ROUNDF
2080 _GL_WARN_ON_USE (roundf, "roundf is unportable - "
2081 "use gnulib module roundf for portability");
2082 # endif
2083 #endif
2084
2085 #if 0
2086 # if 0
2087 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2088 # undef round
2089 # define round rpl_round
2090 # endif
2091 _GL_FUNCDECL_RPL (round, double, (double x));
2092 _GL_CXXALIAS_RPL (round, double, (double x));
2093 # else
2094 # if !1
2095 _GL_FUNCDECL_SYS (round, double, (double x));
2096 # endif
2097 _GL_CXXALIAS_SYS (round, double, (double x));
2098 # endif
2099 _GL_CXXALIASWARN (round);
2100 #elif defined GNULIB_POSIXCHECK
2101 # undef round
2102 # if HAVE_RAW_DECL_ROUND
2103 _GL_WARN_ON_USE (round, "round is unportable - "
2104 "use gnulib module round for portability");
2105 # endif
2106 #endif
2107
2108 #if 0
2109 # if 0
2110 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2111 # undef roundl
2112 # define roundl rpl_roundl
2113 # endif
2114 _GL_FUNCDECL_RPL (roundl, long double, (long double x));
2115 _GL_CXXALIAS_RPL (roundl, long double, (long double x));
2116 # else
2117 # if !1
2118 # undef roundl
2119 _GL_FUNCDECL_SYS (roundl, long double, (long double x));
2120 # endif
2121 _GL_CXXALIAS_SYS (roundl, long double, (long double x));
2122 # endif
2123 _GL_CXXALIASWARN (roundl);
2124 #elif defined GNULIB_POSIXCHECK
2125 # undef roundl
2126 # if HAVE_RAW_DECL_ROUNDL
2127 _GL_WARN_ON_USE (roundl, "roundl is unportable - "
2128 "use gnulib module roundl for portability");
2129 # endif
2130 #endif
2131
2132
2133 #if 0
2134 # if !1
2135 # undef sinf
2136 _GL_FUNCDECL_SYS (sinf, float, (float x));
2137 # endif
2138 _GL_CXXALIAS_SYS (sinf, float, (float x));
2139 _GL_CXXALIASWARN (sinf);
2140 #elif defined GNULIB_POSIXCHECK
2141 # undef sinf
2142 # if HAVE_RAW_DECL_SINF
2143 _GL_WARN_ON_USE (sinf, "sinf is unportable - "
2144 "use gnulib module sinf for portability");
2145 # endif
2146 #endif
2147
2148 #if 0
2149 # if !1 || !1
2150 # undef sinl
2151 _GL_FUNCDECL_SYS (sinl, long double, (long double x));
2152 # endif
2153 _GL_CXXALIAS_SYS (sinl, long double, (long double x));
2154 _GL_CXXALIASWARN (sinl);
2155 #elif defined GNULIB_POSIXCHECK
2156 # undef sinl
2157 # if HAVE_RAW_DECL_SINL
2158 _GL_WARN_ON_USE (sinl, "sinl is unportable - "
2159 "use gnulib module sinl for portability");
2160 # endif
2161 #endif
2162
2163
2164 #if 0
2165 # if !1
2166 # undef sinhf
2167 _GL_FUNCDECL_SYS (sinhf, float, (float x));
2168 # endif
2169 _GL_CXXALIAS_SYS (sinhf, float, (float x));
2170 _GL_CXXALIASWARN (sinhf);
2171 #elif defined GNULIB_POSIXCHECK
2172 # undef sinhf
2173 # if HAVE_RAW_DECL_SINHF
2174 _GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
2175 "use gnulib module sinhf for portability");
2176 # endif
2177 #endif
2178
2179
2180 #if 0
2181 # if !1
2182 # undef sqrtf
2183 _GL_FUNCDECL_SYS (sqrtf, float, (float x));
2184 # endif
2185 _GL_CXXALIAS_SYS (sqrtf, float, (float x));
2186 _GL_CXXALIASWARN (sqrtf);
2187 #elif defined GNULIB_POSIXCHECK
2188 # undef sqrtf
2189 # if HAVE_RAW_DECL_SQRTF
2190 _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
2191 "use gnulib module sqrtf for portability");
2192 # endif
2193 #endif
2194
2195 #if 0
2196 # if 0
2197 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2198 # undef sqrtl
2199 # define sqrtl rpl_sqrtl
2200 # endif
2201 _GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
2202 _GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
2203 # else
2204 # if !1 || !1
2205 # undef sqrtl
2206 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
2207 # endif
2208 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
2209 # endif
2210 _GL_CXXALIASWARN (sqrtl);
2211 #elif defined GNULIB_POSIXCHECK
2212 # undef sqrtl
2213 # if HAVE_RAW_DECL_SQRTL
2214 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
2215 "use gnulib module sqrtl for portability");
2216 # endif
2217 #endif
2218
2219
2220 #if 0
2221 # if !1
2222 # undef tanf
2223 _GL_FUNCDECL_SYS (tanf, float, (float x));
2224 # endif
2225 _GL_CXXALIAS_SYS (tanf, float, (float x));
2226 _GL_CXXALIASWARN (tanf);
2227 #elif defined GNULIB_POSIXCHECK
2228 # undef tanf
2229 # if HAVE_RAW_DECL_TANF
2230 _GL_WARN_ON_USE (tanf, "tanf is unportable - "
2231 "use gnulib module tanf for portability");
2232 # endif
2233 #endif
2234
2235 #if 0
2236 # if !1 || !1
2237 # undef tanl
2238 _GL_FUNCDECL_SYS (tanl, long double, (long double x));
2239 # endif
2240 _GL_CXXALIAS_SYS (tanl, long double, (long double x));
2241 _GL_CXXALIASWARN (tanl);
2242 #elif defined GNULIB_POSIXCHECK
2243 # undef tanl
2244 # if HAVE_RAW_DECL_TANL
2245 _GL_WARN_ON_USE (tanl, "tanl is unportable - "
2246 "use gnulib module tanl for portability");
2247 # endif
2248 #endif
2249
2250
2251 #if 0
2252 # if !1
2253 # undef tanhf
2254 _GL_FUNCDECL_SYS (tanhf, float, (float x));
2255 # endif
2256 _GL_CXXALIAS_SYS (tanhf, float, (float x));
2257 _GL_CXXALIASWARN (tanhf);
2258 #elif defined GNULIB_POSIXCHECK
2259 # undef tanhf
2260 # if HAVE_RAW_DECL_TANHF
2261 _GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
2262 "use gnulib module tanhf for portability");
2263 # endif
2264 #endif
2265
2266
2267 #if 0
2268 # if 0
2269 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2270 # define truncf rpl_truncf
2271 # endif
2272 _GL_FUNCDECL_RPL (truncf, float, (float x));
2273 _GL_CXXALIAS_RPL (truncf, float, (float x));
2274 # else
2275 # if !1
2276 _GL_FUNCDECL_SYS (truncf, float, (float x));
2277 # endif
2278 _GL_CXXALIAS_SYS (truncf, float, (float x));
2279 # endif
2280 _GL_CXXALIASWARN (truncf);
2281 #elif defined GNULIB_POSIXCHECK
2282 # undef truncf
2283 # if HAVE_RAW_DECL_TRUNCF
2284 _GL_WARN_ON_USE (truncf, "truncf is unportable - "
2285 "use gnulib module truncf for portability");
2286 # endif
2287 #endif
2288
2289 #if 0
2290 # if 0
2291 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2292 # define trunc rpl_trunc
2293 # endif
2294 _GL_FUNCDECL_RPL (trunc, double, (double x));
2295 _GL_CXXALIAS_RPL (trunc, double, (double x));
2296 # else
2297 # if !1
2298 _GL_FUNCDECL_SYS (trunc, double, (double x));
2299 # endif
2300 _GL_CXXALIAS_SYS (trunc, double, (double x));
2301 # endif
2302 _GL_CXXALIASWARN (trunc);
2303 #elif defined GNULIB_POSIXCHECK
2304 # undef trunc
2305 # if HAVE_RAW_DECL_TRUNC
2306 _GL_WARN_ON_USE (trunc, "trunc is unportable - "
2307 "use gnulib module trunc for portability");
2308 # endif
2309 #endif
2310
2311 #if 0
2312 # if 0
2313 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2314 # undef truncl
2315 # define truncl rpl_truncl
2316 # endif
2317 _GL_FUNCDECL_RPL (truncl, long double, (long double x));
2318 _GL_CXXALIAS_RPL (truncl, long double, (long double x));
2319 # else
2320 # if !1
2321 _GL_FUNCDECL_SYS (truncl, long double, (long double x));
2322 # endif
2323 _GL_CXXALIAS_SYS (truncl, long double, (long double x));
2324 # endif
2325 _GL_CXXALIASWARN (truncl);
2326 #elif defined GNULIB_POSIXCHECK
2327 # undef truncl
2328 # if HAVE_RAW_DECL_TRUNCL
2329 _GL_WARN_ON_USE (truncl, "truncl is unportable - "
2330 "use gnulib module truncl for portability");
2331 # endif
2332 #endif
2333
2334
2335 /* Definitions of function-like macros come here, after the function
2336 declarations. */
2337
2338
2339 #if 0
2340 # if 0
2341 _GL_EXTERN_C int gl_isfinitef (float x);
2342 _GL_EXTERN_C int gl_isfinited (double x);
2343 _GL_EXTERN_C int gl_isfinitel (long double x);
2344 # undef isfinite
2345 # define isfinite(x) \
2346 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
2347 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
2348 gl_isfinitef (x))
2349 # endif
2350 # ifdef __cplusplus
2351 # ifdef isfinite
2352 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
2353 # undef isfinite
2354 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite)
2355 # endif
2356 # endif
2357 #elif defined GNULIB_POSIXCHECK
2358 # if defined isfinite
2359 _GL_WARN_REAL_FLOATING_DECL (isfinite);
2360 # undef isfinite
2361 # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
2362 # endif
2363 #endif
2364
2365
2366 #if 0
2367 # if 0
2368 _GL_EXTERN_C int gl_isinff (float x);
2369 _GL_EXTERN_C int gl_isinfd (double x);
2370 _GL_EXTERN_C int gl_isinfl (long double x);
2371 # undef isinf
2372 # define isinf(x) \
2373 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
2374 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
2375 gl_isinff (x))
2376 # endif
2377 # ifdef __cplusplus
2378 # ifdef isinf
2379 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
2380 # undef isinf
2381 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf)
2382 # endif
2383 # endif
2384 #elif defined GNULIB_POSIXCHECK
2385 # if defined isinf
2386 _GL_WARN_REAL_FLOATING_DECL (isinf);
2387 # undef isinf
2388 # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
2389 # endif
2390 #endif
2391
2392
2393 #if 1
2394 /* Test for NaN for 'float' numbers. */
2395 # if 1
2396 /* The original <math.h> included above provides a declaration of isnan macro
2397 or (older) isnanf function. */
2398 # if __GNUC__ >= 4
2399 /* GCC 4.0 and newer provides three built-ins for isnan. */
2400 # undef isnanf
2401 # define isnanf(x) __builtin_isnanf ((float)(x))
2402 # elif defined isnan
2403 # undef isnanf
2404 # define isnanf(x) isnan ((float)(x))
2405 # endif
2406 # else
2407 /* Test whether X is a NaN. */
2408 # undef isnanf
2409 # define isnanf rpl_isnanf
2410 _GL_EXTERN_C int isnanf (float x);
2411 # endif
2412 #endif
2413
2414 #if 1
2415 /* Test for NaN for 'double' numbers.
2416 This function is a gnulib extension, unlike isnan() which applied only
2417 to 'double' numbers earlier but now is a type-generic macro. */
2418 # if 1
2419 /* The original <math.h> included above provides a declaration of isnan
2420 macro. */
2421 # if __GNUC__ >= 4
2422 /* GCC 4.0 and newer provides three built-ins for isnan. */
2423 # undef isnand
2424 # define isnand(x) __builtin_isnan ((double)(x))
2425 # else
2426 # undef isnand
2427 # define isnand(x) isnan ((double)(x))
2428 # endif
2429 # else
2430 /* Test whether X is a NaN. */
2431 # undef isnand
2432 # define isnand rpl_isnand
2433 _GL_EXTERN_C int isnand (double x);
2434 # endif
2435 #endif
2436
2437 #if 1
2438 /* Test for NaN for 'long double' numbers. */
2439 # if 0
2440 /* The original <math.h> included above provides a declaration of isnan
2441 macro or (older) isnanl function. */
2442 # if __GNUC__ >= 4
2443 /* GCC 4.0 and newer provides three built-ins for isnan. */
2444 # undef isnanl
2445 # define isnanl(x) __builtin_isnanl ((long double)(x))
2446 # elif defined isnan
2447 # undef isnanl
2448 # define isnanl(x) isnan ((long double)(x))
2449 # endif
2450 # else
2451 /* Test whether X is a NaN. */
2452 # undef isnanl
2453 # define isnanl rpl_isnanl
2454 _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
2455 # endif
2456 #endif
2457
2458 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL! */
2459 #if 1
2460 # if 1
2461 /* We can't just use the isnanf macro (e.g.) as exposed by
2462 isnanf.h (e.g.) here, because those may end up being macros
2463 that recursively expand back to isnan. So use the gnulib
2464 replacements for them directly. */
2465 # if 1 && __GNUC__ >= 4
2466 # define gl_isnan_f(x) __builtin_isnanf ((float)(x))
2467 # else
2468 _GL_EXTERN_C int rpl_isnanf (float x);
2469 # define gl_isnan_f(x) rpl_isnanf (x)
2470 # endif
2471 # if 1 && __GNUC__ >= 4
2472 # define gl_isnan_d(x) __builtin_isnan ((double)(x))
2473 # else
2474 _GL_EXTERN_C int rpl_isnand (double x);
2475 # define gl_isnan_d(x) rpl_isnand (x)
2476 # endif
2477 # if 0 && __GNUC__ >= 4
2478 # define gl_isnan_l(x) __builtin_isnanl ((long double)(x))
2479 # else
2480 _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
2481 # define gl_isnan_l(x) rpl_isnanl (x)
2482 # endif
2483 # undef isnan
2484 # define isnan(x) \
2485 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
2486 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
2487 gl_isnan_f (x))
2488 # elif __GNUC__ >= 4
2489 # undef isnan
2490 # define isnan(x) \
2491 (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \
2492 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
2493 __builtin_isnanf ((float)(x)))
2494 # endif
2495 # ifdef __cplusplus
2496 # ifdef isnan
2497 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
2498 # undef isnan
2499 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan)
2500 # endif
2501 # else
2502 /* Ensure isnan is a macro. */
2503 # ifndef isnan
2504 # define isnan isnan
2505 # endif
2506 # endif
2507 #elif defined GNULIB_POSIXCHECK
2508 # if defined isnan
2509 _GL_WARN_REAL_FLOATING_DECL (isnan);
2510 # undef isnan
2511 # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
2512 # endif
2513 #endif
2514
2515
2516 #if 1
2517 # if 0
2518 # undef signbit
2519 /* GCC 4.0 and newer provides three built-ins for signbit. */
2520 # define signbit(x) \
2521 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
2522 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
2523 __builtin_signbitf (x))
2524 # endif
2525 # if 0
2526 # undef signbit
2527 _GL_EXTERN_C int gl_signbitf (float arg);
2528 _GL_EXTERN_C int gl_signbitd (double arg);
2529 _GL_EXTERN_C int gl_signbitl (long double arg);
2530 # if __GNUC__ >= 2 && !defined __STRICT_ANSI__
2531 # define _GL_NUM_UINT_WORDS(type) \
2532 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
2533 # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
2534 # define gl_signbitf_OPTIMIZED_MACRO
2535 # define gl_signbitf(arg) \
2536 ({ union { float _value; \
2537 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \
2538 } _m; \
2539 _m._value = (arg); \
2540 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \
2541 })
2542 # endif
2543 # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
2544 # define gl_signbitd_OPTIMIZED_MACRO
2545 # define gl_signbitd(arg) \
2546 ({ union { double _value; \
2547 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \
2548 } _m; \
2549 _m._value = (arg); \
2550 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \
2551 })
2552 # endif
2553 # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
2554 # define gl_signbitl_OPTIMIZED_MACRO
2555 # define gl_signbitl(arg) \
2556 ({ union { long double _value; \
2557 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
2558 } _m; \
2559 _m._value = (arg); \
2560 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \
2561 })
2562 # endif
2563 # endif
2564 # define signbit(x) \
2565 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
2566 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
2567 gl_signbitf (x))
2568 # endif
2569 # ifdef __cplusplus
2570 # ifdef signbit
2571 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
2572 # undef signbit
2573 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit)
2574 # endif
2575 # endif
2576 #elif defined GNULIB_POSIXCHECK
2577 # if defined signbit
2578 _GL_WARN_REAL_FLOATING_DECL (signbit);
2579 # undef signbit
2580 # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
2581 # endif
2582 #endif
2583
2584 _GL_INLINE_HEADER_END
2585
2586 #endif /* _GL_MATH_H */
2587 #endif /* _GL_MATH_H */
2588