105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* A GNU-like <math.h>.
305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Copyright (C) 2002-2003, 2007-2012 Free Software Foundation, Inc.
505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This program is free software: you can redistribute it and/or modify
705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   it under the terms of the GNU General Public License as published by
805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   the Free Software Foundation; either version 3 of the License, or
905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (at your option) any later version.
1005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This program is distributed in the hope that it will be useful,
1205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   but WITHOUT ANY WARRANTY; without even the implied warranty of
1305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   GNU General Public License for more details.
1505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   You should have received a copy of the GNU General Public License
1705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
1805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_MATH_H
2005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if __GNUC__ >= 3
2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#pragma GCC system_header
2305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The include_next requires a split double-inclusion guard.  */
2705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include_next <math.h>
2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_MATH_H
3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_MATH_H
3105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_INLINE_HEADER_BEGIN
3305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_MATH_INLINE
3405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_MATH_INLINE _GL_INLINE
3505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
3605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
3805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_CXXDEFS_H
3905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_CXXDEFS_H
4005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The three most frequent use cases of these macros are:
4205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   * For providing a substitute for a function that is missing on some
4405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     platforms, but is declared and works fine on the platforms on which
4505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     it exists:
4605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #if @GNULIB_FOO@
4805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # if !@HAVE_FOO@
4905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_FUNCDECL_SYS (foo, ...);
5005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # endif
5105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_SYS (foo, ...);
5205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIASWARN (foo);
5305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #elif defined GNULIB_POSIXCHECK
5405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       ...
5505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #endif
5605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
5705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   * For providing a replacement for a function that exists on all platforms,
5805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     but is broken/insufficient and needs to be replaced on some platforms:
5905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #if @GNULIB_FOO@
6105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # if @REPLACE_FOO@
6205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
6305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #   undef foo
6405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #   define foo rpl_foo
6505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  endif
6605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_FUNCDECL_RPL (foo, ...);
6705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_RPL (foo, ...);
6805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # else
6905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_SYS (foo, ...);
7005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # endif
7105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIASWARN (foo);
7205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #elif defined GNULIB_POSIXCHECK
7305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       ...
7405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #endif
7505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
7605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   * For providing a replacement for a function that exists on some platforms
7705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     but is broken/insufficient and needs to be replaced on some of them and
7805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     is additionally either missing or undeclared on some other platforms:
7905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
8005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #if @GNULIB_FOO@
8105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # if @REPLACE_FOO@
8205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
8305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #   undef foo
8405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #   define foo rpl_foo
8505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  endif
8605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_FUNCDECL_RPL (foo, ...);
8705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_RPL (foo, ...);
8805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # else
8905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
9005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_FUNCDECL_SYS (foo, ...);
9105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #  endif
9205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIAS_SYS (foo, ...);
9305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       # endif
9405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _GL_CXXALIASWARN (foo);
9505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #elif defined GNULIB_POSIXCHECK
9605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       ...
9705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       #endif
9805436638acc7c010349a69c3395f1a57c642dc62Ying Wang*/
9905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
10005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_EXTERN_C declaration;
10105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   performs the declaration with C linkage.  */
10205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus
10305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_EXTERN_C extern "C"
10405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
10505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_EXTERN_C extern
10605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
10705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
10805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
10905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declares a replacement function, named rpl_func, with the given prototype,
11005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   consisting of return type, parameters, and attributes.
11105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Example:
11205436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
11305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                  _GL_ARG_NONNULL ((1)));
11405436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
11505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
11605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
11705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
11805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  _GL_EXTERN_C rettype rpl_func parameters_and_attributes
11905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
12005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
12105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declares the system function, named func, with the given prototype,
12205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   consisting of return type, parameters, and attributes.
12305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Example:
12405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
12505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                  _GL_ARG_NONNULL ((1)));
12605436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
12705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
12805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  _GL_EXTERN_C rettype func parameters_and_attributes
12905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
13005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_RPL (func, rettype, parameters);
13105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declares a C++ alias called GNULIB_NAMESPACE::func
13205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
13305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Example:
13405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
13505436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
13605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_CXXALIAS_RPL(func,rettype,parameters) \
13705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
13805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
13905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
14005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                                \
14105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                         \
14205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      rettype (*const func) parameters = ::rpl_func;          \
14305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                         \
14405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
14505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
14605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
14705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
14805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
14905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
15005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
15105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
15205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   except that the C function rpl_func may have a slightly different
15305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declaration.  A cast is used to silence the "invalid conversion" error
15405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   that would otherwise occur.  */
15505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
15605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
15705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                                     \
15805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                              \
15905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      rettype (*const func) parameters =                           \
16005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        reinterpret_cast<rettype(*)parameters>(::rpl_func);        \
16105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                              \
16205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
16305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
16405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
16505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
16605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
16705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
16805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_SYS (func, rettype, parameters);
16905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declares a C++ alias called GNULIB_NAMESPACE::func
17005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   that redirects to the system provided function func, if GNULIB_NAMESPACE
17105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is defined.
17205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Example:
17305436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
17405436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
17505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
17605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* If we were to write
17705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       rettype (*const func) parameters = ::func;
17805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
17905436638acc7c010349a69c3395f1a57c642dc62Ying Wang     better (remove an indirection through a 'static' pointer variable),
18005436638acc7c010349a69c3395f1a57c642dc62Ying Wang     but then the _GL_CXXALIASWARN macro below would cause a warning not only
18105436638acc7c010349a69c3395f1a57c642dc62Ying Wang     for uses of ::func but also for uses of GNULIB_NAMESPACE::func.  */
18205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
18305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                     \
18405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                              \
18505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      static rettype (*func) parameters = ::func;  \
18605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                              \
18705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
18805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
18905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
19005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
19105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
19205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
19305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
19405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
19505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   except that the C function func may have a slightly different declaration.
19605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   A cast is used to silence the "invalid conversion" error that would
19705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   otherwise occur.  */
19805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
19905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
20005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                          \
20105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                   \
20205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      static rettype (*func) parameters =               \
20305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        reinterpret_cast<rettype(*)parameters>(::func); \
20405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                   \
20505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
20605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
20705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
20805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
20905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
21005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
21105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
21205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
21305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   except that the C function is picked among a set of overloaded functions,
21405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   namely the one with rettype2 and parameters2.  Two consecutive casts
21505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   are used to silence the "cannot find a match" and "invalid conversion"
21605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   errors that would otherwise occur.  */
21705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
21805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* The outer cast must be a reinterpret_cast.
21905436638acc7c010349a69c3395f1a57c642dc62Ying Wang     The inner cast: When the function is defined as a set of overloaded
22005436638acc7c010349a69c3395f1a57c642dc62Ying Wang     functions, it works as a static_cast<>, choosing the designated variant.
22105436638acc7c010349a69c3395f1a57c642dc62Ying Wang     When the function is defined as a single variant, it works as a
22205436638acc7c010349a69c3395f1a57c642dc62Ying Wang     reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
22305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
22405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    namespace GNULIB_NAMESPACE                                                \
22505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {                                                                         \
22605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      static rettype (*func) parameters =                                     \
22705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        reinterpret_cast<rettype(*)parameters>(                               \
22805436638acc7c010349a69c3395f1a57c642dc62Ying Wang          (rettype2(*)parameters2)(::func));                                  \
22905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }                                                                         \
23005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
23105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
23205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
23305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
23405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
23505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
23605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIASWARN (func);
23705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   causes a warning to be emitted when ::func is used but not when
23805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
23905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   variants.  */
24005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
24105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN(func) \
24205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
24305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN_1(func,namespace) \
24405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   _GL_CXXALIASWARN_2 (func, namespace)
24505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
24605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   we enable the warning only when not optimizing.  */
24705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !__OPTIMIZE__
24805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN_2(func,namespace) \
24905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_WARN_ON_USE (func, \
25005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                     "The symbol ::" #func " refers to the system function. " \
25105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                     "Use " #namespace "::" #func " instead.")
25205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
25305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN_2(func,namespace) \
25405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     extern __typeof__ (func) func
25505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
25605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN_2(func,namespace) \
25705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_EXTERN_C int _gl_cxxalias_dummy
25805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
25905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
26005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN(func) \
26105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
26205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
26305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
26405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
26505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   causes a warning to be emitted when the given overloaded variant of ::func
26605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is used but not when GNULIB_NAMESPACE::func is used.  */
26705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __cplusplus && defined GNULIB_NAMESPACE
26805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
26905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
27005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                        GNULIB_NAMESPACE)
27105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
27205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
27305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
27405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   we enable the warning only when not optimizing.  */
27505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !__OPTIMIZE__
27605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
27705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
27805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                         "The symbol ::" #func " refers to the system function. " \
27905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                         "Use " #namespace "::" #func " instead.")
28005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
28105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
28205436638acc7c010349a69c3395f1a57c642dc62Ying Wang     extern __typeof__ (func) func
28305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
28405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
28505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     _GL_EXTERN_C int _gl_cxxalias_dummy
28605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
28705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
28805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
28905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    _GL_EXTERN_C int _gl_cxxalias_dummy
29005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
29105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
29205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* _GL_CXXDEFS_H */
29305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
29405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The definition of _GL_ARG_NONNULL is copied here.  */
29505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
29605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   that the values passed as arguments n, ..., m must be non-NULL pointers.
29705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   n = 1 stands for the first argument, n = 2 for the second argument etc.  */
29805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_ARG_NONNULL
29905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
30005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
30105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
30205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_ARG_NONNULL(params)
30305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
30405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
30505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
30605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The definition of _GL_WARN_ON_USE is copied here.  */
30705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_WARN_ON_USE
30805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
30905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
31005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* A compiler attribute is available in gcc versions 4.3.0 and later.  */
31105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE(function, message) \
31205436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern __typeof__ (function) function __attribute__ ((__warning__ (message)))
31305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
31405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Verify the existence of the function.  */
31505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE(function, message) \
31605436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern __typeof__ (function) function
31705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else /* Unsupported.  */
31805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE(function, message) \
31905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_EXTERN_C int _gl_warn_on_use
32005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
32105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
32205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
32305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
32405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   is like _GL_WARN_ON_USE (function, "string"), except that the function is
32505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declared with the given prototype, consisting of return type, parameters,
32605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   and attributes.
32705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
32805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   not work in this case.  */
32905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_WARN_ON_USE_CXX
33005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
33105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
33205436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern rettype function parameters_and_attributes \
33305436638acc7c010349a69c3395f1a57c642dc62Ying Wang     __attribute__ ((__warning__ (msg)))
33405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
33505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Verify the existence of the function.  */
33605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
33705436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern rettype function parameters_and_attributes
33805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else /* Unsupported.  */
33905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
34005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_EXTERN_C int _gl_warn_on_use
34105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
34205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
34305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
34405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* _GL_WARN_EXTERN_C declaration;
34505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   performs the declaration with C linkage.  */
34605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_WARN_EXTERN_C
34705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined __cplusplus
34805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_EXTERN_C extern "C"
34905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
35005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define _GL_WARN_EXTERN_C extern
35105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
35205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
35305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
35405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef __cplusplus
35505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Helper macros to define type-generic function FUNC as overloaded functions,
35605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   rather than as macros like in C.  POSIX declares these with an argument of
35705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   real-floating (that is, one of float, double, or long double).  */
35805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \
35905436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic inline int                                                   \
36005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_gl_cxx_ ## func ## f (float f)                                     \
36105436638acc7c010349a69c3395f1a57c642dc62Ying Wang{                                                                   \
36205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return func (f);                                                  \
36305436638acc7c010349a69c3395f1a57c642dc62Ying Wang}                                                                   \
36405436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic inline int                                                   \
36505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_gl_cxx_ ## func ## d (double d)                                    \
36605436638acc7c010349a69c3395f1a57c642dc62Ying Wang{                                                                   \
36705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return func (d);                                                  \
36805436638acc7c010349a69c3395f1a57c642dc62Ying Wang}                                                                   \
36905436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic inline int                                                   \
37005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_gl_cxx_ ## func ## l (long double l)                               \
37105436638acc7c010349a69c3395f1a57c642dc62Ying Wang{                                                                   \
37205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return func (l);                                                  \
37305436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
37405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \
37505436638acc7c010349a69c3395f1a57c642dc62Ying Wanginline int                                                          \
37605436638acc7c010349a69c3395f1a57c642dc62Ying Wangfunc (float f)                                                      \
37705436638acc7c010349a69c3395f1a57c642dc62Ying Wang{                                                                   \
37805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return _gl_cxx_ ## func ## f (f);                                 \
37905436638acc7c010349a69c3395f1a57c642dc62Ying Wang}                                                                   \
38005436638acc7c010349a69c3395f1a57c642dc62Ying Wanginline int                                                          \
38105436638acc7c010349a69c3395f1a57c642dc62Ying Wangfunc (double d)                                                     \
38205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{                                                                   \
38305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return _gl_cxx_ ## func ## d (d);                                 \
38405436638acc7c010349a69c3395f1a57c642dc62Ying Wang}                                                                   \
38505436638acc7c010349a69c3395f1a57c642dc62Ying Wanginline int                                                          \
38605436638acc7c010349a69c3395f1a57c642dc62Ying Wangfunc (long double l)                                                \
38705436638acc7c010349a69c3395f1a57c642dc62Ying Wang{                                                                   \
38805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return _gl_cxx_ ## func ## l (l);                                 \
38905436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
39005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
39105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
39205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Helper macros to define a portability warning for the
39305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   classification macro FUNC called with VALUE.  POSIX declares the
39405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   classification macros with an argument of real-floating (that is,
39505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   one of float, double, or long double).  */
39605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_WARN_REAL_FLOATING_DECL(func) \
39705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_INLINE int                                                 \
39805436638acc7c010349a69c3395f1a57c642dc62Ying Wangrpl_ ## func ## f (float f)                                         \
39905436638acc7c010349a69c3395f1a57c642dc62Ying Wang{                                                                   \
40005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return func (f);                                                  \
40105436638acc7c010349a69c3395f1a57c642dc62Ying Wang}                                                                   \
40205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_INLINE int                                                 \
40305436638acc7c010349a69c3395f1a57c642dc62Ying Wangrpl_ ## func ## d (double d)                                        \
40405436638acc7c010349a69c3395f1a57c642dc62Ying Wang{                                                                   \
40505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return func (d);                                                  \
40605436638acc7c010349a69c3395f1a57c642dc62Ying Wang}                                                                   \
40705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_INLINE int                                                 \
40805436638acc7c010349a69c3395f1a57c642dc62Ying Wangrpl_ ## func ## l (long double l)                                   \
40905436638acc7c010349a69c3395f1a57c642dc62Ying Wang{                                                                   \
41005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return func (l);                                                  \
41105436638acc7c010349a69c3395f1a57c642dc62Ying Wang}                                                                   \
41205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (rpl_ ## func ## f, #func " is unportable - "       \
41305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module " #func " for portability");    \
41405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (rpl_ ## func ## d, #func " is unportable - "       \
41505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module " #func " for portability");    \
41605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - "       \
41705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module " #func " for portability")
41805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
41905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value)     \
42005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value)  \
42105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   : rpl_ ## func ## l (value))
42205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
42305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
42405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
42505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Pull in a function that fixes the 'int' to 'long double' conversion
42605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   of glibc 2.7.  */
42705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C void _Qp_itoq (long double *, int);
42805436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
42905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
43005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
43105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
43205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* POSIX allows platforms that don't support NAN.  But all major
43305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   machines in the past 15 years have supported something close to
43405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   IEEE NaN, so we define this unconditionally.  We also must define
43505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   it on platforms like Solaris 10, where NAN is present but defined
43605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   as a function pointer rather than a floating point constant.  */
43705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !defined NAN || 0
43805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !GNULIB_defined_NAN
43905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef NAN
44005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
44105436638acc7c010349a69c3395f1a57c642dc62Ying Wang     choke on the expression 0.0 / 0.0.  */
44205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if defined __DECC || defined _MSC_VER
44305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_INLINE float
44405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_NaN ()
44505436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
44605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  static float zero = 0.0f;
44705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  return zero / zero;
44805436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
44905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define NAN (_NaN())
45005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  else
45105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define NAN (0.0f / 0.0f)
45205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
45305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define GNULIB_defined_NAN 1
45405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
45505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
45605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
45705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Solaris 10 defines HUGE_VAL, but as a function pointer rather
45805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   than a floating point constant.  */
45905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
46005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef HUGE_VALF
46105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define HUGE_VALF (1.0f / 0.0f)
46205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef HUGE_VAL
46305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define HUGE_VAL (1.0 / 0.0)
46405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef HUGE_VALL
46505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define HUGE_VALL (1.0L / 0.0L)
46605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
46705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
46805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* HUGE_VALF is a 'float' Infinity.  */
46905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef HUGE_VALF
47005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined _MSC_VER
47105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f.  */
47205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define HUGE_VALF (1e25f * 1e25f)
47305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
47405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define HUGE_VALF (1.0f / 0.0f)
47505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
47605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
47705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
47805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* HUGE_VAL is a 'double' Infinity.  */
47905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef HUGE_VAL
48005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined _MSC_VER
48105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0.  */
48205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define HUGE_VAL (1e250 * 1e250)
48305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
48405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define HUGE_VAL (1.0 / 0.0)
48505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
48605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
48705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
48805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* HUGE_VALL is a 'long double' Infinity.  */
48905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef HUGE_VALL
49005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined _MSC_VER
49105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L.  */
49205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define HUGE_VALL (1e250L * 1e250L)
49305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
49405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define HUGE_VALL (1.0L / 0.0L)
49505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
49605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
49705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
49805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
49905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined.  */
50005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !(defined FP_ILOGB0 && defined FP_ILOGBNAN)
50105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined __NetBSD__ || defined __sgi
50205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* NetBSD, IRIX 6.5: match what ilogb() does */
50305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
50405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
50505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _AIX
50605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */
50705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
50805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define FP_ILOGBNAN 2147483647 /* INT_MAX */
50905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined __sun
51005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Solaris 9: match what ilogb() does */
51105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
51205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define FP_ILOGBNAN 2147483647 /* INT_MAX */
51305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
51405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Gnulib defined values.  */
51505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
51605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
51705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
51805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
51905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
52005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
52105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
52205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
52305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef acosf
52405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (acosf, float, (float x));
52505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
52605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (acosf, float, (float x));
52705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (acosf);
52805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
52905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef acosf
53005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ACOSF
53105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (acosf, "acosf is unportable - "
53205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module acosf for portability");
53305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
53405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
53505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
53605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
53705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1 || !1
53805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef acosl
53905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (acosl, long double, (long double x));
54005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
54105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (acosl, long double, (long double x));
54205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (acosl);
54305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
54405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef acosl
54505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ACOSL
54605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (acosl, "acosl is unportable - "
54705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module acosl for portability");
54805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
54905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
55005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
55105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
55205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
55305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
55405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef asinf
55505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (asinf, float, (float x));
55605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
55705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (asinf, float, (float x));
55805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (asinf);
55905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
56005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef asinf
56105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ASINF
56205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (asinf, "asinf is unportable - "
56305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module asinf for portability");
56405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
56505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
56605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
56705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
56805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1 || !1
56905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef asinl
57005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (asinl, long double, (long double x));
57105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
57205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (asinl, long double, (long double x));
57305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (asinl);
57405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
57505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef asinl
57605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ASINL
57705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (asinl, "asinl is unportable - "
57805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module asinl for portability");
57905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
58005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
58105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
58205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
58305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
58405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
58505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef atanf
58605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (atanf, float, (float x));
58705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
58805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (atanf, float, (float x));
58905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (atanf);
59005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
59105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef atanf
59205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ATANF
59305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (atanf, "atanf is unportable - "
59405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module atanf for portability");
59505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
59605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
59705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
59805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
59905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1 || !1
60005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef atanl
60105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (atanl, long double, (long double x));
60205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
60305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (atanl, long double, (long double x));
60405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (atanl);
60505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
60605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef atanl
60705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ATANL
60805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (atanl, "atanl is unportable - "
60905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module atanl for portability");
61005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
61105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
61205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
61305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
61405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
61505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
61605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef atan2f
61705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
61805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
61905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
62005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (atan2f);
62105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
62205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef atan2f
62305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ATAN2F
62405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
62505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module atan2f for portability");
62605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
62705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
62805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
62905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
63005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
63105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
63205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
63305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef cbrtf
63405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define cbrtf rpl_cbrtf
63505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
63605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (cbrtf, float, (float x));
63705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (cbrtf, float, (float x));
63805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
63905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
64005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (cbrtf, float, (float x));
64105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
64205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (cbrtf, float, (float x));
64305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
64405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (cbrtf);
64505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
64605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef cbrtf
64705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_CBRTF
64805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
64905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module cbrtf for portability");
65005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
65105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
65205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
65305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
65405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
65505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (cbrt, double, (double x));
65605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
65705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (cbrt, double, (double x));
65805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (cbrt);
65905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
66005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef cbrt
66105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_CBRT
66205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
66305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module cbrt for portability");
66405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
66505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
66605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
66705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
66805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
66905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
67005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef cbrtl
67105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define cbrtl rpl_cbrtl
67205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
67305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
67405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
67505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
67605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
67705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
67805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
67905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
68005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
68105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (cbrtl);
68205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
68305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef cbrtl
68405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_CBRTL
68505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
68605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module cbrtl for portability");
68705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
68805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
68905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
69005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
69105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
69205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
69305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
69405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef ceilf
69505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define ceilf rpl_ceilf
69605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
69705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (ceilf, float, (float x));
69805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (ceilf, float, (float x));
69905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
70005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
70105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef ceilf
70205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (ceilf, float, (float x));
70305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
70405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (ceilf, float, (float x));
70505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
70605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (ceilf);
70705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
70805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef ceilf
70905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_CEILF
71005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
71105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module ceilf for portability");
71205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
71305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
71405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
71505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
71605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
71705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
71805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define ceil rpl_ceil
71905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
72005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (ceil, double, (double x));
72105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (ceil, double, (double x));
72205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
72305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (ceil, double, (double x));
72405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
72505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (ceil);
72605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
72705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
72805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
72905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
73005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
73105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef ceill
73205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define ceill rpl_ceill
73305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
73405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (ceill, long double, (long double x));
73505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (ceill, long double, (long double x));
73605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
73705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
73805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef ceill
73905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (ceill, long double, (long double x));
74005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
74105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (ceill, long double, (long double x));
74205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
74305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (ceill);
74405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
74505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef ceill
74605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_CEILL
74705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (ceill, "ceill is unportable - "
74805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module ceill for portability");
74905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
75005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
75105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
75205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
75305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
75405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
75505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
75605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
75705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
75805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (copysignf);
75905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
76005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef copysignf
76105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_COPYSIGNF
76205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
76305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module copysignf for portability");
76405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
76505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
76605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
76705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
76805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
76905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (copysign, double, (double x, double y));
77005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
77105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (copysign, double, (double x, double y));
77205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (copysign);
77305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
77405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef copysign
77505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_COPYSIGN
77605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (copysign, "copysign is unportable - "
77705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module copysign for portability");
77805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
77905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
78005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
78105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
78205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
78305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
78405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
78505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
78605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (copysignl);
78705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
78805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef copysignl
78905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_COPYSIGNL
79005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (copysign, "copysignl is unportable - "
79105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module copysignl for portability");
79205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
79305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
79405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
79505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
79605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
79705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
79805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef cosf
79905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (cosf, float, (float x));
80005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
80105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (cosf, float, (float x));
80205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (cosf);
80305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
80405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef cosf
80505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_COSF
80605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (cosf, "cosf is unportable - "
80705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module cosf for portability");
80805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
80905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
81005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
81105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
81205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1 || !1
81305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef cosl
81405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (cosl, long double, (long double x));
81505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
81605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (cosl, long double, (long double x));
81705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (cosl);
81805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
81905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef cosl
82005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_COSL
82105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (cosl, "cosl is unportable - "
82205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module cosl for portability");
82305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
82405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
82505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
82605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
82705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
82805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
82905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef coshf
83005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (coshf, float, (float x));
83105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
83205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (coshf, float, (float x));
83305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (coshf);
83405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
83505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef coshf
83605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_COSHF
83705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (coshf, "coshf is unportable - "
83805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module coshf for portability");
83905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
84005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
84105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
84205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
84305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
84405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
84505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef expf
84605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (expf, float, (float x));
84705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
84805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (expf, float, (float x));
84905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (expf);
85005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
85105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef expf
85205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_EXPF
85305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (expf, "expf is unportable - "
85405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module expf for portability");
85505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
85605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
85705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
85805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
85905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1 || !1
86005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef expl
86105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (expl, long double, (long double x));
86205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
86305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (expl, long double, (long double x));
86405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (expl);
86505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
86605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef expl
86705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_EXPL
86805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (expl, "expl is unportable - "
86905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module expl for portability");
87005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
87105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
87205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
87305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
87405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
87505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
87605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (exp2f, float, (float x));
87705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
87805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (exp2f, float, (float x));
87905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (exp2f);
88005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
88105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef exp2f
88205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_EXP2F
88305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
88405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module exp2f for portability");
88505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
88605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
88705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
88805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
88905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
89005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
89105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef exp2
89205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define exp2 rpl_exp2
89305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
89405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (exp2, double, (double x));
89505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (exp2, double, (double x));
89605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
89705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
89805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (exp2, double, (double x));
89905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
90005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (exp2, double, (double x));
90105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
90205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (exp2);
90305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
90405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef exp2
90505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_EXP2
90605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (exp2, "exp2 is unportable - "
90705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module exp2 for portability");
90805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
90905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
91005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
91105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
91205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
91305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
91405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef exp2l
91505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define exp2l rpl_exp2l
91605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
91705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (exp2l, long double, (long double x));
91805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (exp2l, long double, (long double x));
91905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
92005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
92105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef exp2l
92205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (exp2l, long double, (long double x));
92305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
92405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (exp2l, long double, (long double x));
92505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
92605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (exp2l);
92705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
92805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef exp2l
92905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_EXP2L
93005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
93105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module exp2l for portability");
93205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
93305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
93405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
93505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
93605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
93705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
93805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
93905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef expm1f
94005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define expm1f rpl_expm1f
94105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
94205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (expm1f, float, (float x));
94305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (expm1f, float, (float x));
94405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
94505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
94605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (expm1f, float, (float x));
94705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
94805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (expm1f, float, (float x));
94905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
95005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (expm1f);
95105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
95205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef expm1f
95305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_EXPM1F
95405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
95505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module expm1f for portability");
95605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
95705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
95805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
95905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
96005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
96105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
96205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef expm1
96305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define expm1 rpl_expm1
96405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
96505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (expm1, double, (double x));
96605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (expm1, double, (double x));
96705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
96805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
96905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (expm1, double, (double x));
97005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
97105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (expm1, double, (double x));
97205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
97305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (expm1);
97405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
97505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef expm1
97605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_EXPM1
97705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (expm1, "expm1 is unportable - "
97805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module expm1 for portability");
97905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
98005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
98105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
98205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
98305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
98405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef expm1l
98505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (expm1l, long double, (long double x));
98605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
98705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (expm1l, long double, (long double x));
98805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (expm1l);
98905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
99005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef expm1l
99105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_EXPM1L
99205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
99305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module expm1l for portability");
99405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
99505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
99605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
99705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
99805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
99905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
100005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef fabsf
100105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (fabsf, float, (float x));
100205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
100305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (fabsf, float, (float x));
100405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (fabsf);
100505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
100605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef fabsf
100705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FABSF
100805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
100905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module fabsf for portability");
101005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
101105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
101205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
101305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
101405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
101505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
101605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fabsl
101705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define fabsl rpl_fabsl
101805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
101905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (fabsl, long double, (long double x));
102005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (fabsl, long double, (long double x));
102105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
102205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
102305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fabsl
102405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (fabsl, long double, (long double x));
102505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
102605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (fabsl, long double, (long double x));
102705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
102805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (fabsl);
102905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
103005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef fabsl
103105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FABSL
103205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
103305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module fabsl for portability");
103405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
103505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
103605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
103705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
103805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
103905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
104005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
104105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef floorf
104205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define floorf rpl_floorf
104305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
104405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (floorf, float, (float x));
104505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (floorf, float, (float x));
104605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
104705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
104805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef floorf
104905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (floorf, float, (float x));
105005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
105105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (floorf, float, (float x));
105205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
105305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (floorf);
105405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
105505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef floorf
105605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FLOORF
105705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (floorf, "floorf is unportable - "
105805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module floorf for portability");
105905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
106005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
106105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
106205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
106305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
106405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
106505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define floor rpl_floor
106605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
106705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (floor, double, (double x));
106805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (floor, double, (double x));
106905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
107005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (floor, double, (double x));
107105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
107205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (floor);
107305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
107405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
107505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
107605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
107705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
107805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef floorl
107905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define floorl rpl_floorl
108005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
108105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (floorl, long double, (long double x));
108205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (floorl, long double, (long double x));
108305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
108405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
108505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef floorl
108605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (floorl, long double, (long double x));
108705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
108805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (floorl, long double, (long double x));
108905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
109005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (floorl);
109105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
109205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef floorl
109305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FLOORL
109405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (floorl, "floorl is unportable - "
109505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module floorl for portability");
109605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
109705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
109805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
109905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
110005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
110105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
110205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
110305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fmaf
110405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define fmaf rpl_fmaf
110505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
110605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
110705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
110805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
110905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
111005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
111105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
111205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
111305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
111405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (fmaf);
111505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
111605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef fmaf
111705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FMAF
111805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
111905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module fmaf for portability");
112005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
112105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
112205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
112305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
112405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
112505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
112605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fma
112705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define fma rpl_fma
112805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
112905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
113005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
113105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
113205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
113305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
113405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
113505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
113605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
113705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (fma);
113805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
113905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef fma
114005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FMA
114105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (fma, "fma is unportable - "
114205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module fma for portability");
114305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
114405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
114505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
114605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
114705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
114805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
114905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fmal
115005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define fmal rpl_fmal
115105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
115205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (fmal, long double,
115305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (long double x, long double y, long double z));
115405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (fmal, long double,
115505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (long double x, long double y, long double z));
115605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
115705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
115805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fmal
115905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (fmal, long double,
116005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (long double x, long double y, long double z));
116105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
116205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (fmal, long double,
116305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (long double x, long double y, long double z));
116405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
116505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (fmal);
116605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
116705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef fmal
116805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FMAL
116905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (fmal, "fmal is unportable - "
117005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module fmal for portability");
117105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
117205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
117305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
117405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
117505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
117605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
117705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
117805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fmodf
117905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define fmodf rpl_fmodf
118005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
118105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (fmodf, float, (float x, float y));
118205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (fmodf, float, (float x, float y));
118305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
118405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
118505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fmodf
118605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (fmodf, float, (float x, float y));
118705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
118805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
118905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
119005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (fmodf);
119105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
119205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef fmodf
119305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FMODF
119405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
119505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module fmodf for portability");
119605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
119705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
119805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
119905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
120005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
120105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
120205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fmod
120305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define fmod rpl_fmod
120405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
120505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (fmod, double, (double x, double y));
120605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (fmod, double, (double x, double y));
120705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
120805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (fmod, double, (double x, double y));
120905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
121005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (fmod);
121105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
121205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef fmod
121305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FMOD
121405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (fmod, "fmod has portability problems - "
121505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module fmod for portability");
121605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
121705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
121805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
121905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
122005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
122105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
122205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fmodl
122305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define fmodl rpl_fmodl
122405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
122505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y));
122605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y));
122705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
122805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
122905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef fmodl
123005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
123105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
123205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
123305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
123405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (fmodl);
123505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
123605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef fmodl
123705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FMODL
123805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
123905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module fmodl for portability");
124005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
124105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
124205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
124305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
124405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Write x as
124505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     x = mantissa * 2^exp
124605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   where
124705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
124805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     If x is zero: mantissa = x, exp = 0.
124905436638acc7c010349a69c3395f1a57c642dc62Ying Wang     If x is infinite or NaN: mantissa = x, exp unspecified.
125005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Store exp in *EXPPTR and return mantissa.  */
125105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
125205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
125305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
125405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef frexpf
125505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define frexpf rpl_frexpf
125605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
125705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
125805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr));
125905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
126005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
126105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef frexpf
126205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
126305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
126405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
126505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
126605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (frexpf);
126705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
126805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef frexpf
126905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FREXPF
127005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
127105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module frexpf for portability");
127205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
127305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
127405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
127505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Write x as
127605436638acc7c010349a69c3395f1a57c642dc62Ying Wang     x = mantissa * 2^exp
127705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   where
127805436638acc7c010349a69c3395f1a57c642dc62Ying Wang     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
127905436638acc7c010349a69c3395f1a57c642dc62Ying Wang     If x is zero: mantissa = x, exp = 0.
128005436638acc7c010349a69c3395f1a57c642dc62Ying Wang     If x is infinite or NaN: mantissa = x, exp unspecified.
128105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Store exp in *EXPPTR and return mantissa.  */
128205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1
128305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
128405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
128505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define frexp rpl_frexp
128605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
128705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
128805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
128905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
129005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
129105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
129205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (frexp);
129305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
129405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef frexp
129505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Assume frexp is always declared.  */
129605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (frexp, "frexp is unportable - "
129705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module frexp for portability");
129805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
129905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
130005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Write x as
130105436638acc7c010349a69c3395f1a57c642dc62Ying Wang     x = mantissa * 2^exp
130205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   where
130305436638acc7c010349a69c3395f1a57c642dc62Ying Wang     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
130405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     If x is zero: mantissa = x, exp = 0.
130505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     If x is infinite or NaN: mantissa = x, exp unspecified.
130605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Store exp in *EXPPTR and return mantissa.  */
130705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1 && 0
130805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
130905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef frexpl
131005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define frexpl rpl_frexpl
131105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
131205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (frexpl, long double,
131305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
131405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
131505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
131605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
131705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (frexpl, long double,
131805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
131905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
132005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
132105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
132205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
132305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
132405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1 && !(0 && !1)
132505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (frexpl);
132605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
132705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !1 && defined GNULIB_POSIXCHECK
132805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef frexpl
132905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_FREXPL
133005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
133105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module frexpl for portability");
133205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
133305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
133405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
133505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
133605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Return sqrt(x^2+y^2).  */
133705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
133805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
133905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
134005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef hypotf
134105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define hypotf rpl_hypotf
134205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
134305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
134405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
134505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
134605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
134705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
134805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
134905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
135005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
135105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (hypotf);
135205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
135305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef hypotf
135405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_HYPOTF
135505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
135605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module hypotf for portability");
135705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
135805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
135905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
136005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Return sqrt(x^2+y^2).  */
136105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
136205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
136305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
136405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef hypot
136505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define hypot rpl_hypot
136605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
136705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (hypot, double, (double x, double y));
136805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (hypot, double, (double x, double y));
136905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
137005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (hypot, double, (double x, double y));
137105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
137205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (hypot);
137305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
137405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef hypot
137505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_HYPOT
137605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
137705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module hypot for portability");
137805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
137905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
138005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
138105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Return sqrt(x^2+y^2).  */
138205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
138305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
138405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
138505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef hypotl
138605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define hypotl rpl_hypotl
138705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
138805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y));
138905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y));
139005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
139105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
139205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
139305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
139405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
139505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
139605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (hypotl);
139705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
139805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef hypotl
139905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_HYPOTL
140005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
140105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module hypotl for portability");
140205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
140305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
140405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
140505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
140605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
140705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
140805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
140905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef ilogbf
141005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define ilogbf rpl_ilogbf
141105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
141205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (ilogbf, int, (float x));
141305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (ilogbf, int, (float x));
141405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
141505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
141605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (ilogbf, int, (float x));
141705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
141805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (ilogbf, int, (float x));
141905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
142005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (ilogbf);
142105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
142205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef ilogbf
142305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ILOGBF
142405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
142505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module ilogbf for portability");
142605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
142705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
142805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
142905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
143005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
143105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
143205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef ilogb
143305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define ilogb rpl_ilogb
143405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
143505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (ilogb, int, (double x));
143605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (ilogb, int, (double x));
143705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
143805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
143905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (ilogb, int, (double x));
144005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
144105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (ilogb, int, (double x));
144205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
144305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (ilogb);
144405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
144505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef ilogb
144605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ILOGB
144705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
144805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module ilogb for portability");
144905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
145005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
145105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
145205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
145305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
145405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (ilogbl, int, (long double x));
145505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
145605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (ilogbl, int, (long double x));
145705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (ilogbl);
145805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
145905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef ilogbl
146005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ILOGBL
146105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
146205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module ilogbl for portability");
146305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
146405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
146505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
146605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
146705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Return x * 2^exp.  */
146805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
146905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
147005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef ldexpf
147105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
147205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
147305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
147405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (ldexpf);
147505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
147605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef ldexpf
147705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LDEXPF
147805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
147905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module ldexpf for portability");
148005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
148105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
148205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
148305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Return x * 2^exp.  */
148405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1 && 0
148505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
148605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef ldexpl
148705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define ldexpl rpl_ldexpl
148805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
148905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
149005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
149105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
149205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
149305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
149405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
149505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
149605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
149705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
149805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
149905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1
150005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (ldexpl);
150105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
150205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !1 && defined GNULIB_POSIXCHECK
150305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef ldexpl
150405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LDEXPL
150505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
150605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module ldexpl for portability");
150705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
150805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
150905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
151005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
151105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
151205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
151305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
151405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef logf
151505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define logf rpl_logf
151605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
151705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (logf, float, (float x));
151805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (logf, float, (float x));
151905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
152005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
152105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef logf
152205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (logf, float, (float x));
152305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
152405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (logf, float, (float x));
152505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
152605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (logf);
152705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
152805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef logf
152905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOGF
153005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (logf, "logf is unportable - "
153105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module logf for portability");
153205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
153305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
153405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
153505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
153605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
153705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
153805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log
153905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log rpl_log
154005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
154105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log, double, (double x));
154205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log, double, (double x));
154305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
154405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log, double, (double x));
154505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
154605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log);
154705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
154805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log
154905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG
155005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log, "log has portability problems - "
155105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log for portability");
155205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
155305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
155405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
155505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
155605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
155705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
155805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef logl
155905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define logl rpl_logl
156005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
156105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (logl, long double, (long double x));
156205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (logl, long double, (long double x));
156305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
156405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1 || !1
156505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef logl
156605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (logl, long double, (long double x));
156705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
156805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (logl, long double, (long double x));
156905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
157005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (logl);
157105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
157205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef logl
157305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOGL
157405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (logl, "logl is unportable - "
157505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module logl for portability");
157605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
157705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
157805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
157905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
158005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
158105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
158205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
158305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log10f
158405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log10f rpl_log10f
158505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
158605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log10f, float, (float x));
158705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log10f, float, (float x));
158805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
158905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
159005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log10f
159105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (log10f, float, (float x));
159205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
159305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log10f, float, (float x));
159405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
159505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log10f);
159605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
159705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log10f
159805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG10F
159905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log10f, "log10f is unportable - "
160005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log10f for portability");
160105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
160205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
160305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
160405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
160505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
160605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
160705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log10
160805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log10 rpl_log10
160905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
161005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log10, double, (double x));
161105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log10, double, (double x));
161205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
161305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log10, double, (double x));
161405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
161505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log10);
161605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
161705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log10
161805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG10
161905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log10, "log10 has portability problems - "
162005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log10 for portability");
162105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
162205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
162305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
162405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
162505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
162605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
162705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log10l
162805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log10l rpl_log10l
162905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
163005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log10l, long double, (long double x));
163105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log10l, long double, (long double x));
163205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
163305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1 || !1
163405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log10l
163505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (log10l, long double, (long double x));
163605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
163705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log10l, long double, (long double x));
163805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
163905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log10l);
164005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
164105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log10l
164205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG10L
164305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log10l, "log10l is unportable - "
164405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log10l for portability");
164505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
164605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
164705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
164805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
164905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
165005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
165105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
165205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log1pf
165305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log1pf rpl_log1pf
165405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
165505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log1pf, float, (float x));
165605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log1pf, float, (float x));
165705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
165805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
165905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (log1pf, float, (float x));
166005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
166105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log1pf, float, (float x));
166205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
166305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log1pf);
166405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
166505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log1pf
166605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG1PF
166705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
166805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log1pf for portability");
166905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
167005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
167105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
167205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
167305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
167405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
167505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log1p
167605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log1p rpl_log1p
167705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
167805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log1p, double, (double x));
167905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log1p, double, (double x));
168005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
168105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
168205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (log1p, double, (double x));
168305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
168405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log1p, double, (double x));
168505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
168605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log1p);
168705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
168805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log1p
168905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG1P
169005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log1p, "log1p has portability problems - "
169105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log1p for portability");
169205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
169305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
169405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
169505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
169605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
169705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
169805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log1pl
169905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log1pl rpl_log1pl
170005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
170105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log1pl, long double, (long double x));
170205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log1pl, long double, (long double x));
170305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
170405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
170505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (log1pl, long double, (long double x));
170605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
170705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log1pl, long double, (long double x));
170805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
170905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log1pl);
171005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
171105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log1pl
171205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG1PL
171305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
171405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log1pl for portability");
171505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
171605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
171705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
171805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
171905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
172005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
172105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
172205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log2f
172305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log2f rpl_log2f
172405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
172505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log2f, float, (float x));
172605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log2f, float, (float x));
172705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
172805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
172905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log2f
173005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (log2f, float, (float x));
173105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
173205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log2f, float, (float x));
173305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
173405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log2f);
173505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
173605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log2f
173705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG2F
173805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log2f, "log2f is unportable - "
173905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log2f for portability");
174005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
174105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
174205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
174305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
174405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
174505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
174605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log2
174705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log2 rpl_log2
174805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
174905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log2, double, (double x));
175005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log2, double, (double x));
175105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
175205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
175305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log2
175405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (log2, double, (double x));
175505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
175605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log2, double, (double x));
175705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
175805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log2);
175905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
176005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log2
176105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG2
176205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log2, "log2 is unportable - "
176305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log2 for portability");
176405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
176505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
176605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
176705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
176805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
176905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
177005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef log2l
177105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define log2l rpl_log2l
177205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
177305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (log2l, long double, (long double x));
177405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (log2l, long double, (long double x));
177505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
177605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
177705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (log2l, long double, (long double x));
177805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
177905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (log2l, long double, (long double x));
178005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
178105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (log2l);
178205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
178305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef log2l
178405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOG2L
178505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (log2l, "log2l is unportable - "
178605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module log2l for portability");
178705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
178805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
178905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
179005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
179105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
179205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
179305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
179405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef logbf
179505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define logbf rpl_logbf
179605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
179705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (logbf, float, (float x));
179805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (logbf, float, (float x));
179905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
180005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
180105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (logbf, float, (float x));
180205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
180305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (logbf, float, (float x));
180405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
180505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (logbf);
180605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
180705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef logbf
180805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOGBF
180905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (logbf, "logbf is unportable - "
181005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module logbf for portability");
181105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
181205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
181305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
181405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
181505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
181605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
181705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef logb
181805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define logb rpl_logb
181905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
182005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (logb, double, (double x));
182105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (logb, double, (double x));
182205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
182305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
182405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (logb, double, (double x));
182505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
182605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (logb, double, (double x));
182705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
182805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (logb);
182905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
183005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef logb
183105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOGB
183205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (logb, "logb is unportable - "
183305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module logb for portability");
183405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
183505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
183605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
183705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
183805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
183905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
184005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef logbl
184105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define logbl rpl_logbl
184205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
184305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (logbl, long double, (long double x));
184405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (logbl, long double, (long double x));
184505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
184605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
184705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (logbl, long double, (long double x));
184805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
184905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (logbl, long double, (long double x));
185005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
185105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (logbl);
185205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
185305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef logbl
185405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_LOGBL
185505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (logbl, "logbl is unportable - "
185605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module logbl for portability");
185705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
185805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
185905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
186005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
186105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
186205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
186305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
186405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef modff
186505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define modff rpl_modff
186605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
186705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
186805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (modff, float, (float x, float *iptr));
186905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
187005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
187105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef modff
187205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
187305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
187405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
187505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
187605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (modff);
187705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
187805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef modff
187905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_MODFF
188005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (modff, "modff is unportable - "
188105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module modff for portability");
188205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
188305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
188405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
188505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
188605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
188705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
188805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef modf
188905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define modf rpl_modf
189005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
189105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2)));
189205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
189305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
189405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
189505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
189605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (modf);
189705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
189805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef modf
189905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_MODF
190005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (modf, "modf has portability problems - "
190105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module modf for portability");
190205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
190305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
190405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
190505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
190605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
190705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
190805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef modfl
190905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define modfl rpl_modfl
191005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
191105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr)
191205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                      _GL_ARG_NONNULL ((2)));
191305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr));
191405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
191505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
191605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef modfl
191705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
191805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                                      _GL_ARG_NONNULL ((2)));
191905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
192005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
192105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
192205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (modfl);
192305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
192405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef modfl
192505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_MODFL
192605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (modfl, "modfl is unportable - "
192705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module modfl for portability");
192805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
192905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
193005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
193105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
193205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
193305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
193405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef powf
193505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (powf, float, (float x, float y));
193605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
193705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (powf, float, (float x, float y));
193805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (powf);
193905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
194005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef powf
194105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_POWF
194205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (powf, "powf is unportable - "
194305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module powf for portability");
194405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
194505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
194605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
194705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
194805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
194905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
195005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
195105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef remainderf
195205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define remainderf rpl_remainderf
195305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
195405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (remainderf, float, (float x, float y));
195505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (remainderf, float, (float x, float y));
195605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
195705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
195805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (remainderf, float, (float x, float y));
195905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
196005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
196105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
196205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (remainderf);
196305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
196405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef remainderf
196505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_REMAINDERF
196605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
196705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module remainderf for portability");
196805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
196905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
197005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
197105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
197205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
197305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
197405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef remainder
197505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define remainder rpl_remainder
197605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
197705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (remainder, double, (double x, double y));
197805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (remainder, double, (double x, double y));
197905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
198005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1 || !1
198105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (remainder, double, (double x, double y));
198205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
198305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (remainder, double, (double x, double y));
198405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
198505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (remainder);
198605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
198705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef remainder
198805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_REMAINDER
198905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (remainder, "remainder is unportable - "
199005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module remainder for portability");
199105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
199205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
199305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
199405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
199505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
199605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
199705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef remainderl
199805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define remainderl rpl_remainderl
199905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
200005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y));
200105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
200205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
200305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
200405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef remainderl
200505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
200605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
200705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
200805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
200905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (remainderl);
201005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
201105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef remainderl
201205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_REMAINDERL
201305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
201405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module remainderl for portability");
201505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
201605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
201705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
201805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
201905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
202005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
202105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (rintf, float, (float x));
202205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
202305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (rintf, float, (float x));
202405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (rintf);
202505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
202605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef rintf
202705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_RINTF
202805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (rintf, "rintf is unportable - "
202905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module rintf for portability");
203005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
203105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
203205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
203305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
203405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
203505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (rint, double, (double x));
203605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
203705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (rint, double, (double x));
203805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (rint);
203905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
204005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef rint
204105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_RINT
204205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (rint, "rint is unportable - "
204305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module rint for portability");
204405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
204505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
204605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
204705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
204805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
204905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (rintl, long double, (long double x));
205005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
205105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (rintl, long double, (long double x));
205205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (rintl);
205305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
205405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef rintl
205505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_RINTL
205605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (rintl, "rintl is unportable - "
205705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module rintl for portability");
205805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
205905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
206005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
206105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
206205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
206305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
206405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
206505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef roundf
206605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define roundf rpl_roundf
206705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
206805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (roundf, float, (float x));
206905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (roundf, float, (float x));
207005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
207105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
207205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (roundf, float, (float x));
207305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
207405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (roundf, float, (float x));
207505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
207605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (roundf);
207705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
207805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef roundf
207905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ROUNDF
208005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (roundf, "roundf is unportable - "
208105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module roundf for portability");
208205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
208305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
208405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
208505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
208605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
208705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
208805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef round
208905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define round rpl_round
209005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
209105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (round, double, (double x));
209205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (round, double, (double x));
209305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
209405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
209505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (round, double, (double x));
209605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
209705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (round, double, (double x));
209805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
209905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (round);
210005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
210105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef round
210205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ROUND
210305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (round, "round is unportable - "
210405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module round for portability");
210505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
210605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
210705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
210805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
210905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
211005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
211105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef roundl
211205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define roundl rpl_roundl
211305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
211405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (roundl, long double, (long double x));
211505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (roundl, long double, (long double x));
211605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
211705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
211805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef roundl
211905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (roundl, long double, (long double x));
212005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
212105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (roundl, long double, (long double x));
212205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
212305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (roundl);
212405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
212505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef roundl
212605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_ROUNDL
212705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (roundl, "roundl is unportable - "
212805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module roundl for portability");
212905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
213005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
213105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
213205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
213305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
213405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
213505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef sinf
213605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (sinf, float, (float x));
213705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
213805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (sinf, float, (float x));
213905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (sinf);
214005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
214105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef sinf
214205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_SINF
214305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (sinf, "sinf is unportable - "
214405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module sinf for portability");
214505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
214605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
214705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
214805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
214905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1 || !1
215005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef sinl
215105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (sinl, long double, (long double x));
215205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
215305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (sinl, long double, (long double x));
215405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (sinl);
215505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
215605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef sinl
215705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_SINL
215805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (sinl, "sinl is unportable - "
215905436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module sinl for portability");
216005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
216105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
216205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
216305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
216405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
216505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
216605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef sinhf
216705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (sinhf, float, (float x));
216805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
216905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (sinhf, float, (float x));
217005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (sinhf);
217105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
217205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef sinhf
217305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_SINHF
217405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
217505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module sinhf for portability");
217605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
217705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
217805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
217905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
218005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
218105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
218205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef sqrtf
218305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (sqrtf, float, (float x));
218405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
218505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (sqrtf, float, (float x));
218605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (sqrtf);
218705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
218805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef sqrtf
218905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_SQRTF
219005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
219105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module sqrtf for portability");
219205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
219305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
219405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
219505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
219605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
219705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
219805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef sqrtl
219905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define sqrtl rpl_sqrtl
220005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
220105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
220205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
220305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
220405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1 || !1
220505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef sqrtl
220605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
220705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
220805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
220905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
221005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (sqrtl);
221105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
221205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef sqrtl
221305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_SQRTL
221405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
221505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module sqrtl for portability");
221605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
221705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
221805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
221905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
222005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
222105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
222205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef tanf
222305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (tanf, float, (float x));
222405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
222505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (tanf, float, (float x));
222605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (tanf);
222705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
222805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef tanf
222905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_TANF
223005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (tanf, "tanf is unportable - "
223105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module tanf for portability");
223205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
223305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
223405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
223505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
223605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1 || !1
223705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef tanl
223805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (tanl, long double, (long double x));
223905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
224005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (tanl, long double, (long double x));
224105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (tanl);
224205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
224305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef tanl
224405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_TANL
224505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (tanl, "tanl is unportable - "
224605436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module tanl for portability");
224705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
224805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
224905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
225005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
225105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
225205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if !1
225305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef tanhf
225405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (tanhf, float, (float x));
225505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
225605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (tanhf, float, (float x));
225705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (tanhf);
225805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
225905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef tanhf
226005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_TANHF
226105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
226205436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module tanhf for portability");
226305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
226405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
226505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
226605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
226705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
226805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
226905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
227005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define truncf rpl_truncf
227105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
227205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (truncf, float, (float x));
227305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (truncf, float, (float x));
227405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
227505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
227605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (truncf, float, (float x));
227705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
227805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (truncf, float, (float x));
227905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
228005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (truncf);
228105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
228205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef truncf
228305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_TRUNCF
228405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (truncf, "truncf is unportable - "
228505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module truncf for portability");
228605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
228705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
228805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
228905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
229005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
229105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
229205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define trunc rpl_trunc
229305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
229405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (trunc, double, (double x));
229505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (trunc, double, (double x));
229605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
229705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
229805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (trunc, double, (double x));
229905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
230005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (trunc, double, (double x));
230105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
230205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (trunc);
230305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
230405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef trunc
230505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_TRUNC
230605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (trunc, "trunc is unportable - "
230705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module trunc for portability");
230805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
230905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
231005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
231105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
231205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
231305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
231405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef truncl
231505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define truncl rpl_truncl
231605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
231705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_RPL (truncl, long double, (long double x));
231805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_RPL (truncl, long double, (long double x));
231905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
232005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if !1
232105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_FUNCDECL_SYS (truncl, long double, (long double x));
232205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
232305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIAS_SYS (truncl, long double, (long double x));
232405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
232505436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_CXXALIASWARN (truncl);
232605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
232705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef truncl
232805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if HAVE_RAW_DECL_TRUNCL
232905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_ON_USE (truncl, "truncl is unportable - "
233005436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 "use gnulib module truncl for portability");
233105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
233205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
233305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
233405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
233505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Definitions of function-like macros come here, after the function
233605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   declarations.  */
233705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
233805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
233905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
234005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
234105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int gl_isfinitef (float x);
234205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int gl_isfinited (double x);
234305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int gl_isfinitel (long double x);
234405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isfinite
234505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isfinite(x) \
234605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
234705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
234805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    gl_isfinitef (x))
234905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
235005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef __cplusplus
235105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  ifdef isfinite
235205436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
235305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef isfinite
235405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite)
235505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
235605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
235705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
235805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined isfinite
235905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_REAL_FLOATING_DECL (isfinite);
236005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isfinite
236105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
236205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
236305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
236405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
236505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
236605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0
236705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
236805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int gl_isinff (float x);
236905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int gl_isinfd (double x);
237005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int gl_isinfl (long double x);
237105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isinf
237205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isinf(x) \
237305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
237405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
237505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    gl_isinff (x))
237605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
237705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef __cplusplus
237805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  ifdef isinf
237905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
238005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef isinf
238105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf)
238205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
238305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
238405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
238505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined isinf
238605436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_REAL_FLOATING_DECL (isinf);
238705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isinf
238805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
238905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
239005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
239105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
239205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
239305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1
239405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Test for NaN for 'float' numbers.  */
239505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
239605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The original <math.h> included above provides a declaration of isnan macro
239705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   or (older) isnanf function.  */
239805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if __GNUC__ >= 4
239905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* GCC 4.0 and newer provides three built-ins for isnan.  */
240005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef isnanf
240105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define isnanf(x) __builtin_isnanf ((float)(x))
240205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  elif defined isnan
240305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef isnanf
240405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define isnanf(x) isnan ((float)(x))
240505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
240605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
240705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Test whether X is a NaN.  */
240805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isnanf
240905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isnanf rpl_isnanf
241005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int isnanf (float x);
241105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
241205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
241305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
241405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1
241505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Test for NaN for 'double' numbers.
241605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This function is a gnulib extension, unlike isnan() which applied only
241705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   to 'double' numbers earlier but now is a type-generic macro.  */
241805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
241905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The original <math.h> included above provides a declaration of isnan
242005436638acc7c010349a69c3395f1a57c642dc62Ying Wang   macro.  */
242105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if __GNUC__ >= 4
242205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* GCC 4.0 and newer provides three built-ins for isnan.  */
242305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef isnand
242405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define isnand(x) __builtin_isnan ((double)(x))
242505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  else
242605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef isnand
242705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define isnand(x) isnan ((double)(x))
242805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
242905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
243005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Test whether X is a NaN.  */
243105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isnand
243205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isnand rpl_isnand
243305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int isnand (double x);
243405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
243505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
243605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
243705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1
243805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Test for NaN for 'long double' numbers.  */
243905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
244005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The original <math.h> included above provides a declaration of isnan
244105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   macro or (older) isnanl function.  */
244205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if __GNUC__ >= 4
244305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* GCC 4.0 and newer provides three built-ins for isnan.  */
244405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef isnanl
244505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define isnanl(x) __builtin_isnanl ((long double)(x))
244605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  elif defined isnan
244705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef isnanl
244805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define isnanl(x) isnan ((long double)(x))
244905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
245005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
245105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Test whether X is a NaN.  */
245205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isnanl
245305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isnanl rpl_isnanl
245405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
245505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
245605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
245705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
245805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL!  */
245905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1
246005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1
246105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* We can't just use the isnanf macro (e.g.) as exposed by
246205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   isnanf.h (e.g.) here, because those may end up being macros
246305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   that recursively expand back to isnan.  So use the gnulib
246405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   replacements for them directly. */
246505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if 1 && __GNUC__ >= 4
246605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define gl_isnan_f(x) __builtin_isnanf ((float)(x))
246705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  else
246805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int rpl_isnanf (float x);
246905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define gl_isnan_f(x) rpl_isnanf (x)
247005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
247105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if 1 && __GNUC__ >= 4
247205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define gl_isnan_d(x) __builtin_isnan ((double)(x))
247305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  else
247405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int rpl_isnand (double x);
247505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define gl_isnan_d(x) rpl_isnand (x)
247605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
247705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if 0 && __GNUC__ >= 4
247805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define gl_isnan_l(x) __builtin_isnanl ((long double)(x))
247905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  else
248005436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
248105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define gl_isnan_l(x) rpl_isnanl (x)
248205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
248305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isnan
248405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isnan(x) \
248505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
248605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
248705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    gl_isnan_f (x))
248805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif __GNUC__ >= 4
248905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isnan
249005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isnan(x) \
249105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \
249205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
249305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    __builtin_isnanf ((float)(x)))
249405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
249505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef __cplusplus
249605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  ifdef isnan
249705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
249805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef isnan
249905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan)
250005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
250105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else
250205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Ensure isnan is a macro.  */
250305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  ifndef isnan
250405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define isnan isnan
250505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
250605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
250705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
250805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined isnan
250905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_REAL_FLOATING_DECL (isnan);
251005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef isnan
251105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
251205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
251305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
251405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
251505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
251605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1
251705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
251805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef signbit
251905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   /* GCC 4.0 and newer provides three built-ins for signbit.  */
252005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define signbit(x) \
252105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
252205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
252305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    __builtin_signbitf (x))
252405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
252505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 0
252605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef signbit
252705436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int gl_signbitf (float arg);
252805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int gl_signbitd (double arg);
252905436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_EXTERN_C int gl_signbitl (long double arg);
253005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  if __GNUC__ >= 2 && !defined __STRICT_ANSI__
253105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   define _GL_NUM_UINT_WORDS(type) \
253205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
253305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
253405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#    define gl_signbitf_OPTIMIZED_MACRO
253505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#    define gl_signbitf(arg) \
253605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       ({ union { float _value;                                         \
253705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  unsigned int _word[_GL_NUM_UINT_WORDS (float)];       \
253805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                } _m;                                                   \
253905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          _m._value = (arg);                                            \
254005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1;          \
254105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        })
254205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   endif
254305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
254405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#    define gl_signbitd_OPTIMIZED_MACRO
254505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#    define gl_signbitd(arg) \
254605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       ({ union { double _value;                                        \
254705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  unsigned int _word[_GL_NUM_UINT_WORDS (double)];      \
254805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                } _m;                                                   \
254905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          _m._value = (arg);                                            \
255005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1;          \
255105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        })
255205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   endif
255305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
255405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#    define gl_signbitl_OPTIMIZED_MACRO
255505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#    define gl_signbitl(arg) \
255605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       ({ union { long double _value;                                   \
255705436638acc7c010349a69c3395f1a57c642dc62Ying Wang                  unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
255805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                } _m;                                                   \
255905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          _m._value = (arg);                                            \
256005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;        \
256105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        })
256205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   endif
256305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
256405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define signbit(x) \
256505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
256605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
256705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    gl_signbitf (x))
256805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
256905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef __cplusplus
257005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  ifdef signbit
257105436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
257205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#   undef signbit
257305436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit)
257405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  endif
257505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
257605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined GNULIB_POSIXCHECK
257705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined signbit
257805436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_WARN_REAL_FLOATING_DECL (signbit);
257905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  undef signbit
258005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#  define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
258105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif
258205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
258305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
258405436638acc7c010349a69c3395f1a57c642dc62Ying Wang_GL_INLINE_HEADER_END
258505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
258605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* _GL_MATH_H */
258705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* _GL_MATH_H */
2588