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) \
312extern __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) \
316extern __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) \
332extern 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) \
337extern 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) \
359static inline int                                                   \
360_gl_cxx_ ## func ## f (float f)                                     \
361{                                                                   \
362  return func (f);                                                  \
363}                                                                   \
364static inline int                                                   \
365_gl_cxx_ ## func ## d (double d)                                    \
366{                                                                   \
367  return func (d);                                                  \
368}                                                                   \
369static 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) \
375inline int                                                          \
376func (float f)                                                      \
377{                                                                   \
378  return _gl_cxx_ ## func ## f (f);                                 \
379}                                                                   \
380inline int                                                          \
381func (double d)                                                     \
382{                                                                   \
383  return _gl_cxx_ ## func ## d (d);                                 \
384}                                                                   \
385inline int                                                          \
386func (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                                                 \
398rpl_ ## func ## f (float f)                                         \
399{                                                                   \
400  return func (f);                                                  \
401}                                                                   \
402_GL_MATH_INLINE int                                                 \
403rpl_ ## func ## d (double d)                                        \
404{                                                                   \
405  return func (d);                                                  \
406}                                                                   \
407_GL_MATH_INLINE int                                                 \
408rpl_ ## 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);
428static 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
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