xref: /netbsd-src/external/gpl3/gdb/lib/libgnulib/arch/powerpc/gnulib/import/math.h (revision ae87de8892f277bece3527c15b186ebcfa188227)
1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gdb,v 1.16 2023/07/31 17:09:59 christos Exp  */
3 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp  */
4 
5 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
6 /* A GNU-like <math.h>.
7 
8    Copyright (C) 2002-2003, 2007-2022 Free Software Foundation, Inc.
9 
10    This file is free software: you can redistribute it and/or modify
11    it under the terms of the GNU Lesser General Public License as
12    published by the Free Software Foundation; either version 2.1 of the
13    License, or (at your option) any later version.
14 
15    This file is distributed in the hope that it will be useful,
16    but WITHOUT ANY WARRANTY; without even the implied warranty of
17    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18    GNU Lesser General Public License for more details.
19 
20    You should have received a copy of the GNU Lesser General Public License
21    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
22 
23 #ifndef _GL_MATH_H
24 
25 #if __GNUC__ >= 3
26 #pragma GCC system_header
27 #endif
28 
29 
30 #if defined _GL_INCLUDING_MATH_H
31 /* Special invocation convention:
32    - On FreeBSD 12.2 we have a sequence of nested includes
33      <math.h> -> <stdlib.h> -> <sys/wait.h> -> <sys/types.h> -> <sys/select.h>
34        -> <signal.h> -> <pthread.h> -> <stdlib.h> -> <math.h>
35      In this situation, the functions are not yet declared, therefore we cannot
36      provide the C++ aliases.  */
37 
38 #include_next <math.h>
39 
40 #else
41 /* Normal invocation convention.  */
42 
43 /* The include_next requires a split double-inclusion guard.  */
44 #define _GL_INCLUDING_MATH_H
45 #include_next <math.h>
46 #undef _GL_INCLUDING_MATH_H
47 
48 #ifndef _GL_MATH_H
49 #define _GL_MATH_H
50 
51 /* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>.  */
52 #if defined __VMS && ! defined NAN
53 # include <fp.h>
54 #endif
55 
56 #ifndef _GL_INLINE_HEADER_BEGIN
57  #error "Please include config.h first."
58 #endif
59 _GL_INLINE_HEADER_BEGIN
60 #ifndef _GL_MATH_INLINE
61 # define _GL_MATH_INLINE _GL_INLINE
62 #endif
63 
64 /* The __attribute__ feature is available in gcc versions 2.5 and later.
65    The attribute __const__ was added in gcc 2.95.  */
66 #ifndef _GL_ATTRIBUTE_CONST
67 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__
68 #  define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
69 # else
70 #  define _GL_ATTRIBUTE_CONST /* empty */
71 # endif
72 #endif
73 
74 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
75 /* C++ compatible function declaration macros.
76    Copyright (C) 2010-2022 Free Software Foundation, Inc.
77 
78    This program is free software: you can redistribute it and/or modify it
79    under the terms of the GNU Lesser General Public License as published
80    by the Free Software Foundation; either version 2 of the License, or
81    (at your option) any later version.
82 
83    This program is distributed in the hope that it will be useful,
84    but WITHOUT ANY WARRANTY; without even the implied warranty of
85    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
86    Lesser General Public License for more details.
87 
88    You should have received a copy of the GNU Lesser General Public License
89    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
90 
91 #ifndef _GL_CXXDEFS_H
92 #define _GL_CXXDEFS_H
93 
94 /* Begin/end the GNULIB_NAMESPACE namespace.  */
95 #if defined __cplusplus && defined GNULIB_NAMESPACE
96 # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE {
97 # define _GL_END_NAMESPACE }
98 #else
99 # define _GL_BEGIN_NAMESPACE
100 # define _GL_END_NAMESPACE
101 #endif
102 
103 /* The three most frequent use cases of these macros are:
104 
105    * For providing a substitute for a function that is missing on some
106      platforms, but is declared and works fine on the platforms on which
107      it exists:
108 
109        #if @GNULIB_FOO@
110        # if !@HAVE_FOO@
111        _GL_FUNCDECL_SYS (foo, ...);
112        # endif
113        _GL_CXXALIAS_SYS (foo, ...);
114        _GL_CXXALIASWARN (foo);
115        #elif defined GNULIB_POSIXCHECK
116        ...
117        #endif
118 
119    * For providing a replacement for a function that exists on all platforms,
120      but is broken/insufficient and needs to be replaced on some platforms:
121 
122        #if @GNULIB_FOO@
123        # if @REPLACE_FOO@
124        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
125        #   undef foo
126        #   define foo rpl_foo
127        #  endif
128        _GL_FUNCDECL_RPL (foo, ...);
129        _GL_CXXALIAS_RPL (foo, ...);
130        # else
131        _GL_CXXALIAS_SYS (foo, ...);
132        # endif
133        _GL_CXXALIASWARN (foo);
134        #elif defined GNULIB_POSIXCHECK
135        ...
136        #endif
137 
138    * For providing a replacement for a function that exists on some platforms
139      but is broken/insufficient and needs to be replaced on some of them and
140      is additionally either missing or undeclared on some other platforms:
141 
142        #if @GNULIB_FOO@
143        # if @REPLACE_FOO@
144        #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
145        #   undef foo
146        #   define foo rpl_foo
147        #  endif
148        _GL_FUNCDECL_RPL (foo, ...);
149        _GL_CXXALIAS_RPL (foo, ...);
150        # else
151        #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
152        _GL_FUNCDECL_SYS (foo, ...);
153        #  endif
154        _GL_CXXALIAS_SYS (foo, ...);
155        # endif
156        _GL_CXXALIASWARN (foo);
157        #elif defined GNULIB_POSIXCHECK
158        ...
159        #endif
160 */
161 
162 /* _GL_EXTERN_C declaration;
163    performs the declaration with C linkage.  */
164 #if defined __cplusplus
165 # define _GL_EXTERN_C extern "C"
166 #else
167 # define _GL_EXTERN_C extern
168 #endif
169 
170 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
171    declares a replacement function, named rpl_func, with the given prototype,
172    consisting of return type, parameters, and attributes.
173    Example:
174      _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
175                                   _GL_ARG_NONNULL ((1)));
176  */
177 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
178   _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
179 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
180   _GL_EXTERN_C rettype rpl_func parameters_and_attributes
181 
182 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
183    declares the system function, named func, with the given prototype,
184    consisting of return type, parameters, and attributes.
185    Example:
186      _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
187                                   _GL_ARG_NONNULL ((1)));
188  */
189 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
190   _GL_EXTERN_C rettype func parameters_and_attributes
191 
192 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
193    declares a C++ alias called GNULIB_NAMESPACE::func
194    that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
195    Example:
196      _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
197 
198    Wrapping rpl_func in an object with an inline conversion operator
199    avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is
200    actually used in the program.  */
201 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
202   _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
203 #if defined __cplusplus && defined GNULIB_NAMESPACE
204 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
205     namespace GNULIB_NAMESPACE                                \
206     {                                                         \
207       static const struct _gl_ ## func ## _wrapper            \
208       {                                                       \
209         typedef rettype (*type) parameters;                   \
210                                                               \
211         inline operator type () const                         \
212         {                                                     \
213           return ::rpl_func;                                  \
214         }                                                     \
215       } func = {};                                            \
216     }                                                         \
217     _GL_EXTERN_C int _gl_cxxalias_dummy
218 #else
219 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
220     _GL_EXTERN_C int _gl_cxxalias_dummy
221 #endif
222 
223 /* _GL_CXXALIAS_MDA (func, rettype, parameters);
224    is to be used when func is a Microsoft deprecated alias, on native Windows.
225    It declares a C++ alias called GNULIB_NAMESPACE::func
226    that redirects to _func, if GNULIB_NAMESPACE is defined.
227    Example:
228      _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...));
229  */
230 #define _GL_CXXALIAS_MDA(func,rettype,parameters) \
231   _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters)
232 
233 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
234    is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
235    except that the C function rpl_func may have a slightly different
236    declaration.  A cast is used to silence the "invalid conversion" error
237    that would otherwise occur.  */
238 #if defined __cplusplus && defined GNULIB_NAMESPACE
239 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
240     namespace GNULIB_NAMESPACE                                     \
241     {                                                              \
242       static const struct _gl_ ## func ## _wrapper                 \
243       {                                                            \
244         typedef rettype (*type) parameters;                        \
245                                                                    \
246         inline operator type () const                              \
247         {                                                          \
248           return reinterpret_cast<type>(::rpl_func);               \
249         }                                                          \
250       } func = {};                                                 \
251     }                                                              \
252     _GL_EXTERN_C int _gl_cxxalias_dummy
253 #else
254 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
255     _GL_EXTERN_C int _gl_cxxalias_dummy
256 #endif
257 
258 /* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters);
259    is like  _GL_CXXALIAS_MDA (func, rettype, parameters);
260    except that the C function func may have a slightly different declaration.
261    A cast is used to silence the "invalid conversion" error that would
262    otherwise occur.  */
263 #define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \
264   _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters)
265 
266 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
267    declares a C++ alias called GNULIB_NAMESPACE::func
268    that redirects to the system provided function func, if GNULIB_NAMESPACE
269    is defined.
270    Example:
271      _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
272 
273    Wrapping func in an object with an inline conversion operator
274    avoids a reference to func unless GNULIB_NAMESPACE::func is
275    actually used in the program.  */
276 #if defined __cplusplus && defined GNULIB_NAMESPACE
277 # define _GL_CXXALIAS_SYS(func,rettype,parameters)            \
278     namespace GNULIB_NAMESPACE                                \
279     {                                                         \
280       static const struct _gl_ ## func ## _wrapper            \
281       {                                                       \
282         typedef rettype (*type) parameters;                   \
283                                                               \
284         inline operator type () const                         \
285         {                                                     \
286           return ::func;                                      \
287         }                                                     \
288       } func = {};                                            \
289     }                                                         \
290     _GL_EXTERN_C int _gl_cxxalias_dummy
291 #else
292 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
293     _GL_EXTERN_C int _gl_cxxalias_dummy
294 #endif
295 
296 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
297    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
298    except that the C function func may have a slightly different declaration.
299    A cast is used to silence the "invalid conversion" error that would
300    otherwise occur.  */
301 #if defined __cplusplus && defined GNULIB_NAMESPACE
302 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
303     namespace GNULIB_NAMESPACE                          \
304     {                                                   \
305       static const struct _gl_ ## func ## _wrapper      \
306       {                                                 \
307         typedef rettype (*type) parameters;             \
308                                                         \
309         inline operator type () const                   \
310         {                                               \
311           return reinterpret_cast<type>(::func);        \
312         }                                               \
313       } func = {};                                      \
314     }                                                   \
315     _GL_EXTERN_C int _gl_cxxalias_dummy
316 #else
317 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
318     _GL_EXTERN_C int _gl_cxxalias_dummy
319 #endif
320 
321 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
322    is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
323    except that the C function is picked among a set of overloaded functions,
324    namely the one with rettype2 and parameters2.  Two consecutive casts
325    are used to silence the "cannot find a match" and "invalid conversion"
326    errors that would otherwise occur.  */
327 #if defined __cplusplus && defined GNULIB_NAMESPACE
328   /* The outer cast must be a reinterpret_cast.
329      The inner cast: When the function is defined as a set of overloaded
330      functions, it works as a static_cast<>, choosing the designated variant.
331      When the function is defined as a single variant, it works as a
332      reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
333 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
334     namespace GNULIB_NAMESPACE                                                \
335     {                                                                         \
336       static const struct _gl_ ## func ## _wrapper                            \
337       {                                                                       \
338         typedef rettype (*type) parameters;                                   \
339                                                                               \
340         inline operator type () const                                         \
341         {                                                                     \
342           return reinterpret_cast<type>((rettype2 (*) parameters2)(::func));  \
343         }                                                                     \
344       } func = {};                                                            \
345     }                                                                         \
346     _GL_EXTERN_C int _gl_cxxalias_dummy
347 #else
348 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
349     _GL_EXTERN_C int _gl_cxxalias_dummy
350 #endif
351 
352 /* _GL_CXXALIASWARN (func);
353    causes a warning to be emitted when ::func is used but not when
354    GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
355    variants.  */
356 #if defined __cplusplus && defined GNULIB_NAMESPACE
357 # define _GL_CXXALIASWARN(func) \
358    _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
359 # define _GL_CXXALIASWARN_1(func,namespace) \
360    _GL_CXXALIASWARN_2 (func, namespace)
361 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
362    we enable the warning only when not optimizing.  */
363 # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__)
364 #  define _GL_CXXALIASWARN_2(func,namespace) \
365     _GL_WARN_ON_USE (func, \
366                      "The symbol ::" #func " refers to the system function. " \
367                      "Use " #namespace "::" #func " instead.")
368 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
369 #  define _GL_CXXALIASWARN_2(func,namespace) \
370      extern __typeof__ (func) func
371 # else
372 #  define _GL_CXXALIASWARN_2(func,namespace) \
373      _GL_EXTERN_C int _gl_cxxalias_dummy
374 # endif
375 #else
376 # define _GL_CXXALIASWARN(func) \
377     _GL_EXTERN_C int _gl_cxxalias_dummy
378 #endif
379 
380 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
381    causes a warning to be emitted when the given overloaded variant of ::func
382    is used but not when GNULIB_NAMESPACE::func is used.  */
383 #if defined __cplusplus && defined GNULIB_NAMESPACE
384 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
385    _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
386                         GNULIB_NAMESPACE)
387 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
388    _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
389 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
390    we enable the warning only when not optimizing.  */
391 # if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__)
392 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
393     _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \
394                          "The symbol ::" #func " refers to the system function. " \
395                          "Use " #namespace "::" #func " instead.")
396 # else
397 #  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
398      _GL_EXTERN_C int _gl_cxxalias_dummy
399 # endif
400 #else
401 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
402     _GL_EXTERN_C int _gl_cxxalias_dummy
403 #endif
404 
405 #endif /* _GL_CXXDEFS_H */
406 
407 /* The definition of _GL_ARG_NONNULL is copied here.  */
408 /* A C macro for declaring that specific arguments must not be NULL.
409    Copyright (C) 2009-2022 Free Software Foundation, Inc.
410 
411    This program is free software: you can redistribute it and/or modify it
412    under the terms of the GNU Lesser General Public License as published
413    by the Free Software Foundation; either version 2 of the License, or
414    (at your option) any later version.
415 
416    This program is distributed in the hope that it will be useful,
417    but WITHOUT ANY WARRANTY; without even the implied warranty of
418    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
419    Lesser General Public License for more details.
420 
421    You should have received a copy of the GNU Lesser General Public License
422    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
423 
424 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
425    that the values passed as arguments n, ..., m must be non-NULL pointers.
426    n = 1 stands for the first argument, n = 2 for the second argument etc.  */
427 #ifndef _GL_ARG_NONNULL
428 # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__
429 #  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
430 # else
431 #  define _GL_ARG_NONNULL(params)
432 # endif
433 #endif
434 
435 /* The definition of _GL_WARN_ON_USE is copied here.  */
436 /* A C macro for emitting warnings if a function is used.
437    Copyright (C) 2010-2022 Free Software Foundation, Inc.
438 
439    This program is free software: you can redistribute it and/or modify it
440    under the terms of the GNU Lesser General Public License as published
441    by the Free Software Foundation; either version 2 of the License, or
442    (at your option) any later version.
443 
444    This program is distributed in the hope that it will be useful,
445    but WITHOUT ANY WARRANTY; without even the implied warranty of
446    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
447    Lesser General Public License for more details.
448 
449    You should have received a copy of the GNU Lesser General Public License
450    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
451 
452 /* _GL_WARN_ON_USE (function, "literal string") issues a declaration
453    for FUNCTION which will then trigger a compiler warning containing
454    the text of "literal string" anywhere that function is called, if
455    supported by the compiler.  If the compiler does not support this
456    feature, the macro expands to an unused extern declaration.
457 
458    _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the
459    attribute used in _GL_WARN_ON_USE.  If the compiler does not support
460    this feature, it expands to empty.
461 
462    These macros are useful for marking a function as a potential
463    portability trap, with the intent that "literal string" include
464    instructions on the replacement function that should be used
465    instead.
466    _GL_WARN_ON_USE is for functions with 'extern' linkage.
467    _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline'
468    linkage.
469 
470    However, one of the reasons that a function is a portability trap is
471    if it has the wrong signature.  Declaring FUNCTION with a different
472    signature in C is a compilation error, so this macro must use the
473    same type as any existing declaration so that programs that avoid
474    the problematic FUNCTION do not fail to compile merely because they
475    included a header that poisoned the function.  But this implies that
476    _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already
477    have a declaration.  Use of this macro implies that there must not
478    be any other macro hiding the declaration of FUNCTION; but
479    undefining FUNCTION first is part of the poisoning process anyway
480    (although for symbols that are provided only via a macro, the result
481    is a compilation error rather than a warning containing
482    "literal string").  Also note that in C++, it is only safe to use if
483    FUNCTION has no overloads.
484 
485    For an example, it is possible to poison 'getline' by:
486    - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
487      [getline]) in configure.ac, which potentially defines
488      HAVE_RAW_DECL_GETLINE
489    - adding this code to a header that wraps the system <stdio.h>:
490      #undef getline
491      #if HAVE_RAW_DECL_GETLINE
492      _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
493        "not universally present; use the gnulib module getline");
494      #endif
495 
496    It is not possible to directly poison global variables.  But it is
497    possible to write a wrapper accessor function, and poison that
498    (less common usage, like &environ, will cause a compilation error
499    rather than issue the nice warning, but the end result of informing
500    the developer about their portability problem is still achieved):
501      #if HAVE_RAW_DECL_ENVIRON
502      static char ***
503      rpl_environ (void) { return &environ; }
504      _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
505      # undef environ
506      # define environ (*rpl_environ ())
507      #endif
508    or better (avoiding contradictory use of 'static' and 'extern'):
509      #if HAVE_RAW_DECL_ENVIRON
510      static char ***
511      _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared")
512      rpl_environ (void) { return &environ; }
513      # undef environ
514      # define environ (*rpl_environ ())
515      #endif
516    */
517 #ifndef _GL_WARN_ON_USE
518 
519 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
520 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
521 #  define _GL_WARN_ON_USE(function, message) \
522 _GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message)))
523 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
524   __attribute__ ((__warning__ (message)))
525 # elif __clang_major__ >= 4
526 /* Another compiler attribute is available in clang.  */
527 #  define _GL_WARN_ON_USE(function, message) \
528 _GL_WARN_EXTERN_C __typeof__ (function) function \
529   __attribute__ ((__diagnose_if__ (1, message, "warning")))
530 #  define _GL_WARN_ON_USE_ATTRIBUTE(message) \
531   __attribute__ ((__diagnose_if__ (1, message, "warning")))
532 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
533 /* Verify the existence of the function.  */
534 #  define _GL_WARN_ON_USE(function, message) \
535 _GL_WARN_EXTERN_C __typeof__ (function) function
536 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
537 # else /* Unsupported.  */
538 #  define _GL_WARN_ON_USE(function, message) \
539 _GL_WARN_EXTERN_C int _gl_warn_on_use
540 #  define _GL_WARN_ON_USE_ATTRIBUTE(message)
541 # endif
542 #endif
543 
544 /* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message")
545    is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the
546    function is declared with the given prototype, consisting of return type,
547    parameters, and attributes.
548    This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
549    not work in this case.  */
550 #ifndef _GL_WARN_ON_USE_CXX
551 # if !defined __cplusplus
552 #  define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
553      _GL_WARN_ON_USE (function, msg)
554 # else
555 #  if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
556 /* A compiler attribute is available in gcc versions 4.3.0 and later.  */
557 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
558 extern rettype_gcc function parameters_and_attributes \
559   __attribute__ ((__warning__ (msg)))
560 #  elif __clang_major__ >= 4
561 /* Another compiler attribute is available in clang.  */
562 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
563 extern rettype_clang function parameters_and_attributes \
564   __attribute__ ((__diagnose_if__ (1, msg, "warning")))
565 #  elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
566 /* Verify the existence of the function.  */
567 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
568 extern rettype_gcc function parameters_and_attributes
569 #  else /* Unsupported.  */
570 #   define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \
571 _GL_WARN_EXTERN_C int _gl_warn_on_use
572 #  endif
573 # endif
574 #endif
575 
576 /* _GL_WARN_EXTERN_C declaration;
577    performs the declaration with C linkage.  */
578 #ifndef _GL_WARN_EXTERN_C
579 # if defined __cplusplus
580 #  define _GL_WARN_EXTERN_C extern "C"
581 # else
582 #  define _GL_WARN_EXTERN_C extern
583 # endif
584 #endif
585 
586 #ifdef __cplusplus
587 /* Helper macros to define type-generic function FUNC as overloaded functions,
588    rather than as macros like in C.  POSIX declares these with an argument of
589    real-floating (that is, one of float, double, or long double).  */
590 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \
591 static inline int                                                   \
592 _gl_cxx_ ## func ## f (float f)                                     \
593 {                                                                   \
594   return func (f);                                                  \
595 }                                                                   \
596 static inline int                                                   \
597 _gl_cxx_ ## func ## d (double d)                                    \
598 {                                                                   \
599   return func (d);                                                  \
600 }                                                                   \
601 static inline int                                                   \
602 _gl_cxx_ ## func ## l (long double l)                               \
603 {                                                                   \
604   return func (l);                                                  \
605 }
606 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func,rpl_func,rettype) \
607 _GL_BEGIN_NAMESPACE                                                 \
608 inline rettype                                                      \
609 rpl_func (float f)                                                  \
610 {                                                                   \
611   return _gl_cxx_ ## func ## f (f);                                 \
612 }                                                                   \
613 inline rettype                                                      \
614 rpl_func (double d)                                                 \
615 {                                                                   \
616   return _gl_cxx_ ## func ## d (d);                                 \
617 }                                                                   \
618 inline rettype                                                      \
619 rpl_func (long double l)                                            \
620 {                                                                   \
621   return _gl_cxx_ ## func ## l (l);                                 \
622 }                                                                   \
623 _GL_END_NAMESPACE
624 #endif
625 
626 /* Helper macros to define a portability warning for the
627    classification macro FUNC called with VALUE.  POSIX declares the
628    classification macros with an argument of real-floating (that is,
629    one of float, double, or long double).  */
630 #define _GL_WARN_REAL_FLOATING_DECL(func) \
631 _GL_MATH_INLINE int                                                       \
632 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - "                      \
633                            "use gnulib module " #func " for portability") \
634 rpl_ ## func ## f (float f)                                               \
635 {                                                                         \
636   return func (f);                                                        \
637 }                                                                         \
638 _GL_MATH_INLINE int                                                       \
639 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - "                      \
640                            "use gnulib module " #func " for portability") \
641 rpl_ ## func ## d (double d)                                              \
642 {                                                                         \
643   return func (d);                                                        \
644 }                                                                         \
645 _GL_MATH_INLINE int                                                       \
646 _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - "                      \
647                            "use gnulib module " #func " for portability") \
648 rpl_ ## func ## l (long double l)                                         \
649 {                                                                         \
650   return func (l);                                                        \
651 }
652 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
653   (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value)     \
654    : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value)  \
655    : rpl_ ## func ## l (value))
656 
657 
658 #if 0
659 /* Pull in a function that fixes the 'int' to 'long double' conversion
660    of glibc 2.7.  */
661 _GL_EXTERN_C void _Qp_itoq (long double *, int);
662 static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
663 #endif
664 
665 
666 /* POSIX allows platforms that don't support NAN.  But all major
667    machines in the past 15 years have supported something close to
668    IEEE NaN, so we define this unconditionally.  We also must define
669    it on platforms like Solaris 10, where NAN is present but defined
670    as a function pointer rather than a floating point constant.  */
671 #if !defined NAN || 0
672 # if !GNULIB_defined_NAN
673 #  undef NAN
674   /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
675      choke on the expression 0.0 / 0.0.  */
676 #  if defined __DECC || defined _MSC_VER
677 _GL_MATH_INLINE float
_NaN()678 _NaN ()
679 {
680   static float zero = 0.0f;
681   return zero / zero;
682 }
683 #   define NAN (_NaN())
684 #  else
685 #   define NAN (0.0f / 0.0f)
686 #  endif
687 #  define GNULIB_defined_NAN 1
688 # endif
689 #endif
690 
691 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
692    than a floating point constant.  */
693 #if 0
694 # undef HUGE_VALF
695 # define HUGE_VALF (1.0f / 0.0f)
696 # undef HUGE_VAL
697 # define HUGE_VAL (1.0 / 0.0)
698 # undef HUGE_VALL
699 # define HUGE_VALL (1.0L / 0.0L)
700 #endif
701 
702 /* HUGE_VALF is a 'float' Infinity.  */
703 #ifndef HUGE_VALF
704 # if defined _MSC_VER
705 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f.  */
706 #  define HUGE_VALF (1e25f * 1e25f)
707 # else
708 #  define HUGE_VALF (1.0f / 0.0f)
709 # endif
710 #endif
711 
712 /* HUGE_VAL is a 'double' Infinity.  */
713 #ifndef HUGE_VAL
714 # if defined _MSC_VER
715 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0.  */
716 #  define HUGE_VAL (1e250 * 1e250)
717 # else
718 #  define HUGE_VAL (1.0 / 0.0)
719 # endif
720 #endif
721 
722 /* HUGE_VALL is a 'long double' Infinity.  */
723 #ifndef HUGE_VALL
724 # if defined _MSC_VER
725 /* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L.  */
726 #  define HUGE_VALL (1e250L * 1e250L)
727 # else
728 #  define HUGE_VALL (1.0L / 0.0L)
729 # endif
730 #endif
731 
732 
733 #if defined FP_ILOGB0 && defined FP_ILOGBNAN
734  /* Ensure FP_ILOGB0 and FP_ILOGBNAN are correct.  */
735 # if defined __HAIKU__
736   /* Haiku: match what ilogb() does */
737 #  undef FP_ILOGB0
738 #  undef FP_ILOGBNAN
739 #  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
740 #  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
741 # endif
742 #else
743  /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined.  */
744 # if defined __NetBSD__ || defined __sgi
745   /* NetBSD, IRIX 6.5: match what ilogb() does */
746 #  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
747 #  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
748 # elif defined _AIX
749   /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */
750 #  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
751 #  define FP_ILOGBNAN 2147483647 /* INT_MAX */
752 # elif defined __sun
753   /* Solaris 9: match what ilogb() does */
754 #  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
755 #  define FP_ILOGBNAN 2147483647 /* INT_MAX */
756 # else
757   /* Gnulib defined values.  */
758 #  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
759 #  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
760 # endif
761 #endif
762 
763 
764 #if 0
765 # if 0
766 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
767 #   undef acosf
768 #   define acosf rpl_acosf
769 #  endif
770 _GL_FUNCDECL_RPL (acosf, float, (float x));
771 _GL_CXXALIAS_RPL (acosf, float, (float x));
772 # else
773 #  if !1
774 #   undef acosf
775 _GL_FUNCDECL_SYS (acosf, float, (float x));
776 #  endif
777 _GL_CXXALIAS_SYS (acosf, float, (float x));
778 # endif
779 _GL_CXXALIASWARN (acosf);
780 #elif defined GNULIB_POSIXCHECK
781 # undef acosf
782 # if HAVE_RAW_DECL_ACOSF
783 _GL_WARN_ON_USE (acosf, "acosf is unportable - "
784                  "use gnulib module acosf for portability");
785 # endif
786 #endif
787 
788 #if 0
789 # if !1 || !1
790 #  undef acosl
791 _GL_FUNCDECL_SYS (acosl, long double, (long double x));
792 # endif
793 _GL_CXXALIAS_SYS (acosl, long double, (long double x));
794 # if __GLIBC__ >= 2
795 _GL_CXXALIASWARN (acosl);
796 # endif
797 #elif defined GNULIB_POSIXCHECK
798 # undef acosl
799 # if HAVE_RAW_DECL_ACOSL
800 _GL_WARN_ON_USE (acosl, "acosl is unportable - "
801                  "use gnulib module acosl for portability");
802 # endif
803 #endif
804 
805 
806 #if 0
807 # if 0
808 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
809 #   undef asinf
810 #   define asinf rpl_asinf
811 #  endif
812 _GL_FUNCDECL_RPL (asinf, float, (float x));
813 _GL_CXXALIAS_RPL (asinf, float, (float x));
814 # else
815 #  if !1
816 #   undef asinf
817 _GL_FUNCDECL_SYS (asinf, float, (float x));
818 #  endif
819 _GL_CXXALIAS_SYS (asinf, float, (float x));
820 # endif
821 _GL_CXXALIASWARN (asinf);
822 #elif defined GNULIB_POSIXCHECK
823 # undef asinf
824 # if HAVE_RAW_DECL_ASINF
825 _GL_WARN_ON_USE (asinf, "asinf is unportable - "
826                  "use gnulib module asinf for portability");
827 # endif
828 #endif
829 
830 #if 0
831 # if !1 || !1
832 #  undef asinl
833 _GL_FUNCDECL_SYS (asinl, long double, (long double x));
834 # endif
835 _GL_CXXALIAS_SYS (asinl, long double, (long double x));
836 # if __GLIBC__ >= 2
837 _GL_CXXALIASWARN (asinl);
838 # endif
839 #elif defined GNULIB_POSIXCHECK
840 # undef asinl
841 # if HAVE_RAW_DECL_ASINL
842 _GL_WARN_ON_USE (asinl, "asinl is unportable - "
843                  "use gnulib module asinl for portability");
844 # endif
845 #endif
846 
847 
848 #if 0
849 # if 0
850 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
851 #   undef atanf
852 #   define atanf rpl_atanf
853 #  endif
854 _GL_FUNCDECL_RPL (atanf, float, (float x));
855 _GL_CXXALIAS_RPL (atanf, float, (float x));
856 # else
857 #  if !1
858 #   undef atanf
859 _GL_FUNCDECL_SYS (atanf, float, (float x));
860 #  endif
861 _GL_CXXALIAS_SYS (atanf, float, (float x));
862 # endif
863 _GL_CXXALIASWARN (atanf);
864 #elif defined GNULIB_POSIXCHECK
865 # undef atanf
866 # if HAVE_RAW_DECL_ATANF
867 _GL_WARN_ON_USE (atanf, "atanf is unportable - "
868                  "use gnulib module atanf for portability");
869 # endif
870 #endif
871 
872 #if 0
873 # if !1 || !1
874 #  undef atanl
875 _GL_FUNCDECL_SYS (atanl, long double, (long double x));
876 # endif
877 _GL_CXXALIAS_SYS (atanl, long double, (long double x));
878 # if __GLIBC__ >= 2
879 _GL_CXXALIASWARN (atanl);
880 # endif
881 #elif defined GNULIB_POSIXCHECK
882 # undef atanl
883 # if HAVE_RAW_DECL_ATANL
884 _GL_WARN_ON_USE (atanl, "atanl is unportable - "
885                  "use gnulib module atanl for portability");
886 # endif
887 #endif
888 
889 
890 #if 0
891 # if 0
892 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
893 #   undef atan2f
894 #   define atan2f rpl_atan2f
895 #  endif
896 _GL_FUNCDECL_RPL (atan2f, float, (float y, float x));
897 _GL_CXXALIAS_RPL (atan2f, float, (float y, float x));
898 # else
899 #  if !1
900 #   undef atan2f
901 _GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
902 #  endif
903 _GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
904 # endif
905 _GL_CXXALIASWARN (atan2f);
906 #elif defined GNULIB_POSIXCHECK
907 # undef atan2f
908 # if HAVE_RAW_DECL_ATAN2F
909 _GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
910                  "use gnulib module atan2f for portability");
911 # endif
912 #endif
913 
914 
915 #if 0
916 # if 0
917 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
918 #   undef cbrtf
919 #   define cbrtf rpl_cbrtf
920 #  endif
921 _GL_FUNCDECL_RPL (cbrtf, float, (float x));
922 _GL_CXXALIAS_RPL (cbrtf, float, (float x));
923 # else
924 #  if !1
925 _GL_FUNCDECL_SYS (cbrtf, float, (float x));
926 #  endif
927 _GL_CXXALIAS_SYS (cbrtf, float, (float x));
928 # endif
929 _GL_CXXALIASWARN (cbrtf);
930 #elif defined GNULIB_POSIXCHECK
931 # undef cbrtf
932 # if HAVE_RAW_DECL_CBRTF
933 _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
934                  "use gnulib module cbrtf for portability");
935 # endif
936 #endif
937 
938 #if 0
939 # if !1
940 _GL_FUNCDECL_SYS (cbrt, double, (double x));
941 # endif
942 _GL_CXXALIAS_SYS (cbrt, double, (double x));
943 # if __GLIBC__ >= 2
944 _GL_CXXALIASWARN1 (cbrt, double, (double x));
945 # endif
946 #elif defined GNULIB_POSIXCHECK
947 # undef cbrt
948 # if HAVE_RAW_DECL_CBRT
949 _GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
950                  "use gnulib module cbrt for portability");
951 # endif
952 #endif
953 
954 #if 0
955 # if 0
956 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
957 #   undef cbrtl
958 #   define cbrtl rpl_cbrtl
959 #  endif
960 _GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
961 _GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
962 # else
963 #  if !1
964 _GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
965 #  endif
966 _GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
967 # endif
968 _GL_CXXALIASWARN (cbrtl);
969 #elif defined GNULIB_POSIXCHECK
970 # undef cbrtl
971 # if HAVE_RAW_DECL_CBRTL
972 _GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
973                  "use gnulib module cbrtl for portability");
974 # endif
975 #endif
976 
977 
978 #if 0
979 # if 0
980 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
981 #   undef ceilf
982 #   define ceilf rpl_ceilf
983 #  endif
984 _GL_FUNCDECL_RPL (ceilf, float, (float x));
985 _GL_CXXALIAS_RPL (ceilf, float, (float x));
986 # else
987 #  if !1
988 #   undef ceilf
989 _GL_FUNCDECL_SYS (ceilf, float, (float x));
990 #  endif
991 _GL_CXXALIAS_SYS (ceilf, float, (float x));
992 # endif
993 _GL_CXXALIASWARN (ceilf);
994 #elif defined GNULIB_POSIXCHECK
995 # undef ceilf
996 # if HAVE_RAW_DECL_CEILF
997 _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
998                  "use gnulib module ceilf for portability");
999 # endif
1000 #endif
1001 
1002 #if 0
1003 # if 0
1004 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1005 #   undef ceil
1006 #   define ceil rpl_ceil
1007 #  endif
1008 _GL_FUNCDECL_RPL (ceil, double, (double x));
1009 _GL_CXXALIAS_RPL (ceil, double, (double x));
1010 # else
1011 _GL_CXXALIAS_SYS (ceil, double, (double x));
1012 # endif
1013 # if __GLIBC__ >= 2
1014 _GL_CXXALIASWARN1 (ceil, double, (double x));
1015 # endif
1016 #endif
1017 
1018 #if 0
1019 # if 0
1020 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1021 #   undef ceill
1022 #   define ceill rpl_ceill
1023 #  endif
1024 _GL_FUNCDECL_RPL (ceill, long double, (long double x));
1025 _GL_CXXALIAS_RPL (ceill, long double, (long double x));
1026 # else
1027 #  if !1
1028 #   undef ceill
1029 _GL_FUNCDECL_SYS (ceill, long double, (long double x));
1030 #  endif
1031 _GL_CXXALIAS_SYS (ceill, long double, (long double x));
1032 # endif
1033 # if __GLIBC__ >= 2
1034 _GL_CXXALIASWARN (ceill);
1035 # endif
1036 #elif defined GNULIB_POSIXCHECK
1037 # undef ceill
1038 # if HAVE_RAW_DECL_CEILL
1039 _GL_WARN_ON_USE (ceill, "ceill is unportable - "
1040                  "use gnulib module ceill for portability");
1041 # endif
1042 #endif
1043 
1044 
1045 #if 0
1046 # if !1
1047 #  undef copysignf
1048 _GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
1049 # endif
1050 _GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
1051 _GL_CXXALIASWARN (copysignf);
1052 #elif defined GNULIB_POSIXCHECK
1053 # undef copysignf
1054 # if HAVE_RAW_DECL_COPYSIGNF
1055 _GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
1056                  "use gnulib module copysignf for portability");
1057 # endif
1058 #endif
1059 
1060 #if 0
1061 # if !1
1062 _GL_FUNCDECL_SYS (copysign, double, (double x, double y));
1063 # endif
1064 _GL_CXXALIAS_SYS (copysign, double, (double x, double y));
1065 # if __GLIBC__ >= 2
1066 _GL_CXXALIASWARN1 (copysign, double, (double x, double y));
1067 # endif
1068 #elif defined GNULIB_POSIXCHECK
1069 # undef copysign
1070 # if HAVE_RAW_DECL_COPYSIGN
1071 _GL_WARN_ON_USE (copysign, "copysign is unportable - "
1072                  "use gnulib module copysign for portability");
1073 # endif
1074 #endif
1075 
1076 #if 0
1077 # if !1
1078 _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
1079 # endif
1080 _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
1081 _GL_CXXALIASWARN (copysignl);
1082 #elif defined GNULIB_POSIXCHECK
1083 # undef copysignl
1084 # if HAVE_RAW_DECL_COPYSIGNL
1085 _GL_WARN_ON_USE (copysign, "copysignl is unportable - "
1086                  "use gnulib module copysignl for portability");
1087 # endif
1088 #endif
1089 
1090 
1091 #if 0
1092 # if 0
1093 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1094 #   undef cosf
1095 #   define cosf rpl_cosf
1096 #  endif
1097 _GL_FUNCDECL_RPL (cosf, float, (float x));
1098 _GL_CXXALIAS_RPL (cosf, float, (float x));
1099 # else
1100 #  if !1
1101 #   undef cosf
1102 _GL_FUNCDECL_SYS (cosf, float, (float x));
1103 #  endif
1104 _GL_CXXALIAS_SYS (cosf, float, (float x));
1105 # endif
1106 _GL_CXXALIASWARN (cosf);
1107 #elif defined GNULIB_POSIXCHECK
1108 # undef cosf
1109 # if HAVE_RAW_DECL_COSF
1110 _GL_WARN_ON_USE (cosf, "cosf is unportable - "
1111                  "use gnulib module cosf for portability");
1112 # endif
1113 #endif
1114 
1115 #if 0
1116 # if !1 || !1
1117 #  undef cosl
1118 _GL_FUNCDECL_SYS (cosl, long double, (long double x));
1119 # endif
1120 _GL_CXXALIAS_SYS (cosl, long double, (long double x));
1121 # if __GLIBC__ >= 2
1122 _GL_CXXALIASWARN (cosl);
1123 # endif
1124 #elif defined GNULIB_POSIXCHECK
1125 # undef cosl
1126 # if HAVE_RAW_DECL_COSL
1127 _GL_WARN_ON_USE (cosl, "cosl is unportable - "
1128                  "use gnulib module cosl for portability");
1129 # endif
1130 #endif
1131 
1132 
1133 #if 0
1134 # if 0
1135 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1136 #   undef coshf
1137 #   define coshf rpl_coshf
1138 #  endif
1139 _GL_FUNCDECL_RPL (coshf, float, (float x));
1140 _GL_CXXALIAS_RPL (coshf, float, (float x));
1141 # else
1142 #  if !1
1143 #   undef coshf
1144 _GL_FUNCDECL_SYS (coshf, float, (float x));
1145 #  endif
1146 _GL_CXXALIAS_SYS (coshf, float, (float x));
1147 # endif
1148 _GL_CXXALIASWARN (coshf);
1149 #elif defined GNULIB_POSIXCHECK
1150 # undef coshf
1151 # if HAVE_RAW_DECL_COSHF
1152 _GL_WARN_ON_USE (coshf, "coshf is unportable - "
1153                  "use gnulib module coshf for portability");
1154 # endif
1155 #endif
1156 
1157 
1158 #if 0
1159 # if 0
1160 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1161 #   undef expf
1162 #   define expf rpl_expf
1163 #  endif
1164 _GL_FUNCDECL_RPL (expf, float, (float x));
1165 _GL_CXXALIAS_RPL (expf, float, (float x));
1166 # else
1167 #  if !1
1168 #   undef expf
1169 _GL_FUNCDECL_SYS (expf, float, (float x));
1170 #  endif
1171 _GL_CXXALIAS_SYS (expf, float, (float x));
1172 # endif
1173 _GL_CXXALIASWARN (expf);
1174 #elif defined GNULIB_POSIXCHECK
1175 # undef expf
1176 # if HAVE_RAW_DECL_EXPF
1177 _GL_WARN_ON_USE (expf, "expf is unportable - "
1178                  "use gnulib module expf for portability");
1179 # endif
1180 #endif
1181 
1182 #if 0
1183 # if 0
1184 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1185 #   undef expl
1186 #   define expl rpl_expl
1187 #  endif
1188 _GL_FUNCDECL_RPL (expl, long double, (long double x));
1189 _GL_CXXALIAS_RPL (expl, long double, (long double x));
1190 # else
1191 #  if !1 || !1
1192 #   undef expl
1193 _GL_FUNCDECL_SYS (expl, long double, (long double x));
1194 #  endif
1195 _GL_CXXALIAS_SYS (expl, long double, (long double x));
1196 # endif
1197 # if __GLIBC__ >= 2
1198 _GL_CXXALIASWARN (expl);
1199 # endif
1200 #elif defined GNULIB_POSIXCHECK
1201 # undef expl
1202 # if HAVE_RAW_DECL_EXPL
1203 _GL_WARN_ON_USE (expl, "expl is unportable - "
1204                  "use gnulib module expl for portability");
1205 # endif
1206 #endif
1207 
1208 
1209 #if 0
1210 # if !1
1211 _GL_FUNCDECL_SYS (exp2f, float, (float x));
1212 # endif
1213 _GL_CXXALIAS_SYS (exp2f, float, (float x));
1214 _GL_CXXALIASWARN (exp2f);
1215 #elif defined GNULIB_POSIXCHECK
1216 # undef exp2f
1217 # if HAVE_RAW_DECL_EXP2F
1218 _GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
1219                  "use gnulib module exp2f for portability");
1220 # endif
1221 #endif
1222 
1223 #if 0
1224 # if 0
1225 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1226 #   undef exp2
1227 #   define exp2 rpl_exp2
1228 #  endif
1229 _GL_FUNCDECL_RPL (exp2, double, (double x));
1230 _GL_CXXALIAS_RPL (exp2, double, (double x));
1231 # else
1232 #  if !1
1233 _GL_FUNCDECL_SYS (exp2, double, (double x));
1234 #  endif
1235 _GL_CXXALIAS_SYS (exp2, double, (double x));
1236 # endif
1237 # if __GLIBC__ >= 2
1238 _GL_CXXALIASWARN1 (exp2, double, (double x));
1239 # endif
1240 #elif defined GNULIB_POSIXCHECK
1241 # undef exp2
1242 # if HAVE_RAW_DECL_EXP2
1243 _GL_WARN_ON_USE (exp2, "exp2 is unportable - "
1244                  "use gnulib module exp2 for portability");
1245 # endif
1246 #endif
1247 
1248 #if 0
1249 # if 0
1250 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1251 #   undef exp2l
1252 #   define exp2l rpl_exp2l
1253 #  endif
1254 _GL_FUNCDECL_RPL (exp2l, long double, (long double x));
1255 _GL_CXXALIAS_RPL (exp2l, long double, (long double x));
1256 # else
1257 #  if !1
1258 #   undef exp2l
1259 _GL_FUNCDECL_SYS (exp2l, long double, (long double x));
1260 #  endif
1261 _GL_CXXALIAS_SYS (exp2l, long double, (long double x));
1262 # endif
1263 _GL_CXXALIASWARN (exp2l);
1264 #elif defined GNULIB_POSIXCHECK
1265 # undef exp2l
1266 # if HAVE_RAW_DECL_EXP2L
1267 _GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
1268                  "use gnulib module exp2l for portability");
1269 # endif
1270 #endif
1271 
1272 
1273 #if 0
1274 # if 0
1275 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1276 #   undef expm1f
1277 #   define expm1f rpl_expm1f
1278 #  endif
1279 _GL_FUNCDECL_RPL (expm1f, float, (float x));
1280 _GL_CXXALIAS_RPL (expm1f, float, (float x));
1281 # else
1282 #  if !1
1283 _GL_FUNCDECL_SYS (expm1f, float, (float x));
1284 #  endif
1285 _GL_CXXALIAS_SYS (expm1f, float, (float x));
1286 # endif
1287 _GL_CXXALIASWARN (expm1f);
1288 #elif defined GNULIB_POSIXCHECK
1289 # undef expm1f
1290 # if HAVE_RAW_DECL_EXPM1F
1291 _GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
1292                  "use gnulib module expm1f for portability");
1293 # endif
1294 #endif
1295 
1296 #if 0
1297 # if 0
1298 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1299 #   undef expm1
1300 #   define expm1 rpl_expm1
1301 #  endif
1302 _GL_FUNCDECL_RPL (expm1, double, (double x));
1303 _GL_CXXALIAS_RPL (expm1, double, (double x));
1304 # else
1305 #  if !1
1306 _GL_FUNCDECL_SYS (expm1, double, (double x));
1307 #  endif
1308 _GL_CXXALIAS_SYS (expm1, double, (double x));
1309 # endif
1310 # if __GLIBC__ >= 2
1311 _GL_CXXALIASWARN1 (expm1, double, (double x));
1312 # endif
1313 #elif defined GNULIB_POSIXCHECK
1314 # undef expm1
1315 # if HAVE_RAW_DECL_EXPM1
1316 _GL_WARN_ON_USE (expm1, "expm1 is unportable - "
1317                  "use gnulib module expm1 for portability");
1318 # endif
1319 #endif
1320 
1321 #if 0
1322 # if 0
1323 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1324 #   undef expm1l
1325 #   define expm1l rpl_expm1l
1326 #  endif
1327 _GL_FUNCDECL_RPL (expm1l, long double, (long double x));
1328 _GL_CXXALIAS_RPL (expm1l, long double, (long double x));
1329 # else
1330 #  if !1
1331 #   undef expm1l
1332 #   if !(defined __cplusplus && defined _AIX)
1333 _GL_FUNCDECL_SYS (expm1l, long double, (long double x));
1334 #   endif
1335 #  endif
1336 _GL_CXXALIAS_SYS (expm1l, long double, (long double x));
1337 # endif
1338 _GL_CXXALIASWARN (expm1l);
1339 #elif defined GNULIB_POSIXCHECK
1340 # undef expm1l
1341 # if HAVE_RAW_DECL_EXPM1L
1342 _GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
1343                  "use gnulib module expm1l for portability");
1344 # endif
1345 #endif
1346 
1347 
1348 #if 0
1349 # if !1
1350 #  undef fabsf
1351 _GL_FUNCDECL_SYS (fabsf, float, (float x));
1352 # endif
1353 _GL_CXXALIAS_SYS (fabsf, float, (float x));
1354 # if __GLIBC__ >= 2
1355 _GL_CXXALIASWARN (fabsf);
1356 # endif
1357 #elif defined GNULIB_POSIXCHECK
1358 # undef fabsf
1359 # if HAVE_RAW_DECL_FABSF
1360 _GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
1361                  "use gnulib module fabsf for portability");
1362 # endif
1363 #endif
1364 
1365 #if 0
1366 # if 0
1367 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1368 #   undef fabsl
1369 #   define fabsl rpl_fabsl
1370 #  endif
1371 _GL_FUNCDECL_RPL (fabsl, long double, (long double x));
1372 _GL_CXXALIAS_RPL (fabsl, long double, (long double x));
1373 # else
1374 #  if !1
1375 #   undef fabsl
1376 _GL_FUNCDECL_SYS (fabsl, long double, (long double x));
1377 #  endif
1378 _GL_CXXALIAS_SYS (fabsl, long double, (long double x));
1379 # endif
1380 # if __GLIBC__ >= 2
1381 _GL_CXXALIASWARN (fabsl);
1382 # endif
1383 #elif defined GNULIB_POSIXCHECK
1384 # undef fabsl
1385 # if HAVE_RAW_DECL_FABSL
1386 _GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
1387                  "use gnulib module fabsl for portability");
1388 # endif
1389 #endif
1390 
1391 
1392 #if 0
1393 # if 0
1394 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1395 #   undef floorf
1396 #   define floorf rpl_floorf
1397 #  endif
1398 _GL_FUNCDECL_RPL (floorf, float, (float x));
1399 _GL_CXXALIAS_RPL (floorf, float, (float x));
1400 # else
1401 #  if !1
1402 #   undef floorf
1403 _GL_FUNCDECL_SYS (floorf, float, (float x));
1404 #  endif
1405 _GL_CXXALIAS_SYS (floorf, float, (float x));
1406 # endif
1407 _GL_CXXALIASWARN (floorf);
1408 #elif defined GNULIB_POSIXCHECK
1409 # undef floorf
1410 # if HAVE_RAW_DECL_FLOORF
1411 _GL_WARN_ON_USE (floorf, "floorf is unportable - "
1412                  "use gnulib module floorf for portability");
1413 # endif
1414 #endif
1415 
1416 #if 0
1417 # if 0
1418 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1419 #   undef floor
1420 #   define floor rpl_floor
1421 #  endif
1422 _GL_FUNCDECL_RPL (floor, double, (double x));
1423 _GL_CXXALIAS_RPL (floor, double, (double x));
1424 # else
1425 _GL_CXXALIAS_SYS (floor, double, (double x));
1426 # endif
1427 # if __GLIBC__ >= 2
1428 _GL_CXXALIASWARN1 (floor, double, (double x));
1429 # endif
1430 #endif
1431 
1432 #if 0
1433 # if 0
1434 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1435 #   undef floorl
1436 #   define floorl rpl_floorl
1437 #  endif
1438 _GL_FUNCDECL_RPL (floorl, long double, (long double x));
1439 _GL_CXXALIAS_RPL (floorl, long double, (long double x));
1440 # else
1441 #  if !1
1442 #   undef floorl
1443 _GL_FUNCDECL_SYS (floorl, long double, (long double x));
1444 #  endif
1445 _GL_CXXALIAS_SYS (floorl, long double, (long double x));
1446 # endif
1447 # if __GLIBC__ >= 2
1448 _GL_CXXALIASWARN (floorl);
1449 # endif
1450 #elif defined GNULIB_POSIXCHECK
1451 # undef floorl
1452 # if HAVE_RAW_DECL_FLOORL
1453 _GL_WARN_ON_USE (floorl, "floorl is unportable - "
1454                  "use gnulib module floorl for portability");
1455 # endif
1456 #endif
1457 
1458 
1459 #if 0
1460 # if 0
1461 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1462 #   undef fmaf
1463 #   define fmaf rpl_fmaf
1464 #  endif
1465 _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
1466 _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
1467 # else
1468 #  if !1
1469 #   undef fmaf
1470 _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
1471 #  endif
1472 _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
1473 # endif
1474 _GL_CXXALIASWARN (fmaf);
1475 #elif defined GNULIB_POSIXCHECK
1476 # undef fmaf
1477 # if HAVE_RAW_DECL_FMAF
1478 _GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
1479                  "use gnulib module fmaf for portability");
1480 # endif
1481 #endif
1482 
1483 #if 0
1484 # if 0
1485 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1486 #   undef fma
1487 #   define fma rpl_fma
1488 #  endif
1489 _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
1490 _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
1491 # else
1492 #  if !1
1493 #   undef fma
1494 _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
1495 #  endif
1496 _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
1497 # endif
1498 # if __GLIBC__ >= 2
1499 _GL_CXXALIASWARN1 (fma, double, (double x, double y, double z));
1500 # endif
1501 #elif defined GNULIB_POSIXCHECK
1502 # undef fma
1503 # if HAVE_RAW_DECL_FMA
1504 _GL_WARN_ON_USE (fma, "fma is unportable - "
1505                  "use gnulib module fma for portability");
1506 # endif
1507 #endif
1508 
1509 #if 0
1510 # if 0
1511 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1512 #   undef fmal
1513 #   define fmal rpl_fmal
1514 #  endif
1515 _GL_FUNCDECL_RPL (fmal, long double,
1516                   (long double x, long double y, long double z));
1517 _GL_CXXALIAS_RPL (fmal, long double,
1518                   (long double x, long double y, long double z));
1519 # else
1520 #  if !1
1521 #   undef fmal
1522 #   if !(defined __cplusplus && defined _AIX)
1523 _GL_FUNCDECL_SYS (fmal, long double,
1524                   (long double x, long double y, long double z));
1525 #   endif
1526 #  endif
1527 _GL_CXXALIAS_SYS (fmal, long double,
1528                   (long double x, long double y, long double z));
1529 # endif
1530 _GL_CXXALIASWARN (fmal);
1531 #elif defined GNULIB_POSIXCHECK
1532 # undef fmal
1533 # if HAVE_RAW_DECL_FMAL
1534 _GL_WARN_ON_USE (fmal, "fmal is unportable - "
1535                  "use gnulib module fmal for portability");
1536 # endif
1537 #endif
1538 
1539 
1540 #if 0
1541 # if 0
1542 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1543 #   undef fmodf
1544 #   define fmodf rpl_fmodf
1545 #  endif
1546 _GL_FUNCDECL_RPL (fmodf, float, (float x, float y));
1547 _GL_CXXALIAS_RPL (fmodf, float, (float x, float y));
1548 # else
1549 #  if !1
1550 #   undef fmodf
1551 _GL_FUNCDECL_SYS (fmodf, float, (float x, float y));
1552 #  endif
1553 _GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
1554 # endif
1555 _GL_CXXALIASWARN (fmodf);
1556 #elif defined GNULIB_POSIXCHECK
1557 # undef fmodf
1558 # if HAVE_RAW_DECL_FMODF
1559 _GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
1560                  "use gnulib module fmodf for portability");
1561 # endif
1562 #endif
1563 
1564 #if 0
1565 # if 0
1566 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1567 #   undef fmod
1568 #   define fmod rpl_fmod
1569 #  endif
1570 _GL_FUNCDECL_RPL (fmod, double, (double x, double y));
1571 _GL_CXXALIAS_RPL (fmod, double, (double x, double y));
1572 # else
1573 _GL_CXXALIAS_SYS (fmod, double, (double x, double y));
1574 # endif
1575 # if __GLIBC__ >= 2
1576 _GL_CXXALIASWARN1 (fmod, double, (double x, double y));
1577 # endif
1578 #elif defined GNULIB_POSIXCHECK
1579 # undef fmod
1580 # if HAVE_RAW_DECL_FMOD
1581 _GL_WARN_ON_USE (fmod, "fmod has portability problems - "
1582                  "use gnulib module fmod for portability");
1583 # endif
1584 #endif
1585 
1586 #if 0
1587 # if 0
1588 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1589 #   undef fmodl
1590 #   define fmodl rpl_fmodl
1591 #  endif
1592 _GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y));
1593 _GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y));
1594 # else
1595 #  if !1
1596 #   undef fmodl
1597 _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
1598 #  endif
1599 _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
1600 # endif
1601 # if __GLIBC__ >= 2
1602 _GL_CXXALIASWARN (fmodl);
1603 # endif
1604 #elif defined GNULIB_POSIXCHECK
1605 # undef fmodl
1606 # if HAVE_RAW_DECL_FMODL
1607 _GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
1608                  "use gnulib module fmodl for portability");
1609 # endif
1610 #endif
1611 
1612 
1613 /* Write x as
1614      x = mantissa * 2^exp
1615    where
1616      If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1617      If x is zero: mantissa = x, exp = 0.
1618      If x is infinite or NaN: mantissa = x, exp unspecified.
1619    Store exp in *EXPPTR and return mantissa.  */
1620 #if 0
1621 # if 0
1622 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1623 #   undef frexpf
1624 #   define frexpf rpl_frexpf
1625 #  endif
1626 _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1627 _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr));
1628 # else
1629 #  if !1
1630 #   undef frexpf
1631 _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
1632 #  endif
1633 _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
1634 # endif
1635 # if __GLIBC__ >= 2
1636 _GL_CXXALIASWARN (frexpf);
1637 # endif
1638 #elif defined GNULIB_POSIXCHECK
1639 # undef frexpf
1640 # if HAVE_RAW_DECL_FREXPF
1641 _GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
1642                  "use gnulib module frexpf for portability");
1643 # endif
1644 #endif
1645 
1646 /* Write x as
1647      x = mantissa * 2^exp
1648    where
1649      If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1650      If x is zero: mantissa = x, exp = 0.
1651      If x is infinite or NaN: mantissa = x, exp unspecified.
1652    Store exp in *EXPPTR and return mantissa.  */
1653 #if 1
1654 # if 1
1655 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1656 #   undef frexp
1657 #   define frexp rpl_frexp
1658 #  endif
1659 _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
1660 _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
1661 # else
1662 _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
1663 # endif
1664 # if __GLIBC__ >= 2
1665 _GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr));
1666 # endif
1667 #elif defined GNULIB_POSIXCHECK
1668 # undef frexp
1669 /* Assume frexp is always declared.  */
1670 _GL_WARN_ON_USE (frexp, "frexp is unportable - "
1671                  "use gnulib module frexp for portability");
1672 #endif
1673 
1674 /* Write x as
1675      x = mantissa * 2^exp
1676    where
1677      If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
1678      If x is zero: mantissa = x, exp = 0.
1679      If x is infinite or NaN: mantissa = x, exp unspecified.
1680    Store exp in *EXPPTR and return mantissa.  */
1681 #if 1 && 0
1682 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1683 #  undef frexpl
1684 #  define frexpl rpl_frexpl
1685 # endif
1686 _GL_FUNCDECL_RPL (frexpl, long double,
1687                   (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1688 _GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
1689 #else
1690 # if !1
1691 _GL_FUNCDECL_SYS (frexpl, long double,
1692                   (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
1693 # endif
1694 # if 1
1695 _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
1696 # endif
1697 #endif
1698 #if 1 && !(0 && !1)
1699 # if __GLIBC__ >= 2
1700 _GL_CXXALIASWARN (frexpl);
1701 # endif
1702 #endif
1703 #if !1 && defined GNULIB_POSIXCHECK
1704 # undef frexpl
1705 # if HAVE_RAW_DECL_FREXPL
1706 _GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
1707                  "use gnulib module frexpl for portability");
1708 # endif
1709 #endif
1710 
1711 
1712 /* Return sqrt(x^2+y^2).  */
1713 #if 0
1714 # if 0
1715 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1716 #   undef hypotf
1717 #   define hypotf rpl_hypotf
1718 #  endif
1719 _GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
1720 _GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
1721 # else
1722 #  if !1
1723 _GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
1724 #  endif
1725 _GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
1726 # endif
1727 # if __GLIBC__ >= 2
1728 _GL_CXXALIASWARN (hypotf);
1729 # endif
1730 #elif defined GNULIB_POSIXCHECK
1731 # undef hypotf
1732 # if HAVE_RAW_DECL_HYPOTF
1733 _GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
1734                  "use gnulib module hypotf for portability");
1735 # endif
1736 #endif
1737 
1738 /* Return sqrt(x^2+y^2).  */
1739 #if 0
1740 # if 0
1741 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1742 #   undef hypot
1743 #   define hypot rpl_hypot
1744 #  endif
1745 _GL_FUNCDECL_RPL (hypot, double, (double x, double y));
1746 _GL_CXXALIAS_RPL (hypot, double, (double x, double y));
1747 # else
1748 _GL_CXXALIAS_SYS (hypot, double, (double x, double y));
1749 # endif
1750 # if __GLIBC__ >= 2
1751 _GL_CXXALIASWARN1 (hypot, double, (double x, double y));
1752 # endif
1753 #elif defined GNULIB_POSIXCHECK
1754 # undef hypot
1755 # if HAVE_RAW_DECL_HYPOT
1756 _GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
1757                  "use gnulib module hypot for portability");
1758 # endif
1759 #endif
1760 
1761 /* Return sqrt(x^2+y^2).  */
1762 #if 0
1763 # if 0
1764 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1765 #   undef hypotl
1766 #   define hypotl rpl_hypotl
1767 #  endif
1768 _GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y));
1769 _GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y));
1770 # else
1771 #  if !1
1772 _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
1773 #  endif
1774 _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
1775 # endif
1776 # if __GLIBC__ >= 2
1777 _GL_CXXALIASWARN (hypotl);
1778 # endif
1779 #elif defined GNULIB_POSIXCHECK
1780 # undef hypotl
1781 # if HAVE_RAW_DECL_HYPOTL
1782 _GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
1783                  "use gnulib module hypotl for portability");
1784 # endif
1785 #endif
1786 
1787 
1788 #if 0
1789 # if 0
1790 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1791 #   undef ilogbf
1792 #   define ilogbf rpl_ilogbf
1793 #  endif
1794 _GL_FUNCDECL_RPL (ilogbf, int, (float x));
1795 _GL_CXXALIAS_RPL (ilogbf, int, (float x));
1796 # else
1797 #  if !1
1798 _GL_FUNCDECL_SYS (ilogbf, int, (float x));
1799 #  endif
1800 _GL_CXXALIAS_SYS (ilogbf, int, (float x));
1801 # endif
1802 _GL_CXXALIASWARN (ilogbf);
1803 #elif defined GNULIB_POSIXCHECK
1804 # undef ilogbf
1805 # if HAVE_RAW_DECL_ILOGBF
1806 _GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
1807                  "use gnulib module ilogbf for portability");
1808 # endif
1809 #endif
1810 
1811 #if 0
1812 # if 0
1813 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1814 #   undef ilogb
1815 #   define ilogb rpl_ilogb
1816 #  endif
1817 _GL_FUNCDECL_RPL (ilogb, int, (double x));
1818 _GL_CXXALIAS_RPL (ilogb, int, (double x));
1819 # else
1820 #  if !1
1821 _GL_FUNCDECL_SYS (ilogb, int, (double x));
1822 #  endif
1823 _GL_CXXALIAS_SYS (ilogb, int, (double x));
1824 # endif
1825 # if __GLIBC__ >= 2
1826 _GL_CXXALIASWARN1 (ilogb, int, (double x));
1827 # endif
1828 #elif defined GNULIB_POSIXCHECK
1829 # undef ilogb
1830 # if HAVE_RAW_DECL_ILOGB
1831 _GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
1832                  "use gnulib module ilogb for portability");
1833 # endif
1834 #endif
1835 
1836 #if 0
1837 # if 0
1838 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1839 #   undef ilogbl
1840 #   define ilogbl rpl_ilogbl
1841 #  endif
1842 _GL_FUNCDECL_RPL (ilogbl, int, (long double x));
1843 _GL_CXXALIAS_RPL (ilogbl, int, (long double x));
1844 # else
1845 #  if !1
1846 #   undef ilogbl
1847 _GL_FUNCDECL_SYS (ilogbl, int, (long double x));
1848 #  endif
1849 _GL_CXXALIAS_SYS (ilogbl, int, (long double x));
1850 # endif
1851 _GL_CXXALIASWARN (ilogbl);
1852 #elif defined GNULIB_POSIXCHECK
1853 # undef ilogbl
1854 # if HAVE_RAW_DECL_ILOGBL
1855 _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
1856                  "use gnulib module ilogbl for portability");
1857 # endif
1858 #endif
1859 
1860 
1861 #if 1
1862 /* On native Windows, map 'j0' to '_j0', so that -loldnames is not
1863    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
1864    platforms by defining GNULIB_NAMESPACE::j0 always.  */
1865 # if defined _WIN32 && !defined __CYGWIN__
1866 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1867 #   undef j0
1868 #   define j0 _j0
1869 #  endif
1870 _GL_CXXALIAS_MDA (j0, double, (double x));
1871 # else
1872 _GL_CXXALIAS_SYS (j0, double, (double x));
1873 # endif
1874 _GL_CXXALIASWARN (j0);
1875 #endif
1876 
1877 #if 1
1878 /* On native Windows, map 'j1' to '_j1', so that -loldnames is not
1879    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
1880    platforms by defining GNULIB_NAMESPACE::j1 always.  */
1881 # if defined _WIN32 && !defined __CYGWIN__
1882 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1883 #   undef j1
1884 #   define j1 _j1
1885 #  endif
1886 _GL_CXXALIAS_MDA (j1, double, (double x));
1887 # else
1888 _GL_CXXALIAS_SYS (j1, double, (double x));
1889 # endif
1890 _GL_CXXALIASWARN (j1);
1891 #endif
1892 
1893 #if 1
1894 /* On native Windows, map 'jn' to '_jn', so that -loldnames is not
1895    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
1896    platforms by defining GNULIB_NAMESPACE::jn always.  */
1897 # if defined _WIN32 && !defined __CYGWIN__
1898 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1899 #   undef jn
1900 #   define jn _jn
1901 #  endif
1902 _GL_CXXALIAS_MDA (jn, double, (int n, double x));
1903 # else
1904 _GL_CXXALIAS_SYS (jn, double, (int n, double x));
1905 # endif
1906 _GL_CXXALIASWARN (jn);
1907 #endif
1908 
1909 
1910 /* Return x * 2^exp.  */
1911 #if 0
1912 # if !1
1913 #  undef ldexpf
1914 _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
1915 # endif
1916 _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
1917 # if __GLIBC__ >= 2
1918 _GL_CXXALIASWARN (ldexpf);
1919 # endif
1920 #elif defined GNULIB_POSIXCHECK
1921 # undef ldexpf
1922 # if HAVE_RAW_DECL_LDEXPF
1923 _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
1924                  "use gnulib module ldexpf for portability");
1925 # endif
1926 #endif
1927 
1928 /* Return x * 2^exp.  */
1929 #if 0 && 0
1930 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1931 #  undef ldexpl
1932 #  define ldexpl rpl_ldexpl
1933 # endif
1934 _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
1935 _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
1936 #else
1937 # if !1
1938 _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
1939 # endif
1940 # if 0
1941 _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
1942 # endif
1943 #endif
1944 #if 0
1945 # if __GLIBC__ >= 2
1946 _GL_CXXALIASWARN (ldexpl);
1947 # endif
1948 #endif
1949 #if !0 && defined GNULIB_POSIXCHECK
1950 # undef ldexpl
1951 # if HAVE_RAW_DECL_LDEXPL
1952 _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
1953                  "use gnulib module ldexpl for portability");
1954 # endif
1955 #endif
1956 
1957 
1958 #if 0
1959 # if 0
1960 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1961 #   undef logf
1962 #   define logf rpl_logf
1963 #  endif
1964 _GL_FUNCDECL_RPL (logf, float, (float x));
1965 _GL_CXXALIAS_RPL (logf, float, (float x));
1966 # else
1967 #  if !1
1968 #   undef logf
1969 _GL_FUNCDECL_SYS (logf, float, (float x));
1970 #  endif
1971 _GL_CXXALIAS_SYS (logf, float, (float x));
1972 # endif
1973 _GL_CXXALIASWARN (logf);
1974 #elif defined GNULIB_POSIXCHECK
1975 # undef logf
1976 # if HAVE_RAW_DECL_LOGF
1977 _GL_WARN_ON_USE (logf, "logf is unportable - "
1978                  "use gnulib module logf for portability");
1979 # endif
1980 #endif
1981 
1982 #if 0
1983 # if 0
1984 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1985 #   undef log
1986 #   define log rpl_log
1987 #  endif
1988 _GL_FUNCDECL_RPL (log, double, (double x));
1989 _GL_CXXALIAS_RPL (log, double, (double x));
1990 # else
1991 _GL_CXXALIAS_SYS (log, double, (double x));
1992 # endif
1993 # if __GLIBC__ >= 2
1994 _GL_CXXALIASWARN1 (log, double, (double x));
1995 # endif
1996 #elif defined GNULIB_POSIXCHECK
1997 # undef log
1998 # if HAVE_RAW_DECL_LOG
1999 _GL_WARN_ON_USE (log, "log has portability problems - "
2000                  "use gnulib module log for portability");
2001 # endif
2002 #endif
2003 
2004 #if 0
2005 # if 0
2006 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2007 #   undef logl
2008 #   define logl rpl_logl
2009 #  endif
2010 _GL_FUNCDECL_RPL (logl, long double, (long double x));
2011 _GL_CXXALIAS_RPL (logl, long double, (long double x));
2012 # else
2013 #  if !1 || !1
2014 #   undef logl
2015 _GL_FUNCDECL_SYS (logl, long double, (long double x));
2016 #  endif
2017 _GL_CXXALIAS_SYS (logl, long double, (long double x));
2018 # endif
2019 # if __GLIBC__ >= 2
2020 _GL_CXXALIASWARN (logl);
2021 # endif
2022 #elif defined GNULIB_POSIXCHECK
2023 # undef logl
2024 # if HAVE_RAW_DECL_LOGL
2025 _GL_WARN_ON_USE (logl, "logl is unportable - "
2026                  "use gnulib module logl for portability");
2027 # endif
2028 #endif
2029 
2030 
2031 #if 0
2032 # if 0
2033 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2034 #   undef log10f
2035 #   define log10f rpl_log10f
2036 #  endif
2037 _GL_FUNCDECL_RPL (log10f, float, (float x));
2038 _GL_CXXALIAS_RPL (log10f, float, (float x));
2039 # else
2040 #  if !1
2041 #   undef log10f
2042 _GL_FUNCDECL_SYS (log10f, float, (float x));
2043 #  endif
2044 _GL_CXXALIAS_SYS (log10f, float, (float x));
2045 # endif
2046 _GL_CXXALIASWARN (log10f);
2047 #elif defined GNULIB_POSIXCHECK
2048 # undef log10f
2049 # if HAVE_RAW_DECL_LOG10F
2050 _GL_WARN_ON_USE (log10f, "log10f is unportable - "
2051                  "use gnulib module log10f for portability");
2052 # endif
2053 #endif
2054 
2055 #if 0
2056 # if 0
2057 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2058 #   undef log10
2059 #   define log10 rpl_log10
2060 #  endif
2061 _GL_FUNCDECL_RPL (log10, double, (double x));
2062 _GL_CXXALIAS_RPL (log10, double, (double x));
2063 # else
2064 _GL_CXXALIAS_SYS (log10, double, (double x));
2065 # endif
2066 # if __GLIBC__ >= 2
2067 _GL_CXXALIASWARN1 (log10, double, (double x));
2068 # endif
2069 #elif defined GNULIB_POSIXCHECK
2070 # undef log10
2071 # if HAVE_RAW_DECL_LOG10
2072 _GL_WARN_ON_USE (log10, "log10 has portability problems - "
2073                  "use gnulib module log10 for portability");
2074 # endif
2075 #endif
2076 
2077 #if 0
2078 # if 0
2079 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2080 #   undef log10l
2081 #   define log10l rpl_log10l
2082 #  endif
2083 _GL_FUNCDECL_RPL (log10l, long double, (long double x));
2084 _GL_CXXALIAS_RPL (log10l, long double, (long double x));
2085 # else
2086 #  if !1 || !1
2087 #   undef log10l
2088 _GL_FUNCDECL_SYS (log10l, long double, (long double x));
2089 #  endif
2090 _GL_CXXALIAS_SYS (log10l, long double, (long double x));
2091 # endif
2092 # if __GLIBC__ >= 2
2093 _GL_CXXALIASWARN (log10l);
2094 # endif
2095 #elif defined GNULIB_POSIXCHECK
2096 # undef log10l
2097 # if HAVE_RAW_DECL_LOG10L
2098 _GL_WARN_ON_USE (log10l, "log10l is unportable - "
2099                  "use gnulib module log10l for portability");
2100 # endif
2101 #endif
2102 
2103 
2104 #if 0
2105 # if 0
2106 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2107 #   undef log1pf
2108 #   define log1pf rpl_log1pf
2109 #  endif
2110 _GL_FUNCDECL_RPL (log1pf, float, (float x));
2111 _GL_CXXALIAS_RPL (log1pf, float, (float x));
2112 # else
2113 #  if !1
2114 _GL_FUNCDECL_SYS (log1pf, float, (float x));
2115 #  endif
2116 _GL_CXXALIAS_SYS (log1pf, float, (float x));
2117 # endif
2118 _GL_CXXALIASWARN (log1pf);
2119 #elif defined GNULIB_POSIXCHECK
2120 # undef log1pf
2121 # if HAVE_RAW_DECL_LOG1PF
2122 _GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
2123                  "use gnulib module log1pf for portability");
2124 # endif
2125 #endif
2126 
2127 #if 0
2128 # if 0
2129 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2130 #   undef log1p
2131 #   define log1p rpl_log1p
2132 #  endif
2133 _GL_FUNCDECL_RPL (log1p, double, (double x));
2134 _GL_CXXALIAS_RPL (log1p, double, (double x));
2135 # else
2136 #  if !1
2137 _GL_FUNCDECL_SYS (log1p, double, (double x));
2138 #  endif
2139 _GL_CXXALIAS_SYS (log1p, double, (double x));
2140 # endif
2141 # if __GLIBC__ >= 2
2142 _GL_CXXALIASWARN1 (log1p, double, (double x));
2143 # endif
2144 #elif defined GNULIB_POSIXCHECK
2145 # undef log1p
2146 # if HAVE_RAW_DECL_LOG1P
2147 _GL_WARN_ON_USE (log1p, "log1p has portability problems - "
2148                  "use gnulib module log1p for portability");
2149 # endif
2150 #endif
2151 
2152 #if 0
2153 # if 0
2154 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2155 #   undef log1pl
2156 #   define log1pl rpl_log1pl
2157 #  endif
2158 _GL_FUNCDECL_RPL (log1pl, long double, (long double x));
2159 _GL_CXXALIAS_RPL (log1pl, long double, (long double x));
2160 # else
2161 #  if !1
2162 _GL_FUNCDECL_SYS (log1pl, long double, (long double x));
2163 #  endif
2164 _GL_CXXALIAS_SYS (log1pl, long double, (long double x));
2165 # endif
2166 _GL_CXXALIASWARN (log1pl);
2167 #elif defined GNULIB_POSIXCHECK
2168 # undef log1pl
2169 # if HAVE_RAW_DECL_LOG1PL
2170 _GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
2171                  "use gnulib module log1pl for portability");
2172 # endif
2173 #endif
2174 
2175 
2176 #if 0
2177 # if 0
2178 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2179 #   undef log2f
2180 #   define log2f rpl_log2f
2181 #  endif
2182 _GL_FUNCDECL_RPL (log2f, float, (float x));
2183 _GL_CXXALIAS_RPL (log2f, float, (float x));
2184 # else
2185 #  if !1
2186 #   undef log2f
2187 _GL_FUNCDECL_SYS (log2f, float, (float x));
2188 #  endif
2189 _GL_CXXALIAS_SYS (log2f, float, (float x));
2190 # endif
2191 _GL_CXXALIASWARN (log2f);
2192 #elif defined GNULIB_POSIXCHECK
2193 # undef log2f
2194 # if HAVE_RAW_DECL_LOG2F
2195 _GL_WARN_ON_USE (log2f, "log2f is unportable - "
2196                  "use gnulib module log2f for portability");
2197 # endif
2198 #endif
2199 
2200 #if 0
2201 # if 0
2202 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2203 #   undef log2
2204 #   define log2 rpl_log2
2205 #  endif
2206 _GL_FUNCDECL_RPL (log2, double, (double x));
2207 _GL_CXXALIAS_RPL (log2, double, (double x));
2208 # else
2209 #  if !1
2210 #   undef log2
2211 _GL_FUNCDECL_SYS (log2, double, (double x));
2212 #  endif
2213 _GL_CXXALIAS_SYS (log2, double, (double x));
2214 # endif
2215 # if __GLIBC__ >= 2
2216 _GL_CXXALIASWARN1 (log2, double, (double x));
2217 # endif
2218 #elif defined GNULIB_POSIXCHECK
2219 # undef log2
2220 # if HAVE_RAW_DECL_LOG2
2221 _GL_WARN_ON_USE (log2, "log2 is unportable - "
2222                  "use gnulib module log2 for portability");
2223 # endif
2224 #endif
2225 
2226 #if 0
2227 # if 0
2228 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2229 #   undef log2l
2230 #   define log2l rpl_log2l
2231 #  endif
2232 _GL_FUNCDECL_RPL (log2l, long double, (long double x));
2233 _GL_CXXALIAS_RPL (log2l, long double, (long double x));
2234 # else
2235 #  if !1
2236 _GL_FUNCDECL_SYS (log2l, long double, (long double x));
2237 #  endif
2238 _GL_CXXALIAS_SYS (log2l, long double, (long double x));
2239 # endif
2240 _GL_CXXALIASWARN (log2l);
2241 #elif defined GNULIB_POSIXCHECK
2242 # undef log2l
2243 # if HAVE_RAW_DECL_LOG2L
2244 _GL_WARN_ON_USE (log2l, "log2l is unportable - "
2245                  "use gnulib module log2l for portability");
2246 # endif
2247 #endif
2248 
2249 
2250 #if 0
2251 # if 0
2252 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2253 #   undef logbf
2254 #   define logbf rpl_logbf
2255 #  endif
2256 _GL_FUNCDECL_RPL (logbf, float, (float x));
2257 _GL_CXXALIAS_RPL (logbf, float, (float x));
2258 # else
2259 #  if !1
2260 _GL_FUNCDECL_SYS (logbf, float, (float x));
2261 #  endif
2262 _GL_CXXALIAS_SYS (logbf, float, (float x));
2263 # endif
2264 _GL_CXXALIASWARN (logbf);
2265 #elif defined GNULIB_POSIXCHECK
2266 # undef logbf
2267 # if HAVE_RAW_DECL_LOGBF
2268 _GL_WARN_ON_USE (logbf, "logbf is unportable - "
2269                  "use gnulib module logbf for portability");
2270 # endif
2271 #endif
2272 
2273 #if 0
2274 # if 0
2275 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2276 #   undef logb
2277 #   define logb rpl_logb
2278 #  endif
2279 _GL_FUNCDECL_RPL (logb, double, (double x));
2280 _GL_CXXALIAS_RPL (logb, double, (double x));
2281 # else
2282 #  if !1
2283 _GL_FUNCDECL_SYS (logb, double, (double x));
2284 #  endif
2285 _GL_CXXALIAS_SYS (logb, double, (double x));
2286 # endif
2287 # if __GLIBC__ >= 2
2288 _GL_CXXALIASWARN1 (logb, double, (double x));
2289 # endif
2290 #elif defined GNULIB_POSIXCHECK
2291 # undef logb
2292 # if HAVE_RAW_DECL_LOGB
2293 _GL_WARN_ON_USE (logb, "logb is unportable - "
2294                  "use gnulib module logb for portability");
2295 # endif
2296 #endif
2297 
2298 #if 0
2299 # if 0
2300 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2301 #   undef logbl
2302 #   define logbl rpl_logbl
2303 #  endif
2304 _GL_FUNCDECL_RPL (logbl, long double, (long double x));
2305 _GL_CXXALIAS_RPL (logbl, long double, (long double x));
2306 # else
2307 #  if !1
2308 _GL_FUNCDECL_SYS (logbl, long double, (long double x));
2309 #  endif
2310 _GL_CXXALIAS_SYS (logbl, long double, (long double x));
2311 # endif
2312 _GL_CXXALIASWARN (logbl);
2313 #elif defined GNULIB_POSIXCHECK
2314 # undef logbl
2315 # if HAVE_RAW_DECL_LOGBL
2316 _GL_WARN_ON_USE (logbl, "logbl is unportable - "
2317                  "use gnulib module logbl for portability");
2318 # endif
2319 #endif
2320 
2321 
2322 #if 0
2323 # if 0
2324 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2325 #   undef modff
2326 #   define modff rpl_modff
2327 #  endif
2328 _GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
2329 _GL_CXXALIAS_RPL (modff, float, (float x, float *iptr));
2330 # else
2331 #  if !1
2332 #   undef modff
2333 _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
2334 #  endif
2335 _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
2336 # endif
2337 _GL_CXXALIASWARN (modff);
2338 #elif defined GNULIB_POSIXCHECK
2339 # undef modff
2340 # if HAVE_RAW_DECL_MODFF
2341 _GL_WARN_ON_USE (modff, "modff is unportable - "
2342                  "use gnulib module modff for portability");
2343 # endif
2344 #endif
2345 
2346 #if 0
2347 # if 0
2348 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2349 #   undef modf
2350 #   define modf rpl_modf
2351 #  endif
2352 _GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2)));
2353 _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
2354 # else
2355 _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
2356 # endif
2357 # if __GLIBC__ >= 2
2358 _GL_CXXALIASWARN1 (modf, double, (double x, double *iptr));
2359 # endif
2360 #elif defined GNULIB_POSIXCHECK
2361 # undef modf
2362 # if HAVE_RAW_DECL_MODF
2363 _GL_WARN_ON_USE (modf, "modf has portability problems - "
2364                  "use gnulib module modf for portability");
2365 # endif
2366 #endif
2367 
2368 #if 0
2369 # if 0
2370 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2371 #   undef modfl
2372 #   define modfl rpl_modfl
2373 #  endif
2374 _GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr)
2375                                       _GL_ARG_NONNULL ((2)));
2376 _GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr));
2377 # else
2378 #  if !1
2379 #   undef modfl
2380 _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
2381                                       _GL_ARG_NONNULL ((2)));
2382 #  endif
2383 _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
2384 # endif
2385 # if __GLIBC__ >= 2
2386 _GL_CXXALIASWARN (modfl);
2387 # endif
2388 #elif defined GNULIB_POSIXCHECK
2389 # undef modfl
2390 # if HAVE_RAW_DECL_MODFL
2391 _GL_WARN_ON_USE (modfl, "modfl is unportable - "
2392                  "use gnulib module modfl for portability");
2393 # endif
2394 #endif
2395 
2396 
2397 #if 0
2398 # if !1
2399 #  undef powf
2400 _GL_FUNCDECL_SYS (powf, float, (float x, float y));
2401 # endif
2402 _GL_CXXALIAS_SYS (powf, float, (float x, float y));
2403 _GL_CXXALIASWARN (powf);
2404 #elif defined GNULIB_POSIXCHECK
2405 # undef powf
2406 # if HAVE_RAW_DECL_POWF
2407 _GL_WARN_ON_USE (powf, "powf is unportable - "
2408                  "use gnulib module powf for portability");
2409 # endif
2410 #endif
2411 
2412 
2413 #if 0
2414 # if 0
2415 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2416 #   undef remainderf
2417 #   define remainderf rpl_remainderf
2418 #  endif
2419 _GL_FUNCDECL_RPL (remainderf, float, (float x, float y));
2420 _GL_CXXALIAS_RPL (remainderf, float, (float x, float y));
2421 # else
2422 #  if !1
2423 _GL_FUNCDECL_SYS (remainderf, float, (float x, float y));
2424 #  endif
2425 _GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
2426 # endif
2427 _GL_CXXALIASWARN (remainderf);
2428 #elif defined GNULIB_POSIXCHECK
2429 # undef remainderf
2430 # if HAVE_RAW_DECL_REMAINDERF
2431 _GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
2432                  "use gnulib module remainderf for portability");
2433 # endif
2434 #endif
2435 
2436 #if 0
2437 # if 0
2438 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2439 #   undef remainder
2440 #   define remainder rpl_remainder
2441 #  endif
2442 _GL_FUNCDECL_RPL (remainder, double, (double x, double y));
2443 _GL_CXXALIAS_RPL (remainder, double, (double x, double y));
2444 # else
2445 #  if !1 || !1
2446 _GL_FUNCDECL_SYS (remainder, double, (double x, double y));
2447 #  endif
2448 _GL_CXXALIAS_SYS (remainder, double, (double x, double y));
2449 # endif
2450 # if __GLIBC__ >= 2
2451 _GL_CXXALIASWARN1 (remainder, double, (double x, double y));
2452 # endif
2453 #elif defined GNULIB_POSIXCHECK
2454 # undef remainder
2455 # if HAVE_RAW_DECL_REMAINDER
2456 _GL_WARN_ON_USE (remainder, "remainder is unportable - "
2457                  "use gnulib module remainder for portability");
2458 # endif
2459 #endif
2460 
2461 #if 0
2462 # if 0
2463 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2464 #   undef remainderl
2465 #   define remainderl rpl_remainderl
2466 #  endif
2467 _GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y));
2468 _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
2469 # else
2470 #  if !1
2471 #   undef remainderl
2472 #   if !(defined __cplusplus && defined _AIX)
2473 _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
2474 #   endif
2475 #  endif
2476 _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
2477 # endif
2478 _GL_CXXALIASWARN (remainderl);
2479 #elif defined GNULIB_POSIXCHECK
2480 # undef remainderl
2481 # if HAVE_RAW_DECL_REMAINDERL
2482 _GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
2483                  "use gnulib module remainderl for portability");
2484 # endif
2485 #endif
2486 
2487 
2488 #if 0
2489 # if !1
2490 _GL_FUNCDECL_SYS (rintf, float, (float x));
2491 # endif
2492 _GL_CXXALIAS_SYS (rintf, float, (float x));
2493 _GL_CXXALIASWARN (rintf);
2494 #elif defined GNULIB_POSIXCHECK
2495 # undef rintf
2496 # if HAVE_RAW_DECL_RINTF
2497 _GL_WARN_ON_USE (rintf, "rintf is unportable - "
2498                  "use gnulib module rintf for portability");
2499 # endif
2500 #endif
2501 
2502 #if 0
2503 # if !1
2504 _GL_FUNCDECL_SYS (rint, double, (double x));
2505 # endif
2506 _GL_CXXALIAS_SYS (rint, double, (double x));
2507 # if __GLIBC__ >= 2
2508 _GL_CXXALIASWARN1 (rint, double, (double x));
2509 # endif
2510 #elif defined GNULIB_POSIXCHECK
2511 # undef rint
2512 # if HAVE_RAW_DECL_RINT
2513 _GL_WARN_ON_USE (rint, "rint is unportable - "
2514                  "use gnulib module rint for portability");
2515 # endif
2516 #endif
2517 
2518 #if 0
2519 # if 0
2520 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2521 #   undef rintl
2522 #   define rintl rpl_rintl
2523 #  endif
2524 _GL_FUNCDECL_RPL (rintl, long double, (long double x));
2525 _GL_CXXALIAS_RPL (rintl, long double, (long double x));
2526 # else
2527 #  if !1
2528 _GL_FUNCDECL_SYS (rintl, long double, (long double x));
2529 #  endif
2530 _GL_CXXALIAS_SYS (rintl, long double, (long double x));
2531 # endif
2532 _GL_CXXALIASWARN (rintl);
2533 #elif defined GNULIB_POSIXCHECK
2534 # undef rintl
2535 # if HAVE_RAW_DECL_RINTL
2536 _GL_WARN_ON_USE (rintl, "rintl is unportable - "
2537                  "use gnulib module rintl for portability");
2538 # endif
2539 #endif
2540 
2541 
2542 #if 0
2543 # if 0
2544 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2545 #   undef roundf
2546 #   define roundf rpl_roundf
2547 #  endif
2548 _GL_FUNCDECL_RPL (roundf, float, (float x));
2549 _GL_CXXALIAS_RPL (roundf, float, (float x));
2550 # else
2551 #  if !1
2552 _GL_FUNCDECL_SYS (roundf, float, (float x));
2553 #  endif
2554 _GL_CXXALIAS_SYS (roundf, float, (float x));
2555 # endif
2556 _GL_CXXALIASWARN (roundf);
2557 #elif defined GNULIB_POSIXCHECK
2558 # undef roundf
2559 # if HAVE_RAW_DECL_ROUNDF
2560 _GL_WARN_ON_USE (roundf, "roundf is unportable - "
2561                  "use gnulib module roundf for portability");
2562 # endif
2563 #endif
2564 
2565 #if 0
2566 # if 0
2567 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2568 #   undef round
2569 #   define round rpl_round
2570 #  endif
2571 _GL_FUNCDECL_RPL (round, double, (double x));
2572 _GL_CXXALIAS_RPL (round, double, (double x));
2573 # else
2574 #  if !1
2575 _GL_FUNCDECL_SYS (round, double, (double x));
2576 #  endif
2577 _GL_CXXALIAS_SYS (round, double, (double x));
2578 # endif
2579 # if __GLIBC__ >= 2
2580 _GL_CXXALIASWARN1 (round, double, (double x));
2581 # endif
2582 #elif defined GNULIB_POSIXCHECK
2583 # undef round
2584 # if HAVE_RAW_DECL_ROUND
2585 _GL_WARN_ON_USE (round, "round is unportable - "
2586                  "use gnulib module round for portability");
2587 # endif
2588 #endif
2589 
2590 #if 0
2591 # if 0
2592 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2593 #   undef roundl
2594 #   define roundl rpl_roundl
2595 #  endif
2596 _GL_FUNCDECL_RPL (roundl, long double, (long double x));
2597 _GL_CXXALIAS_RPL (roundl, long double, (long double x));
2598 # else
2599 #  if !1
2600 #   undef roundl
2601 #   if !(defined __cplusplus && defined _AIX)
2602 _GL_FUNCDECL_SYS (roundl, long double, (long double x));
2603 #   endif
2604 #  endif
2605 _GL_CXXALIAS_SYS (roundl, long double, (long double x));
2606 # endif
2607 _GL_CXXALIASWARN (roundl);
2608 #elif defined GNULIB_POSIXCHECK
2609 # undef roundl
2610 # if HAVE_RAW_DECL_ROUNDL
2611 _GL_WARN_ON_USE (roundl, "roundl is unportable - "
2612                  "use gnulib module roundl for portability");
2613 # endif
2614 #endif
2615 
2616 
2617 #if 0
2618 # if 0
2619 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2620 #   undef sinf
2621 #   define sinf rpl_sinf
2622 #  endif
2623 _GL_FUNCDECL_RPL (sinf, float, (float x));
2624 _GL_CXXALIAS_RPL (sinf, float, (float x));
2625 # else
2626 #  if !1
2627 #   undef sinf
2628 _GL_FUNCDECL_SYS (sinf, float, (float x));
2629 #  endif
2630 _GL_CXXALIAS_SYS (sinf, float, (float x));
2631 # endif
2632 _GL_CXXALIASWARN (sinf);
2633 #elif defined GNULIB_POSIXCHECK
2634 # undef sinf
2635 # if HAVE_RAW_DECL_SINF
2636 _GL_WARN_ON_USE (sinf, "sinf is unportable - "
2637                  "use gnulib module sinf for portability");
2638 # endif
2639 #endif
2640 
2641 #if 0
2642 # if !1 || !1
2643 #  undef sinl
2644 _GL_FUNCDECL_SYS (sinl, long double, (long double x));
2645 # endif
2646 _GL_CXXALIAS_SYS (sinl, long double, (long double x));
2647 # if __GLIBC__ >= 2
2648 _GL_CXXALIASWARN (sinl);
2649 # endif
2650 #elif defined GNULIB_POSIXCHECK
2651 # undef sinl
2652 # if HAVE_RAW_DECL_SINL
2653 _GL_WARN_ON_USE (sinl, "sinl is unportable - "
2654                  "use gnulib module sinl for portability");
2655 # endif
2656 #endif
2657 
2658 
2659 #if 0
2660 # if 0
2661 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2662 #   undef sinhf
2663 #   define sinhf rpl_sinhf
2664 #  endif
2665 _GL_FUNCDECL_RPL (sinhf, float, (float x));
2666 _GL_CXXALIAS_RPL (sinhf, float, (float x));
2667 # else
2668 #  if !1
2669 #   undef sinhf
2670 _GL_FUNCDECL_SYS (sinhf, float, (float x));
2671 #  endif
2672 _GL_CXXALIAS_SYS (sinhf, float, (float x));
2673 # endif
2674 _GL_CXXALIASWARN (sinhf);
2675 #elif defined GNULIB_POSIXCHECK
2676 # undef sinhf
2677 # if HAVE_RAW_DECL_SINHF
2678 _GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
2679                  "use gnulib module sinhf for portability");
2680 # endif
2681 #endif
2682 
2683 
2684 #if 0
2685 # if 0
2686 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2687 #   undef sqrtf
2688 #   define sqrtf rpl_sqrtf
2689 #  endif
2690 _GL_FUNCDECL_RPL (sqrtf, float, (float x));
2691 _GL_CXXALIAS_RPL (sqrtf, float, (float x));
2692 # else
2693 #  if !1
2694 #   undef sqrtf
2695 _GL_FUNCDECL_SYS (sqrtf, float, (float x));
2696 #  endif
2697 _GL_CXXALIAS_SYS (sqrtf, float, (float x));
2698 # endif
2699 _GL_CXXALIASWARN (sqrtf);
2700 #elif defined GNULIB_POSIXCHECK
2701 # undef sqrtf
2702 # if HAVE_RAW_DECL_SQRTF
2703 _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
2704                  "use gnulib module sqrtf for portability");
2705 # endif
2706 #endif
2707 
2708 #if 0
2709 # if 0
2710 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2711 #   undef sqrtl
2712 #   define sqrtl rpl_sqrtl
2713 #  endif
2714 _GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
2715 _GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
2716 # else
2717 #  if !1 || !1
2718 #   undef sqrtl
2719 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
2720 #  endif
2721 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
2722 # endif
2723 # if __GLIBC__ >= 2
2724 _GL_CXXALIASWARN (sqrtl);
2725 # endif
2726 #elif defined GNULIB_POSIXCHECK
2727 # undef sqrtl
2728 # if HAVE_RAW_DECL_SQRTL
2729 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
2730                  "use gnulib module sqrtl for portability");
2731 # endif
2732 #endif
2733 
2734 
2735 #if 0
2736 # if 0
2737 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2738 #   undef tanf
2739 #   define tanf rpl_tanf
2740 #  endif
2741 _GL_FUNCDECL_RPL (tanf, float, (float x));
2742 _GL_CXXALIAS_RPL (tanf, float, (float x));
2743 # else
2744 #  if !1
2745 #   undef tanf
2746 _GL_FUNCDECL_SYS (tanf, float, (float x));
2747 #  endif
2748 _GL_CXXALIAS_SYS (tanf, float, (float x));
2749 # endif
2750 _GL_CXXALIASWARN (tanf);
2751 #elif defined GNULIB_POSIXCHECK
2752 # undef tanf
2753 # if HAVE_RAW_DECL_TANF
2754 _GL_WARN_ON_USE (tanf, "tanf is unportable - "
2755                  "use gnulib module tanf for portability");
2756 # endif
2757 #endif
2758 
2759 #if 0
2760 # if !1 || !1
2761 #  undef tanl
2762 _GL_FUNCDECL_SYS (tanl, long double, (long double x));
2763 # endif
2764 _GL_CXXALIAS_SYS (tanl, long double, (long double x));
2765 # if __GLIBC__ >= 2
2766 _GL_CXXALIASWARN (tanl);
2767 # endif
2768 #elif defined GNULIB_POSIXCHECK
2769 # undef tanl
2770 # if HAVE_RAW_DECL_TANL
2771 _GL_WARN_ON_USE (tanl, "tanl is unportable - "
2772                  "use gnulib module tanl for portability");
2773 # endif
2774 #endif
2775 
2776 
2777 #if 0
2778 # if 0
2779 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2780 #   undef tanhf
2781 #   define tanhf rpl_tanhf
2782 #  endif
2783 _GL_FUNCDECL_RPL (tanhf, float, (float x));
2784 _GL_CXXALIAS_RPL (tanhf, float, (float x));
2785 # else
2786 #  if !1
2787 #   undef tanhf
2788 _GL_FUNCDECL_SYS (tanhf, float, (float x));
2789 #  endif
2790 _GL_CXXALIAS_SYS (tanhf, float, (float x));
2791 # endif
2792 _GL_CXXALIASWARN (tanhf);
2793 #elif defined GNULIB_POSIXCHECK
2794 # undef tanhf
2795 # if HAVE_RAW_DECL_TANHF
2796 _GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
2797                  "use gnulib module tanhf for portability");
2798 # endif
2799 #endif
2800 
2801 
2802 #if 0
2803 # if 0
2804 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2805 #   undef truncf
2806 #   define truncf rpl_truncf
2807 #  endif
2808 _GL_FUNCDECL_RPL (truncf, float, (float x));
2809 _GL_CXXALIAS_RPL (truncf, float, (float x));
2810 # else
2811 #  if !1
2812 _GL_FUNCDECL_SYS (truncf, float, (float x));
2813 #  endif
2814 _GL_CXXALIAS_SYS (truncf, float, (float x));
2815 # endif
2816 _GL_CXXALIASWARN (truncf);
2817 #elif defined GNULIB_POSIXCHECK
2818 # undef truncf
2819 # if HAVE_RAW_DECL_TRUNCF
2820 _GL_WARN_ON_USE (truncf, "truncf is unportable - "
2821                  "use gnulib module truncf for portability");
2822 # endif
2823 #endif
2824 
2825 #if 0
2826 # if 0
2827 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2828 #   undef trunc
2829 #   define trunc rpl_trunc
2830 #  endif
2831 _GL_FUNCDECL_RPL (trunc, double, (double x));
2832 _GL_CXXALIAS_RPL (trunc, double, (double x));
2833 # else
2834 #  if !1
2835 _GL_FUNCDECL_SYS (trunc, double, (double x));
2836 #  endif
2837 _GL_CXXALIAS_SYS (trunc, double, (double x));
2838 # endif
2839 # if __GLIBC__ >= 2
2840 _GL_CXXALIASWARN1 (trunc, double, (double x));
2841 # endif
2842 #elif defined GNULIB_POSIXCHECK
2843 # undef trunc
2844 # if HAVE_RAW_DECL_TRUNC
2845 _GL_WARN_ON_USE (trunc, "trunc is unportable - "
2846                  "use gnulib module trunc for portability");
2847 # endif
2848 #endif
2849 
2850 #if 0
2851 # if 0
2852 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2853 #   undef truncl
2854 #   define truncl rpl_truncl
2855 #  endif
2856 _GL_FUNCDECL_RPL (truncl, long double, (long double x));
2857 _GL_CXXALIAS_RPL (truncl, long double, (long double x));
2858 # else
2859 #  if !1
2860 _GL_FUNCDECL_SYS (truncl, long double, (long double x));
2861 #  endif
2862 _GL_CXXALIAS_SYS (truncl, long double, (long double x));
2863 # endif
2864 _GL_CXXALIASWARN (truncl);
2865 #elif defined GNULIB_POSIXCHECK
2866 # undef truncl
2867 # if HAVE_RAW_DECL_TRUNCL
2868 _GL_WARN_ON_USE (truncl, "truncl is unportable - "
2869                  "use gnulib module truncl for portability");
2870 # endif
2871 #endif
2872 
2873 
2874 #if 1
2875 /* On native Windows, map 'y0' to '_y0', so that -loldnames is not
2876    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
2877    platforms by defining GNULIB_NAMESPACE::y0 always.  */
2878 # if defined _WIN32 && !defined __CYGWIN__
2879 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2880 #   undef y0
2881 #   define y0 _y0
2882 #  endif
2883 _GL_CXXALIAS_MDA (y0, double, (double x));
2884 # else
2885 _GL_CXXALIAS_SYS (y0, double, (double x));
2886 # endif
2887 _GL_CXXALIASWARN (y0);
2888 #endif
2889 
2890 #if 1
2891 /* On native Windows, map 'y1' to '_y1', so that -loldnames is not
2892    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
2893    platforms by defining GNULIB_NAMESPACE::y1 always.  */
2894 # if defined _WIN32 && !defined __CYGWIN__
2895 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2896 #   undef y1
2897 #   define y1 _y1
2898 #  endif
2899 _GL_CXXALIAS_MDA (y1, double, (double x));
2900 # else
2901 _GL_CXXALIAS_SYS (y1, double, (double x));
2902 # endif
2903 _GL_CXXALIASWARN (y1);
2904 #endif
2905 
2906 #if 1
2907 /* On native Windows, map 'yn' to '_yn', so that -loldnames is not
2908    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
2909    platforms by defining GNULIB_NAMESPACE::yn always.  */
2910 # if defined _WIN32 && !defined __CYGWIN__
2911 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2912 #   undef yn
2913 #   define yn _yn
2914 #  endif
2915 _GL_CXXALIAS_MDA (yn, double, (int n, double x));
2916 # else
2917 _GL_CXXALIAS_SYS (yn, double, (int n, double x));
2918 # endif
2919 _GL_CXXALIASWARN (yn);
2920 #endif
2921 
2922 
2923 /* Definitions of function-like macros come here, after the function
2924    declarations.  */
2925 
2926 
2927 #if 0
2928 # if 0
2929 _GL_EXTERN_C int gl_isfinitef (float x);
2930 _GL_EXTERN_C int gl_isfinited (double x);
2931 _GL_EXTERN_C int gl_isfinitel (long double x);
2932 #  undef isfinite
2933 #  define isfinite(x) \
2934    (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
2935     sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
2936     gl_isfinitef (x))
2937 # endif
2938 # ifdef __cplusplus
2939 #  if defined isfinite || defined GNULIB_NAMESPACE
2940 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
2941 #   undef isfinite
2942 #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
2943   /* This platform's <cmath> possibly defines isfinite through a set of inline
2944      functions.  */
2945 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool)
2946 #    define isfinite rpl_isfinite
2947 #    define GNULIB_NAMESPACE_LACKS_ISFINITE 1
2948 #   else
2949 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool)
2950 #   endif
2951 #  endif
2952 # endif
2953 #elif defined GNULIB_POSIXCHECK
2954 # if defined isfinite
2955 _GL_WARN_REAL_FLOATING_DECL (isfinite);
2956 #  undef isfinite
2957 #  define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
2958 # endif
2959 #endif
2960 
2961 
2962 #if 0
2963 # if 0
2964 _GL_EXTERN_C int gl_isinff (float x);
2965 _GL_EXTERN_C int gl_isinfd (double x);
2966 _GL_EXTERN_C int gl_isinfl (long double x);
2967 #  undef isinf
2968 #  define isinf(x) \
2969    (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
2970     sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
2971     gl_isinff (x))
2972 # endif
2973 # ifdef __cplusplus
2974 #  if defined isinf || defined GNULIB_NAMESPACE
2975 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
2976 #   undef isinf
2977 #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
2978   /* This platform's <cmath> possibly defines isinf through a set of inline
2979      functions.  */
2980 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, rpl_isinf, bool)
2981 #    define isinf rpl_isinf
2982 #    define GNULIB_NAMESPACE_LACKS_ISINF 1
2983 #   else
2984 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool)
2985 #   endif
2986 #  endif
2987 # endif
2988 #elif defined GNULIB_POSIXCHECK
2989 # if defined isinf
2990 _GL_WARN_REAL_FLOATING_DECL (isinf);
2991 #  undef isinf
2992 #  define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
2993 # endif
2994 #endif
2995 
2996 
2997 #if 0
2998 /* Test for NaN for 'float' numbers.  */
2999 # if 1
3000 /* The original <math.h> included above provides a declaration of isnan macro
3001    or (older) isnanf function.  */
3002 #  if (__GNUC__ >= 4) || (__clang_major__ >= 4)
3003     /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
3004        GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't.  */
3005 #   undef isnanf
3006 #   define isnanf(x) __builtin_isnan ((float)(x))
3007 #  elif defined isnan
3008 #   undef isnanf
3009 #   define isnanf(x) isnan ((float)(x))
3010 #  endif
3011 # else
3012 /* Test whether X is a NaN.  */
3013 #  undef isnanf
3014 #  define isnanf rpl_isnanf
3015 _GL_EXTERN_C int isnanf (float x);
3016 # endif
3017 #endif
3018 
3019 #if 0
3020 /* Test for NaN for 'double' numbers.
3021    This function is a gnulib extension, unlike isnan() which applied only
3022    to 'double' numbers earlier but now is a type-generic macro.  */
3023 # if 1
3024 /* The original <math.h> included above provides a declaration of isnan
3025    macro.  */
3026 #  if (__GNUC__ >= 4) || (__clang_major__ >= 4)
3027     /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.  */
3028 #   undef isnand
3029 #   define isnand(x) __builtin_isnan ((double)(x))
3030 #  else
3031 #   undef isnand
3032 #   define isnand(x) isnan ((double)(x))
3033 #  endif
3034 # else
3035 /* Test whether X is a NaN.  */
3036 #  undef isnand
3037 #  define isnand rpl_isnand
3038 _GL_EXTERN_C int isnand (double x);
3039 # endif
3040 #endif
3041 
3042 #if 0
3043 /* Test for NaN for 'long double' numbers.  */
3044 # if 1
3045 /* The original <math.h> included above provides a declaration of isnan
3046    macro or (older) isnanl function.  */
3047 #  if (__GNUC__ >= 4) || (__clang_major__ >= 4)
3048     /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
3049        GCC >= 4.0 also provides __builtin_isnanl, but clang doesn't.  */
3050 #   undef isnanl
3051 #   define isnanl(x) __builtin_isnan ((long double)(x))
3052 #  elif defined isnan
3053 #   undef isnanl
3054 #   define isnanl(x) isnan ((long double)(x))
3055 #  endif
3056 # else
3057 /* Test whether X is a NaN.  */
3058 #  undef isnanl
3059 #  define isnanl rpl_isnanl
3060 _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
3061 # endif
3062 #endif
3063 
3064 /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL!  */
3065 #if 0
3066 # if 0
3067 /* We can't just use the isnanf macro (e.g.) as exposed by
3068    isnanf.h (e.g.) here, because those may end up being macros
3069    that recursively expand back to isnan.  So use the gnulib
3070    replacements for them directly. */
3071 #  if 1 && (__GNUC__ >= 4) || (__clang_major__ >= 4)
3072 #   define gl_isnan_f(x) __builtin_isnan ((float)(x))
3073 #  else
3074 _GL_EXTERN_C int rpl_isnanf (float x);
3075 #   define gl_isnan_f(x) rpl_isnanf (x)
3076 #  endif
3077 #  if 1 && (__GNUC__ >= 4) || (__clang_major__ >= 4)
3078 #   define gl_isnan_d(x) __builtin_isnan ((double)(x))
3079 #  else
3080 _GL_EXTERN_C int rpl_isnand (double x);
3081 #   define gl_isnan_d(x) rpl_isnand (x)
3082 #  endif
3083 #  if 1 && (__GNUC__ >= 4) || (__clang_major__ >= 4)
3084 #   define gl_isnan_l(x) __builtin_isnan ((long double)(x))
3085 #  else
3086 _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
3087 #   define gl_isnan_l(x) rpl_isnanl (x)
3088 #  endif
3089 #  undef isnan
3090 #  define isnan(x) \
3091    (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
3092     sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
3093     gl_isnan_f (x))
3094 # elif (__GNUC__ >= 4) || (__clang_major__ >= 4)
3095 #  undef isnan
3096 #  define isnan(x) \
3097    (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \
3098     sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
3099     __builtin_isnan ((float)(x)))
3100 # endif
3101 # ifdef __cplusplus
3102 #  if defined isnan || defined GNULIB_NAMESPACE
3103 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
3104 #   undef isnan
3105 #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__ && __clang_major__ < 12) || (defined __FreeBSD__ && __clang_major__ < 7) || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
3106   /* This platform's <cmath> possibly defines isnan through a set of inline
3107      functions.  */
3108 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, rpl_isnan, bool)
3109 #    define isnan rpl_isnan
3110 #    define GNULIB_NAMESPACE_LACKS_ISNAN 1
3111 #   else
3112 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool)
3113 #   endif
3114 #  endif
3115 # else
3116 /* Ensure isnan is a macro.  */
3117 #  ifndef isnan
3118 #   define isnan isnan
3119 #  endif
3120 # endif
3121 #elif defined GNULIB_POSIXCHECK
3122 # if defined isnan
3123 _GL_WARN_REAL_FLOATING_DECL (isnan);
3124 #  undef isnan
3125 #  define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
3126 # endif
3127 #endif
3128 
3129 
3130 #if 0
3131 # if (0 \
3132       && (!defined __cplusplus || __cplusplus < 201103))
3133 #  undef signbit
3134    /* GCC >= 4.0 and clang provide three built-ins for signbit.  */
3135 #  define signbit(x) \
3136    (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
3137     sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
3138     __builtin_signbitf (x))
3139 # endif
3140 # if 0 && !GNULIB_defined_signbit
3141 #  undef signbit
3142 _GL_EXTERN_C int gl_signbitf (float arg);
3143 _GL_EXTERN_C int gl_signbitd (double arg);
3144 _GL_EXTERN_C int gl_signbitl (long double arg);
3145 #  if (__GNUC__ >= 2 || defined __clang__) && !defined __STRICT_ANSI__
3146 #   define _GL_NUM_UINT_WORDS(type) \
3147       ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
3148 #   if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
3149 #    define gl_signbitf_OPTIMIZED_MACRO
3150 #    define gl_signbitf(arg) \
3151        ({ union { float _value;                                         \
3152                   unsigned int _word[_GL_NUM_UINT_WORDS (float)];       \
3153                 } _m;                                                   \
3154           _m._value = (arg);                                            \
3155           (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1;          \
3156         })
3157 #   endif
3158 #   if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
3159 #    define gl_signbitd_OPTIMIZED_MACRO
3160 #    define gl_signbitd(arg) \
3161        ({ union { double _value;                                        \
3162                   unsigned int _word[_GL_NUM_UINT_WORDS (double)];      \
3163                 } _m;                                                   \
3164           _m._value = (arg);                                            \
3165           (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1;          \
3166         })
3167 #   endif
3168 #   if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
3169 #    define gl_signbitl_OPTIMIZED_MACRO
3170 #    define gl_signbitl(arg) \
3171        ({ union { long double _value;                                   \
3172                   unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
3173                 } _m;                                                   \
3174           _m._value = (arg);                                            \
3175           (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;        \
3176         })
3177 #   endif
3178 #  endif
3179 #  define signbit(x) \
3180    (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
3181     sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
3182     gl_signbitf (x))
3183 #  define GNULIB_defined_signbit 1
3184 # endif
3185 # ifdef __cplusplus
3186 #  if defined signbit || defined GNULIB_NAMESPACE
3187 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
3188 #   undef signbit
3189 #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
3190   /* This platform's <cmath> possibly defines signbit through a set of inline
3191      functions.  */
3192 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, rpl_signbit, bool)
3193 #    define signbit rpl_signbit
3194 #    define GNULIB_NAMESPACE_LACKS_SIGNBIT 1
3195 #   else
3196 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, signbit, bool)
3197 #   endif
3198 #  endif
3199 # endif
3200 #elif defined GNULIB_POSIXCHECK
3201 # if defined signbit
3202 _GL_WARN_REAL_FLOATING_DECL (signbit);
3203 #  undef signbit
3204 #  define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
3205 # endif
3206 #endif
3207 
3208 _GL_INLINE_HEADER_END
3209 
3210 #endif /* _GL_MATH_H */
3211 #endif /* _GL_INCLUDING_MATH_H */
3212 #endif /* _GL_MATH_H */
3213