(root)/
gettext-0.22.4/
gettext-tools/
gnulib-lib/
math.in.h
       1  /* A GNU-like <math.h>.
       2  
       3     Copyright (C) 2002-2003, 2007-2023 Free Software Foundation, Inc.
       4  
       5     This file is free software: you can redistribute it and/or modify
       6     it under the terms of the GNU Lesser General Public License as
       7     published by the Free Software Foundation; either version 2.1 of the
       8     License, or (at your option) any later version.
       9  
      10     This file is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public License
      16     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      17  
      18  /* On Android, in C++ mode, when /usr/include/c++/v1/math.h is being included
      19     and /usr/include/math.h has not yet been included, skip this file, since it
      20     would lead to many syntax errors.  */
      21  #if !(defined __ANDROID__ && defined _LIBCPP_MATH_H && !defined INFINITY)
      22  
      23  #ifndef _@GUARD_PREFIX@_MATH_H
      24  
      25  #if __GNUC__ >= 3
      26  @PRAGMA_SYSTEM_HEADER@
      27  #endif
      28  @PRAGMA_COLUMNS@
      29  
      30  #if defined _GL_INCLUDING_MATH_H
      31  /* Special invocation convention:
      32     - On FreeBSD 12.2 we have a sequence of nested includes
      33       <math.h> -> <stdlib.h> -> <sys/wait.h> -> <sys/types.h> -> <sys/select.h>
      34         -> <signal.h> -> <pthread.h> -> <stdlib.h> -> <math.h>
      35       In this situation, the functions are not yet declared, therefore we cannot
      36       provide the C++ aliases.  */
      37  
      38  #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
      39  
      40  #else
      41  /* Normal invocation convention.  */
      42  
      43  /* The include_next requires a split double-inclusion guard.  */
      44  #define _GL_INCLUDING_MATH_H
      45  #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
      46  #undef _GL_INCLUDING_MATH_H
      47  
      48  #ifndef _@GUARD_PREFIX@_MATH_H
      49  #define _@GUARD_PREFIX@_MATH_H
      50  
      51  /* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_CONST,
      52     GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
      53  #if !_GL_CONFIG_H_INCLUDED
      54   #error "Please include config.h first."
      55  #endif
      56  
      57  /* On OpenVMS, NAN, INFINITY, and HUGEVAL macros are defined in <fp.h>.  */
      58  #if defined __VMS && ! defined NAN
      59  # include <fp.h>
      60  #endif
      61  
      62  _GL_INLINE_HEADER_BEGIN
      63  #ifndef _GL_MATH_INLINE
      64  # define _GL_MATH_INLINE _GL_INLINE
      65  #endif
      66  
      67  /* The __attribute__ feature is available in gcc versions 2.5 and later.
      68     The attribute __const__ was added in gcc 2.95.  */
      69  #ifndef _GL_ATTRIBUTE_CONST
      70  # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__
      71  #  define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
      72  # else
      73  #  define _GL_ATTRIBUTE_CONST /* empty */
      74  # endif
      75  #endif
      76  
      77  /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
      78  
      79  /* The definition of _GL_ARG_NONNULL is copied here.  */
      80  
      81  /* The definition of _GL_WARN_ON_USE is copied here.  */
      82  
      83  #ifdef __cplusplus
      84  /* Helper macros to define type-generic function FUNC as overloaded functions,
      85     rather than as macros like in C.  POSIX declares these with an argument of
      86     real-floating (that is, one of float, double, or long double).  */
      87  # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \
      88  static inline int                                                   \
      89  _gl_cxx_ ## func ## f (float f)                                     \
      90  {                                                                   \
      91    return func (f);                                                  \
      92  }                                                                   \
      93  static inline int                                                   \
      94  _gl_cxx_ ## func ## d (double d)                                    \
      95  {                                                                   \
      96    return func (d);                                                  \
      97  }                                                                   \
      98  static inline int                                                   \
      99  _gl_cxx_ ## func ## l (long double l)                               \
     100  {                                                                   \
     101    return func (l);                                                  \
     102  }
     103  # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func,rpl_func,rettype) \
     104  _GL_BEGIN_NAMESPACE                                                 \
     105  inline rettype                                                      \
     106  rpl_func (float f)                                                  \
     107  {                                                                   \
     108    return _gl_cxx_ ## func ## f (f);                                 \
     109  }                                                                   \
     110  inline rettype                                                      \
     111  rpl_func (double d)                                                 \
     112  {                                                                   \
     113    return _gl_cxx_ ## func ## d (d);                                 \
     114  }                                                                   \
     115  inline rettype                                                      \
     116  rpl_func (long double l)                                            \
     117  {                                                                   \
     118    return _gl_cxx_ ## func ## l (l);                                 \
     119  }                                                                   \
     120  _GL_END_NAMESPACE
     121  #endif
     122  
     123  /* Helper macros to define a portability warning for the
     124     classification macro FUNC called with VALUE.  POSIX declares the
     125     classification macros with an argument of real-floating (that is,
     126     one of float, double, or long double).  */
     127  #define _GL_WARN_REAL_FLOATING_DECL(func) \
     128  _GL_MATH_INLINE int                                                       \
     129  _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - "                      \
     130                             "use gnulib module " #func " for portability") \
     131  rpl_ ## func ## f (float f)                                               \
     132  {                                                                         \
     133    return func (f);                                                        \
     134  }                                                                         \
     135  _GL_MATH_INLINE int                                                       \
     136  _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - "                      \
     137                             "use gnulib module " #func " for portability") \
     138  rpl_ ## func ## d (double d)                                              \
     139  {                                                                         \
     140    return func (d);                                                        \
     141  }                                                                         \
     142  _GL_MATH_INLINE int                                                       \
     143  _GL_WARN_ON_USE_ATTRIBUTE (#func " is unportable - "                      \
     144                             "use gnulib module " #func " for portability") \
     145  rpl_ ## func ## l (long double l)                                         \
     146  {                                                                         \
     147    return func (l);                                                        \
     148  }
     149  #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \
     150    (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value)     \
     151     : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value)  \
     152     : rpl_ ## func ## l (value))
     153  
     154  
     155  #if @REPLACE_ITOLD@
     156  /* Pull in a function that fixes the 'int' to 'long double' conversion
     157     of glibc 2.7.  */
     158  _GL_EXTERN_C void _Qp_itoq (long double *, int);
     159  static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
     160  #endif
     161  
     162  
     163  /* POSIX allows platforms that don't support NAN.  But all major
     164     machines in the past 15 years have supported something close to
     165     IEEE NaN, so we define this unconditionally.  We also must define
     166     it on platforms like Solaris 10, where NAN is present but defined
     167     as a function pointer rather than a floating point constant.  */
     168  #if !defined NAN || @REPLACE_NAN@
     169  # if !GNULIB_defined_NAN
     170  #  undef NAN
     171    /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
     172       choke on the expression 0.0 / 0.0.  */
     173  #  if defined __DECC || defined _MSC_VER
     174  _GL_MATH_INLINE float
     175  _NaN ()
     176  {
     177    static float zero = 0.0f;
     178    return zero / zero;
     179  }
     180  #   define NAN (_NaN())
     181  #  else
     182  #   define NAN (0.0f / 0.0f)
     183  #  endif
     184  #  define GNULIB_defined_NAN 1
     185  # endif
     186  #endif
     187  
     188  /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
     189     than a floating point constant.  */
     190  #if @REPLACE_HUGE_VAL@
     191  # undef HUGE_VALF
     192  # define HUGE_VALF (1.0f / 0.0f)
     193  # undef HUGE_VAL
     194  # define HUGE_VAL (1.0 / 0.0)
     195  # undef HUGE_VALL
     196  # define HUGE_VALL (1.0L / 0.0L)
     197  #endif
     198  
     199  /* HUGE_VALF is a 'float' Infinity.  */
     200  #ifndef HUGE_VALF
     201  # if defined _MSC_VER
     202  /* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f.  */
     203  #  define HUGE_VALF (1e25f * 1e25f)
     204  # else
     205  #  define HUGE_VALF (1.0f / 0.0f)
     206  # endif
     207  #endif
     208  
     209  /* HUGE_VAL is a 'double' Infinity.  */
     210  #ifndef HUGE_VAL
     211  # if defined _MSC_VER
     212  /* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0.  */
     213  #  define HUGE_VAL (1e250 * 1e250)
     214  # else
     215  #  define HUGE_VAL (1.0 / 0.0)
     216  # endif
     217  #endif
     218  
     219  /* HUGE_VALL is a 'long double' Infinity.  */
     220  #ifndef HUGE_VALL
     221  # if defined _MSC_VER
     222  /* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L.  */
     223  #  define HUGE_VALL (1e250L * 1e250L)
     224  # else
     225  #  define HUGE_VALL (1.0L / 0.0L)
     226  # endif
     227  #endif
     228  
     229  
     230  #if defined FP_ILOGB0 && defined FP_ILOGBNAN
     231   /* Ensure FP_ILOGB0 and FP_ILOGBNAN are correct.  */
     232  # if defined __HAIKU__
     233    /* Haiku: match what ilogb() does */
     234  #  undef FP_ILOGB0
     235  #  undef FP_ILOGBNAN
     236  #  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
     237  #  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
     238  # endif
     239  #else
     240   /* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined.  */
     241  # if defined __NetBSD__ || defined __sgi
     242    /* NetBSD, IRIX 6.5: match what ilogb() does */
     243  #  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
     244  #  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
     245  # elif defined _AIX
     246    /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */
     247  #  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
     248  #  define FP_ILOGBNAN 2147483647 /* INT_MAX */
     249  # elif defined __sun
     250    /* Solaris 9: match what ilogb() does */
     251  #  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
     252  #  define FP_ILOGBNAN 2147483647 /* INT_MAX */
     253  # else
     254    /* Gnulib defined values.  */
     255  #  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
     256  #  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
     257  # endif
     258  #endif
     259  
     260  
     261  #if @GNULIB_ACOSF@
     262  # if @REPLACE_ACOSF@
     263  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     264  #   undef acosf
     265  #   define acosf rpl_acosf
     266  #  endif
     267  _GL_FUNCDECL_RPL (acosf, float, (float x));
     268  _GL_CXXALIAS_RPL (acosf, float, (float x));
     269  # else
     270  #  if !@HAVE_ACOSF@
     271  #   undef acosf
     272  _GL_FUNCDECL_SYS (acosf, float, (float x));
     273  #  endif
     274  _GL_CXXALIAS_SYS (acosf, float, (float x));
     275  # endif
     276  _GL_CXXALIASWARN (acosf);
     277  #elif defined GNULIB_POSIXCHECK
     278  # undef acosf
     279  # if HAVE_RAW_DECL_ACOSF
     280  _GL_WARN_ON_USE (acosf, "acosf is unportable - "
     281                   "use gnulib module acosf for portability");
     282  # endif
     283  #endif
     284  
     285  #if @GNULIB_ACOSL@
     286  # if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@
     287  #  undef acosl
     288  _GL_FUNCDECL_SYS (acosl, long double, (long double x));
     289  # endif
     290  _GL_CXXALIAS_SYS (acosl, long double, (long double x));
     291  # if __GLIBC__ >= 2
     292  _GL_CXXALIASWARN (acosl);
     293  # endif
     294  #elif defined GNULIB_POSIXCHECK
     295  # undef acosl
     296  # if HAVE_RAW_DECL_ACOSL
     297  _GL_WARN_ON_USE (acosl, "acosl is unportable - "
     298                   "use gnulib module acosl for portability");
     299  # endif
     300  #endif
     301  
     302  
     303  #if @GNULIB_ASINF@
     304  # if @REPLACE_ASINF@
     305  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     306  #   undef asinf
     307  #   define asinf rpl_asinf
     308  #  endif
     309  _GL_FUNCDECL_RPL (asinf, float, (float x));
     310  _GL_CXXALIAS_RPL (asinf, float, (float x));
     311  # else
     312  #  if !@HAVE_ASINF@
     313  #   undef asinf
     314  _GL_FUNCDECL_SYS (asinf, float, (float x));
     315  #  endif
     316  _GL_CXXALIAS_SYS (asinf, float, (float x));
     317  # endif
     318  _GL_CXXALIASWARN (asinf);
     319  #elif defined GNULIB_POSIXCHECK
     320  # undef asinf
     321  # if HAVE_RAW_DECL_ASINF
     322  _GL_WARN_ON_USE (asinf, "asinf is unportable - "
     323                   "use gnulib module asinf for portability");
     324  # endif
     325  #endif
     326  
     327  #if @GNULIB_ASINL@
     328  # if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@
     329  #  undef asinl
     330  _GL_FUNCDECL_SYS (asinl, long double, (long double x));
     331  # endif
     332  _GL_CXXALIAS_SYS (asinl, long double, (long double x));
     333  # if __GLIBC__ >= 2
     334  _GL_CXXALIASWARN (asinl);
     335  # endif
     336  #elif defined GNULIB_POSIXCHECK
     337  # undef asinl
     338  # if HAVE_RAW_DECL_ASINL
     339  _GL_WARN_ON_USE (asinl, "asinl is unportable - "
     340                   "use gnulib module asinl for portability");
     341  # endif
     342  #endif
     343  
     344  
     345  #if @GNULIB_ATANF@
     346  # if @REPLACE_ATANF@
     347  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     348  #   undef atanf
     349  #   define atanf rpl_atanf
     350  #  endif
     351  _GL_FUNCDECL_RPL (atanf, float, (float x));
     352  _GL_CXXALIAS_RPL (atanf, float, (float x));
     353  # else
     354  #  if !@HAVE_ATANF@
     355  #   undef atanf
     356  _GL_FUNCDECL_SYS (atanf, float, (float x));
     357  #  endif
     358  _GL_CXXALIAS_SYS (atanf, float, (float x));
     359  # endif
     360  _GL_CXXALIASWARN (atanf);
     361  #elif defined GNULIB_POSIXCHECK
     362  # undef atanf
     363  # if HAVE_RAW_DECL_ATANF
     364  _GL_WARN_ON_USE (atanf, "atanf is unportable - "
     365                   "use gnulib module atanf for portability");
     366  # endif
     367  #endif
     368  
     369  #if @GNULIB_ATANL@
     370  # if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@
     371  #  undef atanl
     372  _GL_FUNCDECL_SYS (atanl, long double, (long double x));
     373  # endif
     374  _GL_CXXALIAS_SYS (atanl, long double, (long double x));
     375  # if __GLIBC__ >= 2
     376  _GL_CXXALIASWARN (atanl);
     377  # endif
     378  #elif defined GNULIB_POSIXCHECK
     379  # undef atanl
     380  # if HAVE_RAW_DECL_ATANL
     381  _GL_WARN_ON_USE (atanl, "atanl is unportable - "
     382                   "use gnulib module atanl for portability");
     383  # endif
     384  #endif
     385  
     386  
     387  #if @GNULIB_ATAN2F@
     388  # if @REPLACE_ATAN2F@
     389  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     390  #   undef atan2f
     391  #   define atan2f rpl_atan2f
     392  #  endif
     393  _GL_FUNCDECL_RPL (atan2f, float, (float y, float x));
     394  _GL_CXXALIAS_RPL (atan2f, float, (float y, float x));
     395  # else
     396  #  if !@HAVE_ATAN2F@
     397  #   undef atan2f
     398  _GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
     399  #  endif
     400  _GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
     401  # endif
     402  _GL_CXXALIASWARN (atan2f);
     403  #elif defined GNULIB_POSIXCHECK
     404  # undef atan2f
     405  # if HAVE_RAW_DECL_ATAN2F
     406  _GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
     407                   "use gnulib module atan2f for portability");
     408  # endif
     409  #endif
     410  
     411  
     412  #if @GNULIB_CBRTF@
     413  # if @REPLACE_CBRTF@
     414  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     415  #   undef cbrtf
     416  #   define cbrtf rpl_cbrtf
     417  #  endif
     418  _GL_FUNCDECL_RPL (cbrtf, float, (float x));
     419  _GL_CXXALIAS_RPL (cbrtf, float, (float x));
     420  # else
     421  #  if !@HAVE_DECL_CBRTF@
     422  _GL_FUNCDECL_SYS (cbrtf, float, (float x));
     423  #  endif
     424  _GL_CXXALIAS_SYS (cbrtf, float, (float x));
     425  # endif
     426  _GL_CXXALIASWARN (cbrtf);
     427  #elif defined GNULIB_POSIXCHECK
     428  # undef cbrtf
     429  # if HAVE_RAW_DECL_CBRTF
     430  _GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
     431                   "use gnulib module cbrtf for portability");
     432  # endif
     433  #endif
     434  
     435  #if @GNULIB_CBRT@
     436  # if !@HAVE_CBRT@
     437  _GL_FUNCDECL_SYS (cbrt, double, (double x));
     438  # endif
     439  _GL_CXXALIAS_SYS (cbrt, double, (double x));
     440  # if __GLIBC__ >= 2
     441  _GL_CXXALIASWARN1 (cbrt, double, (double x));
     442  # endif
     443  #elif defined GNULIB_POSIXCHECK
     444  # undef cbrt
     445  # if HAVE_RAW_DECL_CBRT
     446  _GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
     447                   "use gnulib module cbrt for portability");
     448  # endif
     449  #endif
     450  
     451  #if @GNULIB_CBRTL@
     452  # if @REPLACE_CBRTL@
     453  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     454  #   undef cbrtl
     455  #   define cbrtl rpl_cbrtl
     456  #  endif
     457  _GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
     458  _GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
     459  # else
     460  #  if !@HAVE_DECL_CBRTL@
     461  _GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
     462  #  endif
     463  _GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
     464  # endif
     465  # if __GLIBC__ >= 2
     466  _GL_CXXALIASWARN (cbrtl);
     467  # endif
     468  #elif defined GNULIB_POSIXCHECK
     469  # undef cbrtl
     470  # if HAVE_RAW_DECL_CBRTL
     471  _GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
     472                   "use gnulib module cbrtl for portability");
     473  # endif
     474  #endif
     475  
     476  
     477  #if @GNULIB_CEILF@
     478  # if @REPLACE_CEILF@
     479  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     480  #   undef ceilf
     481  #   define ceilf rpl_ceilf
     482  #  endif
     483  _GL_FUNCDECL_RPL (ceilf, float, (float x));
     484  _GL_CXXALIAS_RPL (ceilf, float, (float x));
     485  # else
     486  #  if !@HAVE_DECL_CEILF@
     487  #   undef ceilf
     488  _GL_FUNCDECL_SYS (ceilf, float, (float x));
     489  #  endif
     490  _GL_CXXALIAS_SYS (ceilf, float, (float x));
     491  # endif
     492  _GL_CXXALIASWARN (ceilf);
     493  #elif defined GNULIB_POSIXCHECK
     494  # undef ceilf
     495  # if HAVE_RAW_DECL_CEILF
     496  _GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
     497                   "use gnulib module ceilf for portability");
     498  # endif
     499  #endif
     500  
     501  #if @GNULIB_CEIL@
     502  # if @REPLACE_CEIL@
     503  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     504  #   undef ceil
     505  #   define ceil rpl_ceil
     506  #  endif
     507  _GL_FUNCDECL_RPL (ceil, double, (double x));
     508  _GL_CXXALIAS_RPL (ceil, double, (double x));
     509  # else
     510  _GL_CXXALIAS_SYS (ceil, double, (double x));
     511  # endif
     512  # if __GLIBC__ >= 2
     513  _GL_CXXALIASWARN1 (ceil, double, (double x));
     514  # endif
     515  #endif
     516  
     517  #if @GNULIB_CEILL@
     518  # if @REPLACE_CEILL@
     519  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     520  #   undef ceill
     521  #   define ceill rpl_ceill
     522  #  endif
     523  _GL_FUNCDECL_RPL (ceill, long double, (long double x));
     524  _GL_CXXALIAS_RPL (ceill, long double, (long double x));
     525  # else
     526  #  if !@HAVE_DECL_CEILL@
     527  #   undef ceill
     528  _GL_FUNCDECL_SYS (ceill, long double, (long double x));
     529  #  endif
     530  _GL_CXXALIAS_SYS (ceill, long double, (long double x));
     531  # endif
     532  # if __GLIBC__ >= 2
     533  _GL_CXXALIASWARN (ceill);
     534  # endif
     535  #elif defined GNULIB_POSIXCHECK
     536  # undef ceill
     537  # if HAVE_RAW_DECL_CEILL
     538  _GL_WARN_ON_USE (ceill, "ceill is unportable - "
     539                   "use gnulib module ceill for portability");
     540  # endif
     541  #endif
     542  
     543  
     544  #if @GNULIB_COPYSIGNF@
     545  # if !@HAVE_DECL_COPYSIGNF@
     546  #  undef copysignf
     547  _GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
     548  # endif
     549  _GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
     550  _GL_CXXALIASWARN (copysignf);
     551  #elif defined GNULIB_POSIXCHECK
     552  # undef copysignf
     553  # if HAVE_RAW_DECL_COPYSIGNF
     554  _GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
     555                   "use gnulib module copysignf for portability");
     556  # endif
     557  #endif
     558  
     559  #if @GNULIB_COPYSIGN@
     560  # if !@HAVE_COPYSIGN@
     561  _GL_FUNCDECL_SYS (copysign, double, (double x, double y));
     562  # endif
     563  _GL_CXXALIAS_SYS (copysign, double, (double x, double y));
     564  # if __GLIBC__ >= 2
     565  _GL_CXXALIASWARN1 (copysign, double, (double x, double y));
     566  # endif
     567  #elif defined GNULIB_POSIXCHECK
     568  # undef copysign
     569  # if HAVE_RAW_DECL_COPYSIGN
     570  _GL_WARN_ON_USE (copysign, "copysign is unportable - "
     571                   "use gnulib module copysign for portability");
     572  # endif
     573  #endif
     574  
     575  #if @GNULIB_COPYSIGNL@
     576  # if !@HAVE_COPYSIGNL@
     577  _GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
     578  # endif
     579  _GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
     580  # if __GLIBC__ >= 2
     581  _GL_CXXALIASWARN (copysignl);
     582  # endif
     583  #elif defined GNULIB_POSIXCHECK
     584  # undef copysignl
     585  # if HAVE_RAW_DECL_COPYSIGNL
     586  _GL_WARN_ON_USE (copysign, "copysignl is unportable - "
     587                   "use gnulib module copysignl for portability");
     588  # endif
     589  #endif
     590  
     591  
     592  #if @GNULIB_COSF@
     593  # if @REPLACE_COSF@
     594  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     595  #   undef cosf
     596  #   define cosf rpl_cosf
     597  #  endif
     598  _GL_FUNCDECL_RPL (cosf, float, (float x));
     599  _GL_CXXALIAS_RPL (cosf, float, (float x));
     600  # else
     601  #  if !@HAVE_COSF@
     602  #   undef cosf
     603  _GL_FUNCDECL_SYS (cosf, float, (float x));
     604  #  endif
     605  _GL_CXXALIAS_SYS (cosf, float, (float x));
     606  # endif
     607  _GL_CXXALIASWARN (cosf);
     608  #elif defined GNULIB_POSIXCHECK
     609  # undef cosf
     610  # if HAVE_RAW_DECL_COSF
     611  _GL_WARN_ON_USE (cosf, "cosf is unportable - "
     612                   "use gnulib module cosf for portability");
     613  # endif
     614  #endif
     615  
     616  #if @GNULIB_COSL@
     617  # if !@HAVE_COSL@ || !@HAVE_DECL_COSL@
     618  #  undef cosl
     619  _GL_FUNCDECL_SYS (cosl, long double, (long double x));
     620  # endif
     621  _GL_CXXALIAS_SYS (cosl, long double, (long double x));
     622  # if __GLIBC__ >= 2
     623  _GL_CXXALIASWARN (cosl);
     624  # endif
     625  #elif defined GNULIB_POSIXCHECK
     626  # undef cosl
     627  # if HAVE_RAW_DECL_COSL
     628  _GL_WARN_ON_USE (cosl, "cosl is unportable - "
     629                   "use gnulib module cosl for portability");
     630  # endif
     631  #endif
     632  
     633  
     634  #if @GNULIB_COSHF@
     635  # if @REPLACE_COSHF@
     636  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     637  #   undef coshf
     638  #   define coshf rpl_coshf
     639  #  endif
     640  _GL_FUNCDECL_RPL (coshf, float, (float x));
     641  _GL_CXXALIAS_RPL (coshf, float, (float x));
     642  # else
     643  #  if !@HAVE_COSHF@
     644  #   undef coshf
     645  _GL_FUNCDECL_SYS (coshf, float, (float x));
     646  #  endif
     647  _GL_CXXALIAS_SYS (coshf, float, (float x));
     648  # endif
     649  _GL_CXXALIASWARN (coshf);
     650  #elif defined GNULIB_POSIXCHECK
     651  # undef coshf
     652  # if HAVE_RAW_DECL_COSHF
     653  _GL_WARN_ON_USE (coshf, "coshf is unportable - "
     654                   "use gnulib module coshf for portability");
     655  # endif
     656  #endif
     657  
     658  
     659  #if @GNULIB_EXPF@
     660  # if @REPLACE_EXPF@
     661  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     662  #   undef expf
     663  #   define expf rpl_expf
     664  #  endif
     665  _GL_FUNCDECL_RPL (expf, float, (float x));
     666  _GL_CXXALIAS_RPL (expf, float, (float x));
     667  # else
     668  #  if !@HAVE_EXPF@
     669  #   undef expf
     670  _GL_FUNCDECL_SYS (expf, float, (float x));
     671  #  endif
     672  _GL_CXXALIAS_SYS (expf, float, (float x));
     673  # endif
     674  _GL_CXXALIASWARN (expf);
     675  #elif defined GNULIB_POSIXCHECK
     676  # undef expf
     677  # if HAVE_RAW_DECL_EXPF
     678  _GL_WARN_ON_USE (expf, "expf is unportable - "
     679                   "use gnulib module expf for portability");
     680  # endif
     681  #endif
     682  
     683  #if @GNULIB_EXPL@
     684  # if @REPLACE_EXPL@
     685  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     686  #   undef expl
     687  #   define expl rpl_expl
     688  #  endif
     689  _GL_FUNCDECL_RPL (expl, long double, (long double x));
     690  _GL_CXXALIAS_RPL (expl, long double, (long double x));
     691  # else
     692  #  if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@
     693  #   undef expl
     694  _GL_FUNCDECL_SYS (expl, long double, (long double x));
     695  #  endif
     696  _GL_CXXALIAS_SYS (expl, long double, (long double x));
     697  # endif
     698  # if __GLIBC__ >= 2
     699  _GL_CXXALIASWARN (expl);
     700  # endif
     701  #elif defined GNULIB_POSIXCHECK
     702  # undef expl
     703  # if HAVE_RAW_DECL_EXPL
     704  _GL_WARN_ON_USE (expl, "expl is unportable - "
     705                   "use gnulib module expl for portability");
     706  # endif
     707  #endif
     708  
     709  
     710  #if @GNULIB_EXP2F@
     711  # if !@HAVE_DECL_EXP2F@
     712  _GL_FUNCDECL_SYS (exp2f, float, (float x));
     713  # endif
     714  _GL_CXXALIAS_SYS (exp2f, float, (float x));
     715  _GL_CXXALIASWARN (exp2f);
     716  #elif defined GNULIB_POSIXCHECK
     717  # undef exp2f
     718  # if HAVE_RAW_DECL_EXP2F
     719  _GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
     720                   "use gnulib module exp2f for portability");
     721  # endif
     722  #endif
     723  
     724  #if @GNULIB_EXP2@
     725  # if @REPLACE_EXP2@
     726  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     727  #   undef exp2
     728  #   define exp2 rpl_exp2
     729  #  endif
     730  _GL_FUNCDECL_RPL (exp2, double, (double x));
     731  _GL_CXXALIAS_RPL (exp2, double, (double x));
     732  # else
     733  #  if !@HAVE_DECL_EXP2@
     734  _GL_FUNCDECL_SYS (exp2, double, (double x));
     735  #  endif
     736  _GL_CXXALIAS_SYS (exp2, double, (double x));
     737  # endif
     738  # if __GLIBC__ >= 2
     739  _GL_CXXALIASWARN1 (exp2, double, (double x));
     740  # endif
     741  #elif defined GNULIB_POSIXCHECK
     742  # undef exp2
     743  # if HAVE_RAW_DECL_EXP2
     744  _GL_WARN_ON_USE (exp2, "exp2 is unportable - "
     745                   "use gnulib module exp2 for portability");
     746  # endif
     747  #endif
     748  
     749  #if @GNULIB_EXP2L@
     750  # if @REPLACE_EXP2L@
     751  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     752  #   undef exp2l
     753  #   define exp2l rpl_exp2l
     754  #  endif
     755  _GL_FUNCDECL_RPL (exp2l, long double, (long double x));
     756  _GL_CXXALIAS_RPL (exp2l, long double, (long double x));
     757  # else
     758  #  if !@HAVE_DECL_EXP2L@
     759  #   undef exp2l
     760  _GL_FUNCDECL_SYS (exp2l, long double, (long double x));
     761  #  endif
     762  _GL_CXXALIAS_SYS (exp2l, long double, (long double x));
     763  # endif
     764  # if __GLIBC__ >= 2
     765  _GL_CXXALIASWARN (exp2l);
     766  # endif
     767  #elif defined GNULIB_POSIXCHECK
     768  # undef exp2l
     769  # if HAVE_RAW_DECL_EXP2L
     770  _GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
     771                   "use gnulib module exp2l for portability");
     772  # endif
     773  #endif
     774  
     775  
     776  #if @GNULIB_EXPM1F@
     777  # if @REPLACE_EXPM1F@
     778  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     779  #   undef expm1f
     780  #   define expm1f rpl_expm1f
     781  #  endif
     782  _GL_FUNCDECL_RPL (expm1f, float, (float x));
     783  _GL_CXXALIAS_RPL (expm1f, float, (float x));
     784  # else
     785  #  if !@HAVE_EXPM1F@
     786  _GL_FUNCDECL_SYS (expm1f, float, (float x));
     787  #  endif
     788  _GL_CXXALIAS_SYS (expm1f, float, (float x));
     789  # endif
     790  _GL_CXXALIASWARN (expm1f);
     791  #elif defined GNULIB_POSIXCHECK
     792  # undef expm1f
     793  # if HAVE_RAW_DECL_EXPM1F
     794  _GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
     795                   "use gnulib module expm1f for portability");
     796  # endif
     797  #endif
     798  
     799  #if @GNULIB_EXPM1@
     800  # if @REPLACE_EXPM1@
     801  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     802  #   undef expm1
     803  #   define expm1 rpl_expm1
     804  #  endif
     805  _GL_FUNCDECL_RPL (expm1, double, (double x));
     806  _GL_CXXALIAS_RPL (expm1, double, (double x));
     807  # else
     808  #  if !@HAVE_EXPM1@
     809  _GL_FUNCDECL_SYS (expm1, double, (double x));
     810  #  endif
     811  _GL_CXXALIAS_SYS (expm1, double, (double x));
     812  # endif
     813  # if __GLIBC__ >= 2
     814  _GL_CXXALIASWARN1 (expm1, double, (double x));
     815  # endif
     816  #elif defined GNULIB_POSIXCHECK
     817  # undef expm1
     818  # if HAVE_RAW_DECL_EXPM1
     819  _GL_WARN_ON_USE (expm1, "expm1 is unportable - "
     820                   "use gnulib module expm1 for portability");
     821  # endif
     822  #endif
     823  
     824  #if @GNULIB_EXPM1L@
     825  # if @REPLACE_EXPM1L@
     826  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     827  #   undef expm1l
     828  #   define expm1l rpl_expm1l
     829  #  endif
     830  _GL_FUNCDECL_RPL (expm1l, long double, (long double x));
     831  _GL_CXXALIAS_RPL (expm1l, long double, (long double x));
     832  # else
     833  #  if !@HAVE_DECL_EXPM1L@
     834  #   undef expm1l
     835  #   if !(defined __cplusplus && defined _AIX)
     836  _GL_FUNCDECL_SYS (expm1l, long double, (long double x));
     837  #   endif
     838  #  endif
     839  _GL_CXXALIAS_SYS (expm1l, long double, (long double x));
     840  # endif
     841  # if __GLIBC__ >= 2
     842  _GL_CXXALIASWARN (expm1l);
     843  # endif
     844  #elif defined GNULIB_POSIXCHECK
     845  # undef expm1l
     846  # if HAVE_RAW_DECL_EXPM1L
     847  _GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
     848                   "use gnulib module expm1l for portability");
     849  # endif
     850  #endif
     851  
     852  
     853  #if @GNULIB_FABSF@
     854  # if !@HAVE_FABSF@
     855  #  undef fabsf
     856  _GL_FUNCDECL_SYS (fabsf, float, (float x));
     857  # endif
     858  _GL_CXXALIAS_SYS (fabsf, float, (float x));
     859  # if __GLIBC__ >= 2
     860  _GL_CXXALIASWARN (fabsf);
     861  # endif
     862  #elif defined GNULIB_POSIXCHECK
     863  # undef fabsf
     864  # if HAVE_RAW_DECL_FABSF
     865  _GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
     866                   "use gnulib module fabsf for portability");
     867  # endif
     868  #endif
     869  
     870  #if @GNULIB_FABSL@
     871  # if @REPLACE_FABSL@
     872  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     873  #   undef fabsl
     874  #   define fabsl rpl_fabsl
     875  #  endif
     876  _GL_FUNCDECL_RPL (fabsl, long double, (long double x));
     877  _GL_CXXALIAS_RPL (fabsl, long double, (long double x));
     878  # else
     879  #  if !@HAVE_FABSL@
     880  #   undef fabsl
     881  _GL_FUNCDECL_SYS (fabsl, long double, (long double x));
     882  #  endif
     883  _GL_CXXALIAS_SYS (fabsl, long double, (long double x));
     884  # endif
     885  # if __GLIBC__ >= 2
     886  _GL_CXXALIASWARN (fabsl);
     887  # endif
     888  #elif defined GNULIB_POSIXCHECK
     889  # undef fabsl
     890  # if HAVE_RAW_DECL_FABSL
     891  _GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
     892                   "use gnulib module fabsl for portability");
     893  # endif
     894  #endif
     895  
     896  
     897  #if @GNULIB_FLOORF@
     898  # if @REPLACE_FLOORF@
     899  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     900  #   undef floorf
     901  #   define floorf rpl_floorf
     902  #  endif
     903  _GL_FUNCDECL_RPL (floorf, float, (float x));
     904  _GL_CXXALIAS_RPL (floorf, float, (float x));
     905  # else
     906  #  if !@HAVE_DECL_FLOORF@
     907  #   undef floorf
     908  _GL_FUNCDECL_SYS (floorf, float, (float x));
     909  #  endif
     910  _GL_CXXALIAS_SYS (floorf, float, (float x));
     911  # endif
     912  _GL_CXXALIASWARN (floorf);
     913  #elif defined GNULIB_POSIXCHECK
     914  # undef floorf
     915  # if HAVE_RAW_DECL_FLOORF
     916  _GL_WARN_ON_USE (floorf, "floorf is unportable - "
     917                   "use gnulib module floorf for portability");
     918  # endif
     919  #endif
     920  
     921  #if @GNULIB_FLOOR@
     922  # if @REPLACE_FLOOR@
     923  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     924  #   undef floor
     925  #   define floor rpl_floor
     926  #  endif
     927  _GL_FUNCDECL_RPL (floor, double, (double x));
     928  _GL_CXXALIAS_RPL (floor, double, (double x));
     929  # else
     930  _GL_CXXALIAS_SYS (floor, double, (double x));
     931  # endif
     932  # if __GLIBC__ >= 2
     933  _GL_CXXALIASWARN1 (floor, double, (double x));
     934  # endif
     935  #endif
     936  
     937  #if @GNULIB_FLOORL@
     938  # if @REPLACE_FLOORL@
     939  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     940  #   undef floorl
     941  #   define floorl rpl_floorl
     942  #  endif
     943  _GL_FUNCDECL_RPL (floorl, long double, (long double x));
     944  _GL_CXXALIAS_RPL (floorl, long double, (long double x));
     945  # else
     946  #  if !@HAVE_DECL_FLOORL@
     947  #   undef floorl
     948  _GL_FUNCDECL_SYS (floorl, long double, (long double x));
     949  #  endif
     950  _GL_CXXALIAS_SYS (floorl, long double, (long double x));
     951  # endif
     952  # if __GLIBC__ >= 2
     953  _GL_CXXALIASWARN (floorl);
     954  # endif
     955  #elif defined GNULIB_POSIXCHECK
     956  # undef floorl
     957  # if HAVE_RAW_DECL_FLOORL
     958  _GL_WARN_ON_USE (floorl, "floorl is unportable - "
     959                   "use gnulib module floorl for portability");
     960  # endif
     961  #endif
     962  
     963  
     964  #if @GNULIB_FMAF@
     965  # if @REPLACE_FMAF@
     966  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     967  #   undef fmaf
     968  #   define fmaf rpl_fmaf
     969  #  endif
     970  _GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
     971  _GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
     972  # else
     973  #  if !@HAVE_FMAF@
     974  #   undef fmaf
     975  _GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
     976  #  endif
     977  _GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
     978  # endif
     979  _GL_CXXALIASWARN (fmaf);
     980  #elif defined GNULIB_POSIXCHECK
     981  # undef fmaf
     982  # if HAVE_RAW_DECL_FMAF
     983  _GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
     984                   "use gnulib module fmaf for portability");
     985  # endif
     986  #endif
     987  
     988  #if @GNULIB_FMA@
     989  # if @REPLACE_FMA@
     990  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     991  #   undef fma
     992  #   define fma rpl_fma
     993  #  endif
     994  _GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
     995  _GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
     996  # else
     997  #  if !@HAVE_FMA@
     998  #   undef fma
     999  _GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
    1000  #  endif
    1001  _GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
    1002  # endif
    1003  # if __GLIBC__ >= 2
    1004  _GL_CXXALIASWARN1 (fma, double, (double x, double y, double z));
    1005  # endif
    1006  #elif defined GNULIB_POSIXCHECK
    1007  # undef fma
    1008  # if HAVE_RAW_DECL_FMA
    1009  _GL_WARN_ON_USE (fma, "fma is unportable - "
    1010                   "use gnulib module fma for portability");
    1011  # endif
    1012  #endif
    1013  
    1014  #if @GNULIB_FMAL@
    1015  # if @REPLACE_FMAL@
    1016  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1017  #   undef fmal
    1018  #   define fmal rpl_fmal
    1019  #  endif
    1020  _GL_FUNCDECL_RPL (fmal, long double,
    1021                    (long double x, long double y, long double z));
    1022  _GL_CXXALIAS_RPL (fmal, long double,
    1023                    (long double x, long double y, long double z));
    1024  # else
    1025  #  if !@HAVE_FMAL@
    1026  #   undef fmal
    1027  #   if !(defined __cplusplus && defined _AIX)
    1028  _GL_FUNCDECL_SYS (fmal, long double,
    1029                    (long double x, long double y, long double z));
    1030  #   endif
    1031  #  endif
    1032  _GL_CXXALIAS_SYS (fmal, long double,
    1033                    (long double x, long double y, long double z));
    1034  # endif
    1035  # if __GLIBC__ >= 2
    1036  _GL_CXXALIASWARN (fmal);
    1037  # endif
    1038  #elif defined GNULIB_POSIXCHECK
    1039  # undef fmal
    1040  # if HAVE_RAW_DECL_FMAL
    1041  _GL_WARN_ON_USE (fmal, "fmal is unportable - "
    1042                   "use gnulib module fmal for portability");
    1043  # endif
    1044  #endif
    1045  
    1046  
    1047  #if @GNULIB_FMODF@
    1048  # if @REPLACE_FMODF@
    1049  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1050  #   undef fmodf
    1051  #   define fmodf rpl_fmodf
    1052  #  endif
    1053  _GL_FUNCDECL_RPL (fmodf, float, (float x, float y));
    1054  _GL_CXXALIAS_RPL (fmodf, float, (float x, float y));
    1055  # else
    1056  #  if !@HAVE_FMODF@
    1057  #   undef fmodf
    1058  _GL_FUNCDECL_SYS (fmodf, float, (float x, float y));
    1059  #  endif
    1060  _GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
    1061  # endif
    1062  _GL_CXXALIASWARN (fmodf);
    1063  #elif defined GNULIB_POSIXCHECK
    1064  # undef fmodf
    1065  # if HAVE_RAW_DECL_FMODF
    1066  _GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
    1067                   "use gnulib module fmodf for portability");
    1068  # endif
    1069  #endif
    1070  
    1071  #if @GNULIB_FMOD@
    1072  # if @REPLACE_FMOD@
    1073  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1074  #   undef fmod
    1075  #   define fmod rpl_fmod
    1076  #  endif
    1077  _GL_FUNCDECL_RPL (fmod, double, (double x, double y));
    1078  _GL_CXXALIAS_RPL (fmod, double, (double x, double y));
    1079  # else
    1080  _GL_CXXALIAS_SYS (fmod, double, (double x, double y));
    1081  # endif
    1082  # if __GLIBC__ >= 2
    1083  _GL_CXXALIASWARN1 (fmod, double, (double x, double y));
    1084  # endif
    1085  #elif defined GNULIB_POSIXCHECK
    1086  # undef fmod
    1087  # if HAVE_RAW_DECL_FMOD
    1088  _GL_WARN_ON_USE (fmod, "fmod has portability problems - "
    1089                   "use gnulib module fmod for portability");
    1090  # endif
    1091  #endif
    1092  
    1093  #if @GNULIB_FMODL@
    1094  # if @REPLACE_FMODL@
    1095  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1096  #   undef fmodl
    1097  #   define fmodl rpl_fmodl
    1098  #  endif
    1099  _GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y));
    1100  _GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y));
    1101  # else
    1102  #  if !@HAVE_FMODL@
    1103  #   undef fmodl
    1104  _GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
    1105  #  endif
    1106  _GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
    1107  # endif
    1108  # if __GLIBC__ >= 2
    1109  _GL_CXXALIASWARN (fmodl);
    1110  # endif
    1111  #elif defined GNULIB_POSIXCHECK
    1112  # undef fmodl
    1113  # if HAVE_RAW_DECL_FMODL
    1114  _GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
    1115                   "use gnulib module fmodl for portability");
    1116  # endif
    1117  #endif
    1118  
    1119  
    1120  /* Write x as
    1121       x = mantissa * 2^exp
    1122     where
    1123       If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
    1124       If x is zero: mantissa = x, exp = 0.
    1125       If x is infinite or NaN: mantissa = x, exp unspecified.
    1126     Store exp in *EXPPTR and return mantissa.  */
    1127  #if @GNULIB_FREXPF@
    1128  # if @REPLACE_FREXPF@
    1129  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1130  #   undef frexpf
    1131  #   define frexpf rpl_frexpf
    1132  #  endif
    1133  _GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
    1134  _GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr));
    1135  # else
    1136  #  if !@HAVE_FREXPF@
    1137  #   undef frexpf
    1138  _GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
    1139  #  endif
    1140  _GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
    1141  # endif
    1142  # if __GLIBC__ >= 2
    1143  _GL_CXXALIASWARN (frexpf);
    1144  # endif
    1145  #elif defined GNULIB_POSIXCHECK
    1146  # undef frexpf
    1147  # if HAVE_RAW_DECL_FREXPF
    1148  _GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
    1149                   "use gnulib module frexpf for portability");
    1150  # endif
    1151  #endif
    1152  
    1153  /* Write x as
    1154       x = mantissa * 2^exp
    1155     where
    1156       If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
    1157       If x is zero: mantissa = x, exp = 0.
    1158       If x is infinite or NaN: mantissa = x, exp unspecified.
    1159     Store exp in *EXPPTR and return mantissa.  */
    1160  #if @GNULIB_FREXP@
    1161  # if @REPLACE_FREXP@
    1162  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1163  #   undef frexp
    1164  #   define frexp rpl_frexp
    1165  #  endif
    1166  _GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
    1167  _GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
    1168  # else
    1169  _GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
    1170  # endif
    1171  # if __GLIBC__ >= 2
    1172  _GL_CXXALIASWARN1 (frexp, double, (double x, int *expptr));
    1173  # endif
    1174  #elif defined GNULIB_POSIXCHECK
    1175  # undef frexp
    1176  /* Assume frexp is always declared.  */
    1177  _GL_WARN_ON_USE (frexp, "frexp is unportable - "
    1178                   "use gnulib module frexp for portability");
    1179  #endif
    1180  
    1181  /* Write x as
    1182       x = mantissa * 2^exp
    1183     where
    1184       If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
    1185       If x is zero: mantissa = x, exp = 0.
    1186       If x is infinite or NaN: mantissa = x, exp unspecified.
    1187     Store exp in *EXPPTR and return mantissa.  */
    1188  #if @GNULIB_FREXPL@ && @REPLACE_FREXPL@
    1189  # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1190  #  undef frexpl
    1191  #  define frexpl rpl_frexpl
    1192  # endif
    1193  _GL_FUNCDECL_RPL (frexpl, long double,
    1194                    (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
    1195  _GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
    1196  #else
    1197  # if !@HAVE_DECL_FREXPL@
    1198  _GL_FUNCDECL_SYS (frexpl, long double,
    1199                    (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
    1200  # endif
    1201  # if @GNULIB_FREXPL@
    1202  _GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
    1203  # endif
    1204  #endif
    1205  #if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@)
    1206  # if __GLIBC__ >= 2
    1207  _GL_CXXALIASWARN (frexpl);
    1208  # endif
    1209  #endif
    1210  #if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
    1211  # undef frexpl
    1212  # if HAVE_RAW_DECL_FREXPL
    1213  _GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
    1214                   "use gnulib module frexpl for portability");
    1215  # endif
    1216  #endif
    1217  
    1218  
    1219  /* Return sqrt(x^2+y^2).  */
    1220  #if @GNULIB_HYPOTF@
    1221  # if @REPLACE_HYPOTF@
    1222  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1223  #   undef hypotf
    1224  #   define hypotf rpl_hypotf
    1225  #  endif
    1226  _GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
    1227  _GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
    1228  # else
    1229  #  if !@HAVE_HYPOTF@
    1230  _GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
    1231  #  endif
    1232  _GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
    1233  # endif
    1234  # if __GLIBC__ >= 2
    1235  _GL_CXXALIASWARN (hypotf);
    1236  # endif
    1237  #elif defined GNULIB_POSIXCHECK
    1238  # undef hypotf
    1239  # if HAVE_RAW_DECL_HYPOTF
    1240  _GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
    1241                   "use gnulib module hypotf for portability");
    1242  # endif
    1243  #endif
    1244  
    1245  /* Return sqrt(x^2+y^2).  */
    1246  #if @GNULIB_HYPOT@
    1247  # if @REPLACE_HYPOT@
    1248  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1249  #   undef hypot
    1250  #   define hypot rpl_hypot
    1251  #  endif
    1252  _GL_FUNCDECL_RPL (hypot, double, (double x, double y));
    1253  _GL_CXXALIAS_RPL (hypot, double, (double x, double y));
    1254  # else
    1255  _GL_CXXALIAS_SYS (hypot, double, (double x, double y));
    1256  # endif
    1257  # if __GLIBC__ >= 2
    1258  _GL_CXXALIASWARN1 (hypot, double, (double x, double y));
    1259  # endif
    1260  #elif defined GNULIB_POSIXCHECK
    1261  # undef hypot
    1262  # if HAVE_RAW_DECL_HYPOT
    1263  _GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
    1264                   "use gnulib module hypot for portability");
    1265  # endif
    1266  #endif
    1267  
    1268  /* Return sqrt(x^2+y^2).  */
    1269  #if @GNULIB_HYPOTL@
    1270  # if @REPLACE_HYPOTL@
    1271  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1272  #   undef hypotl
    1273  #   define hypotl rpl_hypotl
    1274  #  endif
    1275  _GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y));
    1276  _GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y));
    1277  # else
    1278  #  if !@HAVE_HYPOTL@
    1279  _GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
    1280  #  endif
    1281  _GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
    1282  # endif
    1283  # if __GLIBC__ >= 2
    1284  _GL_CXXALIASWARN (hypotl);
    1285  # endif
    1286  #elif defined GNULIB_POSIXCHECK
    1287  # undef hypotl
    1288  # if HAVE_RAW_DECL_HYPOTL
    1289  _GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
    1290                   "use gnulib module hypotl for portability");
    1291  # endif
    1292  #endif
    1293  
    1294  
    1295  #if @GNULIB_ILOGBF@
    1296  # if @REPLACE_ILOGBF@
    1297  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1298  #   undef ilogbf
    1299  #   define ilogbf rpl_ilogbf
    1300  #  endif
    1301  _GL_FUNCDECL_RPL (ilogbf, int, (float x));
    1302  _GL_CXXALIAS_RPL (ilogbf, int, (float x));
    1303  # else
    1304  #  if !@HAVE_ILOGBF@
    1305  _GL_FUNCDECL_SYS (ilogbf, int, (float x));
    1306  #  endif
    1307  _GL_CXXALIAS_SYS (ilogbf, int, (float x));
    1308  # endif
    1309  _GL_CXXALIASWARN (ilogbf);
    1310  #elif defined GNULIB_POSIXCHECK
    1311  # undef ilogbf
    1312  # if HAVE_RAW_DECL_ILOGBF
    1313  _GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
    1314                   "use gnulib module ilogbf for portability");
    1315  # endif
    1316  #endif
    1317  
    1318  #if @GNULIB_ILOGB@
    1319  # if @REPLACE_ILOGB@
    1320  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1321  #   undef ilogb
    1322  #   define ilogb rpl_ilogb
    1323  #  endif
    1324  _GL_FUNCDECL_RPL (ilogb, int, (double x));
    1325  _GL_CXXALIAS_RPL (ilogb, int, (double x));
    1326  # else
    1327  #  if !@HAVE_ILOGB@
    1328  _GL_FUNCDECL_SYS (ilogb, int, (double x));
    1329  #  endif
    1330  _GL_CXXALIAS_SYS (ilogb, int, (double x));
    1331  # endif
    1332  # if __GLIBC__ >= 2
    1333  _GL_CXXALIASWARN1 (ilogb, int, (double x));
    1334  # endif
    1335  #elif defined GNULIB_POSIXCHECK
    1336  # undef ilogb
    1337  # if HAVE_RAW_DECL_ILOGB
    1338  _GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
    1339                   "use gnulib module ilogb for portability");
    1340  # endif
    1341  #endif
    1342  
    1343  #if @GNULIB_ILOGBL@
    1344  # if @REPLACE_ILOGBL@
    1345  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1346  #   undef ilogbl
    1347  #   define ilogbl rpl_ilogbl
    1348  #  endif
    1349  _GL_FUNCDECL_RPL (ilogbl, int, (long double x));
    1350  _GL_CXXALIAS_RPL (ilogbl, int, (long double x));
    1351  # else
    1352  #  if !@HAVE_ILOGBL@
    1353  #   undef ilogbl
    1354  _GL_FUNCDECL_SYS (ilogbl, int, (long double x));
    1355  #  endif
    1356  _GL_CXXALIAS_SYS (ilogbl, int, (long double x));
    1357  # endif
    1358  # if __GLIBC__ >= 2
    1359  _GL_CXXALIASWARN (ilogbl);
    1360  # endif
    1361  #elif defined GNULIB_POSIXCHECK
    1362  # undef ilogbl
    1363  # if HAVE_RAW_DECL_ILOGBL
    1364  _GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
    1365                   "use gnulib module ilogbl for portability");
    1366  # endif
    1367  #endif
    1368  
    1369  
    1370  #if @GNULIB_MDA_J0@
    1371  /* On native Windows, map 'j0' to '_j0', so that -loldnames is not
    1372     required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    1373     platforms by defining GNULIB_NAMESPACE::j0 always.  */
    1374  # if defined _WIN32 && !defined __CYGWIN__
    1375  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1376  #   undef j0
    1377  #   define j0 _j0
    1378  #  endif
    1379  _GL_CXXALIAS_MDA (j0, double, (double x));
    1380  # else
    1381  _GL_CXXALIAS_SYS (j0, double, (double x));
    1382  # endif
    1383  _GL_CXXALIASWARN (j0);
    1384  #endif
    1385  
    1386  #if @GNULIB_MDA_J1@
    1387  /* On native Windows, map 'j1' to '_j1', so that -loldnames is not
    1388     required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    1389     platforms by defining GNULIB_NAMESPACE::j1 always.  */
    1390  # if defined _WIN32 && !defined __CYGWIN__
    1391  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1392  #   undef j1
    1393  #   define j1 _j1
    1394  #  endif
    1395  _GL_CXXALIAS_MDA (j1, double, (double x));
    1396  # else
    1397  _GL_CXXALIAS_SYS (j1, double, (double x));
    1398  # endif
    1399  _GL_CXXALIASWARN (j1);
    1400  #endif
    1401  
    1402  #if @GNULIB_MDA_JN@
    1403  /* On native Windows, map 'jn' to '_jn', so that -loldnames is not
    1404     required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    1405     platforms by defining GNULIB_NAMESPACE::jn always.  */
    1406  # if defined _WIN32 && !defined __CYGWIN__
    1407  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1408  #   undef jn
    1409  #   define jn _jn
    1410  #  endif
    1411  _GL_CXXALIAS_MDA (jn, double, (int n, double x));
    1412  # else
    1413  _GL_CXXALIAS_SYS (jn, double, (int n, double x));
    1414  # endif
    1415  _GL_CXXALIASWARN (jn);
    1416  #endif
    1417  
    1418  
    1419  /* Return x * 2^exp.  */
    1420  #if @GNULIB_LDEXPF@
    1421  # if !@HAVE_LDEXPF@
    1422  #  undef ldexpf
    1423  _GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
    1424  # endif
    1425  _GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
    1426  # if __GLIBC__ >= 2
    1427  _GL_CXXALIASWARN (ldexpf);
    1428  # endif
    1429  #elif defined GNULIB_POSIXCHECK
    1430  # undef ldexpf
    1431  # if HAVE_RAW_DECL_LDEXPF
    1432  _GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
    1433                   "use gnulib module ldexpf for portability");
    1434  # endif
    1435  #endif
    1436  
    1437  /* Return x * 2^exp.  */
    1438  #if @GNULIB_LDEXP@
    1439  # if @REPLACE_LDEXP@
    1440  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1441  #   undef ldexp
    1442  #   define ldexp rpl_ldexp
    1443  #  endif
    1444  _GL_FUNCDECL_RPL (ldexp, double, (double x, int exp));
    1445  _GL_CXXALIAS_RPL (ldexp, double, (double x, int exp));
    1446  # else
    1447  /* Assume ldexp is always declared.  */
    1448  _GL_CXXALIAS_SYS (ldexp, double, (double x, int exp));
    1449  # endif
    1450  # if __GLIBC__ >= 2
    1451  _GL_CXXALIASWARN1 (ldexp, double, (double x, int exp));
    1452  # endif
    1453  #elif defined GNULIB_POSIXCHECK
    1454  # undef ldexp
    1455  /* Assume ldexp is always declared.  */
    1456  _GL_WARN_ON_USE (ldexp, "ldexp is unportable - "
    1457                   "use gnulib module ldexp for portability");
    1458  #endif
    1459  
    1460  /* Return x * 2^exp.  */
    1461  #if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
    1462  # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1463  #  undef ldexpl
    1464  #  define ldexpl rpl_ldexpl
    1465  # endif
    1466  _GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
    1467  _GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
    1468  #else
    1469  # if !@HAVE_DECL_LDEXPL@
    1470  _GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
    1471  # endif
    1472  # if @GNULIB_LDEXPL@
    1473  _GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
    1474  # endif
    1475  #endif
    1476  #if @GNULIB_LDEXPL@
    1477  # if __GLIBC__ >= 2
    1478  _GL_CXXALIASWARN (ldexpl);
    1479  # endif
    1480  #endif
    1481  #if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
    1482  # undef ldexpl
    1483  # if HAVE_RAW_DECL_LDEXPL
    1484  _GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
    1485                   "use gnulib module ldexpl for portability");
    1486  # endif
    1487  #endif
    1488  
    1489  
    1490  #if @GNULIB_LOGF@
    1491  # if @REPLACE_LOGF@
    1492  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1493  #   undef logf
    1494  #   define logf rpl_logf
    1495  #  endif
    1496  _GL_FUNCDECL_RPL (logf, float, (float x));
    1497  _GL_CXXALIAS_RPL (logf, float, (float x));
    1498  # else
    1499  #  if !@HAVE_LOGF@
    1500  #   undef logf
    1501  _GL_FUNCDECL_SYS (logf, float, (float x));
    1502  #  endif
    1503  _GL_CXXALIAS_SYS (logf, float, (float x));
    1504  # endif
    1505  _GL_CXXALIASWARN (logf);
    1506  #elif defined GNULIB_POSIXCHECK
    1507  # undef logf
    1508  # if HAVE_RAW_DECL_LOGF
    1509  _GL_WARN_ON_USE (logf, "logf is unportable - "
    1510                   "use gnulib module logf for portability");
    1511  # endif
    1512  #endif
    1513  
    1514  #if @GNULIB_LOG@
    1515  # if @REPLACE_LOG@
    1516  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1517  #   undef log
    1518  #   define log rpl_log
    1519  #  endif
    1520  _GL_FUNCDECL_RPL (log, double, (double x));
    1521  _GL_CXXALIAS_RPL (log, double, (double x));
    1522  # else
    1523  _GL_CXXALIAS_SYS (log, double, (double x));
    1524  # endif
    1525  # if __GLIBC__ >= 2
    1526  _GL_CXXALIASWARN1 (log, double, (double x));
    1527  # endif
    1528  #elif defined GNULIB_POSIXCHECK
    1529  # undef log
    1530  # if HAVE_RAW_DECL_LOG
    1531  _GL_WARN_ON_USE (log, "log has portability problems - "
    1532                   "use gnulib module log for portability");
    1533  # endif
    1534  #endif
    1535  
    1536  #if @GNULIB_LOGL@
    1537  # if @REPLACE_LOGL@
    1538  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1539  #   undef logl
    1540  #   define logl rpl_logl
    1541  #  endif
    1542  _GL_FUNCDECL_RPL (logl, long double, (long double x));
    1543  _GL_CXXALIAS_RPL (logl, long double, (long double x));
    1544  # else
    1545  #  if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
    1546  #   undef logl
    1547  _GL_FUNCDECL_SYS (logl, long double, (long double x));
    1548  #  endif
    1549  _GL_CXXALIAS_SYS (logl, long double, (long double x));
    1550  # endif
    1551  # if __GLIBC__ >= 2
    1552  _GL_CXXALIASWARN (logl);
    1553  # endif
    1554  #elif defined GNULIB_POSIXCHECK
    1555  # undef logl
    1556  # if HAVE_RAW_DECL_LOGL
    1557  _GL_WARN_ON_USE (logl, "logl is unportable - "
    1558                   "use gnulib module logl for portability");
    1559  # endif
    1560  #endif
    1561  
    1562  
    1563  #if @GNULIB_LOG10F@
    1564  # if @REPLACE_LOG10F@
    1565  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1566  #   undef log10f
    1567  #   define log10f rpl_log10f
    1568  #  endif
    1569  _GL_FUNCDECL_RPL (log10f, float, (float x));
    1570  _GL_CXXALIAS_RPL (log10f, float, (float x));
    1571  # else
    1572  #  if !@HAVE_LOG10F@
    1573  #   undef log10f
    1574  _GL_FUNCDECL_SYS (log10f, float, (float x));
    1575  #  endif
    1576  _GL_CXXALIAS_SYS (log10f, float, (float x));
    1577  # endif
    1578  _GL_CXXALIASWARN (log10f);
    1579  #elif defined GNULIB_POSIXCHECK
    1580  # undef log10f
    1581  # if HAVE_RAW_DECL_LOG10F
    1582  _GL_WARN_ON_USE (log10f, "log10f is unportable - "
    1583                   "use gnulib module log10f for portability");
    1584  # endif
    1585  #endif
    1586  
    1587  #if @GNULIB_LOG10@
    1588  # if @REPLACE_LOG10@
    1589  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1590  #   undef log10
    1591  #   define log10 rpl_log10
    1592  #  endif
    1593  _GL_FUNCDECL_RPL (log10, double, (double x));
    1594  _GL_CXXALIAS_RPL (log10, double, (double x));
    1595  # else
    1596  _GL_CXXALIAS_SYS (log10, double, (double x));
    1597  # endif
    1598  # if __GLIBC__ >= 2
    1599  _GL_CXXALIASWARN1 (log10, double, (double x));
    1600  # endif
    1601  #elif defined GNULIB_POSIXCHECK
    1602  # undef log10
    1603  # if HAVE_RAW_DECL_LOG10
    1604  _GL_WARN_ON_USE (log10, "log10 has portability problems - "
    1605                   "use gnulib module log10 for portability");
    1606  # endif
    1607  #endif
    1608  
    1609  #if @GNULIB_LOG10L@
    1610  # if @REPLACE_LOG10L@
    1611  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1612  #   undef log10l
    1613  #   define log10l rpl_log10l
    1614  #  endif
    1615  _GL_FUNCDECL_RPL (log10l, long double, (long double x));
    1616  _GL_CXXALIAS_RPL (log10l, long double, (long double x));
    1617  # else
    1618  #  if !@HAVE_LOG10L@ || !@HAVE_DECL_LOG10L@
    1619  #   undef log10l
    1620  _GL_FUNCDECL_SYS (log10l, long double, (long double x));
    1621  #  endif
    1622  _GL_CXXALIAS_SYS (log10l, long double, (long double x));
    1623  # endif
    1624  # if __GLIBC__ >= 2
    1625  _GL_CXXALIASWARN (log10l);
    1626  # endif
    1627  #elif defined GNULIB_POSIXCHECK
    1628  # undef log10l
    1629  # if HAVE_RAW_DECL_LOG10L
    1630  _GL_WARN_ON_USE (log10l, "log10l is unportable - "
    1631                   "use gnulib module log10l for portability");
    1632  # endif
    1633  #endif
    1634  
    1635  
    1636  #if @GNULIB_LOG1PF@
    1637  # if @REPLACE_LOG1PF@
    1638  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1639  #   undef log1pf
    1640  #   define log1pf rpl_log1pf
    1641  #  endif
    1642  _GL_FUNCDECL_RPL (log1pf, float, (float x));
    1643  _GL_CXXALIAS_RPL (log1pf, float, (float x));
    1644  # else
    1645  #  if !@HAVE_LOG1PF@
    1646  _GL_FUNCDECL_SYS (log1pf, float, (float x));
    1647  #  endif
    1648  _GL_CXXALIAS_SYS (log1pf, float, (float x));
    1649  # endif
    1650  _GL_CXXALIASWARN (log1pf);
    1651  #elif defined GNULIB_POSIXCHECK
    1652  # undef log1pf
    1653  # if HAVE_RAW_DECL_LOG1PF
    1654  _GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
    1655                   "use gnulib module log1pf for portability");
    1656  # endif
    1657  #endif
    1658  
    1659  #if @GNULIB_LOG1P@
    1660  # if @REPLACE_LOG1P@
    1661  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1662  #   undef log1p
    1663  #   define log1p rpl_log1p
    1664  #  endif
    1665  _GL_FUNCDECL_RPL (log1p, double, (double x));
    1666  _GL_CXXALIAS_RPL (log1p, double, (double x));
    1667  # else
    1668  #  if !@HAVE_LOG1P@
    1669  _GL_FUNCDECL_SYS (log1p, double, (double x));
    1670  #  endif
    1671  _GL_CXXALIAS_SYS (log1p, double, (double x));
    1672  # endif
    1673  # if __GLIBC__ >= 2
    1674  _GL_CXXALIASWARN1 (log1p, double, (double x));
    1675  # endif
    1676  #elif defined GNULIB_POSIXCHECK
    1677  # undef log1p
    1678  # if HAVE_RAW_DECL_LOG1P
    1679  _GL_WARN_ON_USE (log1p, "log1p has portability problems - "
    1680                   "use gnulib module log1p for portability");
    1681  # endif
    1682  #endif
    1683  
    1684  #if @GNULIB_LOG1PL@
    1685  # if @REPLACE_LOG1PL@
    1686  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1687  #   undef log1pl
    1688  #   define log1pl rpl_log1pl
    1689  #  endif
    1690  _GL_FUNCDECL_RPL (log1pl, long double, (long double x));
    1691  _GL_CXXALIAS_RPL (log1pl, long double, (long double x));
    1692  # else
    1693  #  if !@HAVE_LOG1PL@
    1694  _GL_FUNCDECL_SYS (log1pl, long double, (long double x));
    1695  #  endif
    1696  _GL_CXXALIAS_SYS (log1pl, long double, (long double x));
    1697  # endif
    1698  # if __GLIBC__ >= 2
    1699  _GL_CXXALIASWARN (log1pl);
    1700  # endif
    1701  #elif defined GNULIB_POSIXCHECK
    1702  # undef log1pl
    1703  # if HAVE_RAW_DECL_LOG1PL
    1704  _GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
    1705                   "use gnulib module log1pl for portability");
    1706  # endif
    1707  #endif
    1708  
    1709  
    1710  #if @GNULIB_LOG2F@
    1711  # if @REPLACE_LOG2F@
    1712  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1713  #   undef log2f
    1714  #   define log2f rpl_log2f
    1715  #  endif
    1716  _GL_FUNCDECL_RPL (log2f, float, (float x));
    1717  _GL_CXXALIAS_RPL (log2f, float, (float x));
    1718  # else
    1719  #  if !@HAVE_DECL_LOG2F@
    1720  #   undef log2f
    1721  _GL_FUNCDECL_SYS (log2f, float, (float x));
    1722  #  endif
    1723  _GL_CXXALIAS_SYS (log2f, float, (float x));
    1724  # endif
    1725  # if __GLIBC__ >= 2
    1726  _GL_CXXALIASWARN (log2f);
    1727  # endif
    1728  #elif defined GNULIB_POSIXCHECK
    1729  # undef log2f
    1730  # if HAVE_RAW_DECL_LOG2F
    1731  _GL_WARN_ON_USE (log2f, "log2f is unportable - "
    1732                   "use gnulib module log2f for portability");
    1733  # endif
    1734  #endif
    1735  
    1736  #if @GNULIB_LOG2@
    1737  # if @REPLACE_LOG2@
    1738  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1739  #   undef log2
    1740  #   define log2 rpl_log2
    1741  #  endif
    1742  _GL_FUNCDECL_RPL (log2, double, (double x));
    1743  _GL_CXXALIAS_RPL (log2, double, (double x));
    1744  # else
    1745  #  if !@HAVE_DECL_LOG2@
    1746  #   undef log2
    1747  _GL_FUNCDECL_SYS (log2, double, (double x));
    1748  #  endif
    1749  _GL_CXXALIAS_SYS (log2, double, (double x));
    1750  # endif
    1751  # if __GLIBC__ >= 2
    1752  _GL_CXXALIASWARN1 (log2, double, (double x));
    1753  # endif
    1754  #elif defined GNULIB_POSIXCHECK
    1755  # undef log2
    1756  # if HAVE_RAW_DECL_LOG2
    1757  _GL_WARN_ON_USE (log2, "log2 is unportable - "
    1758                   "use gnulib module log2 for portability");
    1759  # endif
    1760  #endif
    1761  
    1762  #if @GNULIB_LOG2L@
    1763  # if @REPLACE_LOG2L@
    1764  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1765  #   undef log2l
    1766  #   define log2l rpl_log2l
    1767  #  endif
    1768  _GL_FUNCDECL_RPL (log2l, long double, (long double x));
    1769  _GL_CXXALIAS_RPL (log2l, long double, (long double x));
    1770  # else
    1771  #  if !@HAVE_DECL_LOG2L@
    1772  _GL_FUNCDECL_SYS (log2l, long double, (long double x));
    1773  #  endif
    1774  _GL_CXXALIAS_SYS (log2l, long double, (long double x));
    1775  # endif
    1776  # if __GLIBC__ >= 2
    1777  _GL_CXXALIASWARN (log2l);
    1778  # endif
    1779  #elif defined GNULIB_POSIXCHECK
    1780  # undef log2l
    1781  # if HAVE_RAW_DECL_LOG2L
    1782  _GL_WARN_ON_USE (log2l, "log2l is unportable - "
    1783                   "use gnulib module log2l for portability");
    1784  # endif
    1785  #endif
    1786  
    1787  
    1788  #if @GNULIB_LOGBF@
    1789  # if @REPLACE_LOGBF@
    1790  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1791  #   undef logbf
    1792  #   define logbf rpl_logbf
    1793  #  endif
    1794  _GL_FUNCDECL_RPL (logbf, float, (float x));
    1795  _GL_CXXALIAS_RPL (logbf, float, (float x));
    1796  # else
    1797  #  if !@HAVE_LOGBF@
    1798  _GL_FUNCDECL_SYS (logbf, float, (float x));
    1799  #  endif
    1800  _GL_CXXALIAS_SYS (logbf, float, (float x));
    1801  # endif
    1802  _GL_CXXALIASWARN (logbf);
    1803  #elif defined GNULIB_POSIXCHECK
    1804  # undef logbf
    1805  # if HAVE_RAW_DECL_LOGBF
    1806  _GL_WARN_ON_USE (logbf, "logbf is unportable - "
    1807                   "use gnulib module logbf for portability");
    1808  # endif
    1809  #endif
    1810  
    1811  #if @GNULIB_LOGB@
    1812  # if @REPLACE_LOGB@
    1813  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1814  #   undef logb
    1815  #   define logb rpl_logb
    1816  #  endif
    1817  _GL_FUNCDECL_RPL (logb, double, (double x));
    1818  _GL_CXXALIAS_RPL (logb, double, (double x));
    1819  # else
    1820  #  if !@HAVE_DECL_LOGB@
    1821  _GL_FUNCDECL_SYS (logb, double, (double x));
    1822  #  endif
    1823  _GL_CXXALIAS_SYS (logb, double, (double x));
    1824  # endif
    1825  # if __GLIBC__ >= 2
    1826  _GL_CXXALIASWARN1 (logb, double, (double x));
    1827  # endif
    1828  #elif defined GNULIB_POSIXCHECK
    1829  # undef logb
    1830  # if HAVE_RAW_DECL_LOGB
    1831  _GL_WARN_ON_USE (logb, "logb is unportable - "
    1832                   "use gnulib module logb for portability");
    1833  # endif
    1834  #endif
    1835  
    1836  #if @GNULIB_LOGBL@
    1837  # if @REPLACE_LOGBL@
    1838  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1839  #   undef logbl
    1840  #   define logbl rpl_logbl
    1841  #  endif
    1842  _GL_FUNCDECL_RPL (logbl, long double, (long double x));
    1843  _GL_CXXALIAS_RPL (logbl, long double, (long double x));
    1844  # else
    1845  #  if !@HAVE_LOGBL@
    1846  _GL_FUNCDECL_SYS (logbl, long double, (long double x));
    1847  #  endif
    1848  _GL_CXXALIAS_SYS (logbl, long double, (long double x));
    1849  # endif
    1850  # if __GLIBC__ >= 2
    1851  _GL_CXXALIASWARN (logbl);
    1852  # endif
    1853  #elif defined GNULIB_POSIXCHECK
    1854  # undef logbl
    1855  # if HAVE_RAW_DECL_LOGBL
    1856  _GL_WARN_ON_USE (logbl, "logbl is unportable - "
    1857                   "use gnulib module logbl for portability");
    1858  # endif
    1859  #endif
    1860  
    1861  
    1862  #if @GNULIB_MODFF@
    1863  # if @REPLACE_MODFF@
    1864  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1865  #   undef modff
    1866  #   define modff rpl_modff
    1867  #  endif
    1868  _GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
    1869  _GL_CXXALIAS_RPL (modff, float, (float x, float *iptr));
    1870  # else
    1871  #  if !@HAVE_MODFF@
    1872  #   undef modff
    1873  _GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
    1874  #  endif
    1875  _GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
    1876  # endif
    1877  _GL_CXXALIASWARN (modff);
    1878  #elif defined GNULIB_POSIXCHECK
    1879  # undef modff
    1880  # if HAVE_RAW_DECL_MODFF
    1881  _GL_WARN_ON_USE (modff, "modff is unportable - "
    1882                   "use gnulib module modff for portability");
    1883  # endif
    1884  #endif
    1885  
    1886  #if @GNULIB_MODF@
    1887  # if @REPLACE_MODF@
    1888  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1889  #   undef modf
    1890  #   define modf rpl_modf
    1891  #  endif
    1892  _GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2)));
    1893  _GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
    1894  # else
    1895  _GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
    1896  # endif
    1897  # if __GLIBC__ >= 2
    1898  _GL_CXXALIASWARN1 (modf, double, (double x, double *iptr));
    1899  # endif
    1900  #elif defined GNULIB_POSIXCHECK
    1901  # undef modf
    1902  # if HAVE_RAW_DECL_MODF
    1903  _GL_WARN_ON_USE (modf, "modf has portability problems - "
    1904                   "use gnulib module modf for portability");
    1905  # endif
    1906  #endif
    1907  
    1908  #if @GNULIB_MODFL@
    1909  # if @REPLACE_MODFL@
    1910  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1911  #   undef modfl
    1912  #   define modfl rpl_modfl
    1913  #  endif
    1914  _GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr)
    1915                                        _GL_ARG_NONNULL ((2)));
    1916  _GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr));
    1917  # else
    1918  #  if !@HAVE_MODFL@
    1919  #   undef modfl
    1920  _GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
    1921                                        _GL_ARG_NONNULL ((2)));
    1922  #  endif
    1923  _GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
    1924  # endif
    1925  # if __GLIBC__ >= 2
    1926  _GL_CXXALIASWARN (modfl);
    1927  # endif
    1928  #elif defined GNULIB_POSIXCHECK
    1929  # undef modfl
    1930  # if HAVE_RAW_DECL_MODFL
    1931  _GL_WARN_ON_USE (modfl, "modfl is unportable - "
    1932                   "use gnulib module modfl for portability");
    1933  # endif
    1934  #endif
    1935  
    1936  
    1937  #if @GNULIB_POWF@
    1938  # if !@HAVE_POWF@
    1939  #  undef powf
    1940  _GL_FUNCDECL_SYS (powf, float, (float x, float y));
    1941  # endif
    1942  _GL_CXXALIAS_SYS (powf, float, (float x, float y));
    1943  _GL_CXXALIASWARN (powf);
    1944  #elif defined GNULIB_POSIXCHECK
    1945  # undef powf
    1946  # if HAVE_RAW_DECL_POWF
    1947  _GL_WARN_ON_USE (powf, "powf is unportable - "
    1948                   "use gnulib module powf for portability");
    1949  # endif
    1950  #endif
    1951  
    1952  
    1953  #if @GNULIB_REMAINDERF@
    1954  # if @REPLACE_REMAINDERF@
    1955  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1956  #   undef remainderf
    1957  #   define remainderf rpl_remainderf
    1958  #  endif
    1959  _GL_FUNCDECL_RPL (remainderf, float, (float x, float y));
    1960  _GL_CXXALIAS_RPL (remainderf, float, (float x, float y));
    1961  # else
    1962  #  if !@HAVE_REMAINDERF@
    1963  _GL_FUNCDECL_SYS (remainderf, float, (float x, float y));
    1964  #  endif
    1965  _GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
    1966  # endif
    1967  _GL_CXXALIASWARN (remainderf);
    1968  #elif defined GNULIB_POSIXCHECK
    1969  # undef remainderf
    1970  # if HAVE_RAW_DECL_REMAINDERF
    1971  _GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
    1972                   "use gnulib module remainderf for portability");
    1973  # endif
    1974  #endif
    1975  
    1976  #if @GNULIB_REMAINDER@
    1977  # if @REPLACE_REMAINDER@
    1978  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    1979  #   undef remainder
    1980  #   define remainder rpl_remainder
    1981  #  endif
    1982  _GL_FUNCDECL_RPL (remainder, double, (double x, double y));
    1983  _GL_CXXALIAS_RPL (remainder, double, (double x, double y));
    1984  # else
    1985  #  if !@HAVE_REMAINDER@ || !@HAVE_DECL_REMAINDER@
    1986  _GL_FUNCDECL_SYS (remainder, double, (double x, double y));
    1987  #  endif
    1988  _GL_CXXALIAS_SYS (remainder, double, (double x, double y));
    1989  # endif
    1990  # if __GLIBC__ >= 2
    1991  _GL_CXXALIASWARN1 (remainder, double, (double x, double y));
    1992  # endif
    1993  #elif defined GNULIB_POSIXCHECK
    1994  # undef remainder
    1995  # if HAVE_RAW_DECL_REMAINDER
    1996  _GL_WARN_ON_USE (remainder, "remainder is unportable - "
    1997                   "use gnulib module remainder for portability");
    1998  # endif
    1999  #endif
    2000  
    2001  #if @GNULIB_REMAINDERL@
    2002  # if @REPLACE_REMAINDERL@
    2003  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2004  #   undef remainderl
    2005  #   define remainderl rpl_remainderl
    2006  #  endif
    2007  _GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y));
    2008  _GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
    2009  # else
    2010  #  if !@HAVE_DECL_REMAINDERL@
    2011  #   undef remainderl
    2012  #   if !(defined __cplusplus && defined _AIX)
    2013  _GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
    2014  #   endif
    2015  #  endif
    2016  _GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
    2017  # endif
    2018  # if __GLIBC__ >= 2
    2019  _GL_CXXALIASWARN (remainderl);
    2020  # endif
    2021  #elif defined GNULIB_POSIXCHECK
    2022  # undef remainderl
    2023  # if HAVE_RAW_DECL_REMAINDERL
    2024  _GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
    2025                   "use gnulib module remainderl for portability");
    2026  # endif
    2027  #endif
    2028  
    2029  
    2030  #if @GNULIB_RINTF@
    2031  # if !@HAVE_DECL_RINTF@
    2032  _GL_FUNCDECL_SYS (rintf, float, (float x));
    2033  # endif
    2034  _GL_CXXALIAS_SYS (rintf, float, (float x));
    2035  _GL_CXXALIASWARN (rintf);
    2036  #elif defined GNULIB_POSIXCHECK
    2037  # undef rintf
    2038  # if HAVE_RAW_DECL_RINTF
    2039  _GL_WARN_ON_USE (rintf, "rintf is unportable - "
    2040                   "use gnulib module rintf for portability");
    2041  # endif
    2042  #endif
    2043  
    2044  #if @GNULIB_RINT@
    2045  # if !@HAVE_RINT@
    2046  _GL_FUNCDECL_SYS (rint, double, (double x));
    2047  # endif
    2048  _GL_CXXALIAS_SYS (rint, double, (double x));
    2049  # if __GLIBC__ >= 2
    2050  _GL_CXXALIASWARN1 (rint, double, (double x));
    2051  # endif
    2052  #elif defined GNULIB_POSIXCHECK
    2053  # undef rint
    2054  # if HAVE_RAW_DECL_RINT
    2055  _GL_WARN_ON_USE (rint, "rint is unportable - "
    2056                   "use gnulib module rint for portability");
    2057  # endif
    2058  #endif
    2059  
    2060  #if @GNULIB_RINTL@
    2061  # if @REPLACE_RINTL@
    2062  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2063  #   undef rintl
    2064  #   define rintl rpl_rintl
    2065  #  endif
    2066  _GL_FUNCDECL_RPL (rintl, long double, (long double x));
    2067  _GL_CXXALIAS_RPL (rintl, long double, (long double x));
    2068  # else
    2069  #  if !@HAVE_RINTL@
    2070  _GL_FUNCDECL_SYS (rintl, long double, (long double x));
    2071  #  endif
    2072  _GL_CXXALIAS_SYS (rintl, long double, (long double x));
    2073  # endif
    2074  # if __GLIBC__ >= 2
    2075  _GL_CXXALIASWARN (rintl);
    2076  # endif
    2077  #elif defined GNULIB_POSIXCHECK
    2078  # undef rintl
    2079  # if HAVE_RAW_DECL_RINTL
    2080  _GL_WARN_ON_USE (rintl, "rintl is unportable - "
    2081                   "use gnulib module rintl for portability");
    2082  # endif
    2083  #endif
    2084  
    2085  
    2086  #if @GNULIB_ROUNDF@
    2087  # if @REPLACE_ROUNDF@
    2088  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2089  #   undef roundf
    2090  #   define roundf rpl_roundf
    2091  #  endif
    2092  _GL_FUNCDECL_RPL (roundf, float, (float x));
    2093  _GL_CXXALIAS_RPL (roundf, float, (float x));
    2094  # else
    2095  #  if !@HAVE_DECL_ROUNDF@
    2096  _GL_FUNCDECL_SYS (roundf, float, (float x));
    2097  #  endif
    2098  _GL_CXXALIAS_SYS (roundf, float, (float x));
    2099  # endif
    2100  _GL_CXXALIASWARN (roundf);
    2101  #elif defined GNULIB_POSIXCHECK
    2102  # undef roundf
    2103  # if HAVE_RAW_DECL_ROUNDF
    2104  _GL_WARN_ON_USE (roundf, "roundf is unportable - "
    2105                   "use gnulib module roundf for portability");
    2106  # endif
    2107  #endif
    2108  
    2109  #if @GNULIB_ROUND@
    2110  # if @REPLACE_ROUND@
    2111  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2112  #   undef round
    2113  #   define round rpl_round
    2114  #  endif
    2115  _GL_FUNCDECL_RPL (round, double, (double x));
    2116  _GL_CXXALIAS_RPL (round, double, (double x));
    2117  # else
    2118  #  if !@HAVE_DECL_ROUND@
    2119  _GL_FUNCDECL_SYS (round, double, (double x));
    2120  #  endif
    2121  _GL_CXXALIAS_SYS (round, double, (double x));
    2122  # endif
    2123  # if __GLIBC__ >= 2
    2124  _GL_CXXALIASWARN1 (round, double, (double x));
    2125  # endif
    2126  #elif defined GNULIB_POSIXCHECK
    2127  # undef round
    2128  # if HAVE_RAW_DECL_ROUND
    2129  _GL_WARN_ON_USE (round, "round is unportable - "
    2130                   "use gnulib module round for portability");
    2131  # endif
    2132  #endif
    2133  
    2134  #if @GNULIB_ROUNDL@
    2135  # if @REPLACE_ROUNDL@
    2136  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2137  #   undef roundl
    2138  #   define roundl rpl_roundl
    2139  #  endif
    2140  _GL_FUNCDECL_RPL (roundl, long double, (long double x));
    2141  _GL_CXXALIAS_RPL (roundl, long double, (long double x));
    2142  # else
    2143  #  if !@HAVE_DECL_ROUNDL@
    2144  #   undef roundl
    2145  #   if !(defined __cplusplus && defined _AIX)
    2146  _GL_FUNCDECL_SYS (roundl, long double, (long double x));
    2147  #   endif
    2148  #  endif
    2149  _GL_CXXALIAS_SYS (roundl, long double, (long double x));
    2150  # endif
    2151  # if __GLIBC__ >= 2
    2152  _GL_CXXALIASWARN (roundl);
    2153  # endif
    2154  #elif defined GNULIB_POSIXCHECK
    2155  # undef roundl
    2156  # if HAVE_RAW_DECL_ROUNDL
    2157  _GL_WARN_ON_USE (roundl, "roundl is unportable - "
    2158                   "use gnulib module roundl for portability");
    2159  # endif
    2160  #endif
    2161  
    2162  
    2163  #if @GNULIB_SINF@
    2164  # if @REPLACE_SINF@
    2165  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2166  #   undef sinf
    2167  #   define sinf rpl_sinf
    2168  #  endif
    2169  _GL_FUNCDECL_RPL (sinf, float, (float x));
    2170  _GL_CXXALIAS_RPL (sinf, float, (float x));
    2171  # else
    2172  #  if !@HAVE_SINF@
    2173  #   undef sinf
    2174  _GL_FUNCDECL_SYS (sinf, float, (float x));
    2175  #  endif
    2176  _GL_CXXALIAS_SYS (sinf, float, (float x));
    2177  # endif
    2178  _GL_CXXALIASWARN (sinf);
    2179  #elif defined GNULIB_POSIXCHECK
    2180  # undef sinf
    2181  # if HAVE_RAW_DECL_SINF
    2182  _GL_WARN_ON_USE (sinf, "sinf is unportable - "
    2183                   "use gnulib module sinf for portability");
    2184  # endif
    2185  #endif
    2186  
    2187  #if @GNULIB_SINL@
    2188  # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
    2189  #  undef sinl
    2190  _GL_FUNCDECL_SYS (sinl, long double, (long double x));
    2191  # endif
    2192  _GL_CXXALIAS_SYS (sinl, long double, (long double x));
    2193  # if __GLIBC__ >= 2
    2194  _GL_CXXALIASWARN (sinl);
    2195  # endif
    2196  #elif defined GNULIB_POSIXCHECK
    2197  # undef sinl
    2198  # if HAVE_RAW_DECL_SINL
    2199  _GL_WARN_ON_USE (sinl, "sinl is unportable - "
    2200                   "use gnulib module sinl for portability");
    2201  # endif
    2202  #endif
    2203  
    2204  
    2205  #if @GNULIB_SINHF@
    2206  # if @REPLACE_SINHF@
    2207  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2208  #   undef sinhf
    2209  #   define sinhf rpl_sinhf
    2210  #  endif
    2211  _GL_FUNCDECL_RPL (sinhf, float, (float x));
    2212  _GL_CXXALIAS_RPL (sinhf, float, (float x));
    2213  # else
    2214  #  if !@HAVE_SINHF@
    2215  #   undef sinhf
    2216  _GL_FUNCDECL_SYS (sinhf, float, (float x));
    2217  #  endif
    2218  _GL_CXXALIAS_SYS (sinhf, float, (float x));
    2219  # endif
    2220  _GL_CXXALIASWARN (sinhf);
    2221  #elif defined GNULIB_POSIXCHECK
    2222  # undef sinhf
    2223  # if HAVE_RAW_DECL_SINHF
    2224  _GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
    2225                   "use gnulib module sinhf for portability");
    2226  # endif
    2227  #endif
    2228  
    2229  
    2230  #if @GNULIB_SQRTF@
    2231  # if @REPLACE_SQRTF@
    2232  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2233  #   undef sqrtf
    2234  #   define sqrtf rpl_sqrtf
    2235  #  endif
    2236  _GL_FUNCDECL_RPL (sqrtf, float, (float x));
    2237  _GL_CXXALIAS_RPL (sqrtf, float, (float x));
    2238  # else
    2239  #  if !@HAVE_SQRTF@
    2240  #   undef sqrtf
    2241  _GL_FUNCDECL_SYS (sqrtf, float, (float x));
    2242  #  endif
    2243  _GL_CXXALIAS_SYS (sqrtf, float, (float x));
    2244  # endif
    2245  _GL_CXXALIASWARN (sqrtf);
    2246  #elif defined GNULIB_POSIXCHECK
    2247  # undef sqrtf
    2248  # if HAVE_RAW_DECL_SQRTF
    2249  _GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
    2250                   "use gnulib module sqrtf for portability");
    2251  # endif
    2252  #endif
    2253  
    2254  #if @GNULIB_SQRTL@
    2255  # if @REPLACE_SQRTL@
    2256  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2257  #   undef sqrtl
    2258  #   define sqrtl rpl_sqrtl
    2259  #  endif
    2260  _GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
    2261  _GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
    2262  # else
    2263  #  if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
    2264  #   undef sqrtl
    2265  _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
    2266  #  endif
    2267  _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
    2268  # endif
    2269  # if __GLIBC__ >= 2
    2270  _GL_CXXALIASWARN (sqrtl);
    2271  # endif
    2272  #elif defined GNULIB_POSIXCHECK
    2273  # undef sqrtl
    2274  # if HAVE_RAW_DECL_SQRTL
    2275  _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
    2276                   "use gnulib module sqrtl for portability");
    2277  # endif
    2278  #endif
    2279  
    2280  
    2281  #if @GNULIB_TANF@
    2282  # if @REPLACE_TANF@
    2283  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2284  #   undef tanf
    2285  #   define tanf rpl_tanf
    2286  #  endif
    2287  _GL_FUNCDECL_RPL (tanf, float, (float x));
    2288  _GL_CXXALIAS_RPL (tanf, float, (float x));
    2289  # else
    2290  #  if !@HAVE_TANF@
    2291  #   undef tanf
    2292  _GL_FUNCDECL_SYS (tanf, float, (float x));
    2293  #  endif
    2294  _GL_CXXALIAS_SYS (tanf, float, (float x));
    2295  # endif
    2296  _GL_CXXALIASWARN (tanf);
    2297  #elif defined GNULIB_POSIXCHECK
    2298  # undef tanf
    2299  # if HAVE_RAW_DECL_TANF
    2300  _GL_WARN_ON_USE (tanf, "tanf is unportable - "
    2301                   "use gnulib module tanf for portability");
    2302  # endif
    2303  #endif
    2304  
    2305  #if @GNULIB_TANL@
    2306  # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@
    2307  #  undef tanl
    2308  _GL_FUNCDECL_SYS (tanl, long double, (long double x));
    2309  # endif
    2310  _GL_CXXALIAS_SYS (tanl, long double, (long double x));
    2311  # if __GLIBC__ >= 2
    2312  _GL_CXXALIASWARN (tanl);
    2313  # endif
    2314  #elif defined GNULIB_POSIXCHECK
    2315  # undef tanl
    2316  # if HAVE_RAW_DECL_TANL
    2317  _GL_WARN_ON_USE (tanl, "tanl is unportable - "
    2318                   "use gnulib module tanl for portability");
    2319  # endif
    2320  #endif
    2321  
    2322  
    2323  #if @GNULIB_TANHF@
    2324  # if @REPLACE_TANHF@
    2325  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2326  #   undef tanhf
    2327  #   define tanhf rpl_tanhf
    2328  #  endif
    2329  _GL_FUNCDECL_RPL (tanhf, float, (float x));
    2330  _GL_CXXALIAS_RPL (tanhf, float, (float x));
    2331  # else
    2332  #  if !@HAVE_TANHF@
    2333  #   undef tanhf
    2334  _GL_FUNCDECL_SYS (tanhf, float, (float x));
    2335  #  endif
    2336  _GL_CXXALIAS_SYS (tanhf, float, (float x));
    2337  # endif
    2338  _GL_CXXALIASWARN (tanhf);
    2339  #elif defined GNULIB_POSIXCHECK
    2340  # undef tanhf
    2341  # if HAVE_RAW_DECL_TANHF
    2342  _GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
    2343                   "use gnulib module tanhf for portability");
    2344  # endif
    2345  #endif
    2346  
    2347  
    2348  #if @GNULIB_TRUNCF@
    2349  # if @REPLACE_TRUNCF@
    2350  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2351  #   undef truncf
    2352  #   define truncf rpl_truncf
    2353  #  endif
    2354  _GL_FUNCDECL_RPL (truncf, float, (float x));
    2355  _GL_CXXALIAS_RPL (truncf, float, (float x));
    2356  # else
    2357  #  if !@HAVE_DECL_TRUNCF@
    2358  _GL_FUNCDECL_SYS (truncf, float, (float x));
    2359  #  endif
    2360  _GL_CXXALIAS_SYS (truncf, float, (float x));
    2361  # endif
    2362  _GL_CXXALIASWARN (truncf);
    2363  #elif defined GNULIB_POSIXCHECK
    2364  # undef truncf
    2365  # if HAVE_RAW_DECL_TRUNCF
    2366  _GL_WARN_ON_USE (truncf, "truncf is unportable - "
    2367                   "use gnulib module truncf for portability");
    2368  # endif
    2369  #endif
    2370  
    2371  #if @GNULIB_TRUNC@
    2372  # if @REPLACE_TRUNC@
    2373  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2374  #   undef trunc
    2375  #   define trunc rpl_trunc
    2376  #  endif
    2377  _GL_FUNCDECL_RPL (trunc, double, (double x));
    2378  _GL_CXXALIAS_RPL (trunc, double, (double x));
    2379  # else
    2380  #  if !@HAVE_DECL_TRUNC@
    2381  _GL_FUNCDECL_SYS (trunc, double, (double x));
    2382  #  endif
    2383  _GL_CXXALIAS_SYS (trunc, double, (double x));
    2384  # endif
    2385  # if __GLIBC__ >= 2
    2386  _GL_CXXALIASWARN1 (trunc, double, (double x));
    2387  # endif
    2388  #elif defined GNULIB_POSIXCHECK
    2389  # undef trunc
    2390  # if HAVE_RAW_DECL_TRUNC
    2391  _GL_WARN_ON_USE (trunc, "trunc is unportable - "
    2392                   "use gnulib module trunc for portability");
    2393  # endif
    2394  #endif
    2395  
    2396  #if @GNULIB_TRUNCL@
    2397  # if @REPLACE_TRUNCL@
    2398  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2399  #   undef truncl
    2400  #   define truncl rpl_truncl
    2401  #  endif
    2402  _GL_FUNCDECL_RPL (truncl, long double, (long double x));
    2403  _GL_CXXALIAS_RPL (truncl, long double, (long double x));
    2404  # else
    2405  #  if !@HAVE_DECL_TRUNCL@
    2406  _GL_FUNCDECL_SYS (truncl, long double, (long double x));
    2407  #  endif
    2408  _GL_CXXALIAS_SYS (truncl, long double, (long double x));
    2409  # endif
    2410  # if __GLIBC__ >= 2
    2411  _GL_CXXALIASWARN (truncl);
    2412  # endif
    2413  #elif defined GNULIB_POSIXCHECK
    2414  # undef truncl
    2415  # if HAVE_RAW_DECL_TRUNCL
    2416  _GL_WARN_ON_USE (truncl, "truncl is unportable - "
    2417                   "use gnulib module truncl for portability");
    2418  # endif
    2419  #endif
    2420  
    2421  
    2422  #if @GNULIB_MDA_Y0@
    2423  /* On native Windows, map 'y0' to '_y0', so that -loldnames is not
    2424     required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    2425     platforms by defining GNULIB_NAMESPACE::y0 always.  */
    2426  # if defined _WIN32 && !defined __CYGWIN__
    2427  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2428  #   undef y0
    2429  #   define y0 _y0
    2430  #  endif
    2431  _GL_CXXALIAS_MDA (y0, double, (double x));
    2432  # else
    2433  _GL_CXXALIAS_SYS (y0, double, (double x));
    2434  # endif
    2435  _GL_CXXALIASWARN (y0);
    2436  #endif
    2437  
    2438  #if @GNULIB_MDA_Y1@
    2439  /* On native Windows, map 'y1' to '_y1', so that -loldnames is not
    2440     required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    2441     platforms by defining GNULIB_NAMESPACE::y1 always.  */
    2442  # if defined _WIN32 && !defined __CYGWIN__
    2443  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2444  #   undef y1
    2445  #   define y1 _y1
    2446  #  endif
    2447  _GL_CXXALIAS_MDA (y1, double, (double x));
    2448  # else
    2449  _GL_CXXALIAS_SYS (y1, double, (double x));
    2450  # endif
    2451  _GL_CXXALIASWARN (y1);
    2452  #endif
    2453  
    2454  #if @GNULIB_MDA_YN@
    2455  /* On native Windows, map 'yn' to '_yn', so that -loldnames is not
    2456     required.  In C++ with GNULIB_NAMESPACE, avoid differences between
    2457     platforms by defining GNULIB_NAMESPACE::yn always.  */
    2458  # if defined _WIN32 && !defined __CYGWIN__
    2459  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2460  #   undef yn
    2461  #   define yn _yn
    2462  #  endif
    2463  _GL_CXXALIAS_MDA (yn, double, (int n, double x));
    2464  # else
    2465  _GL_CXXALIAS_SYS (yn, double, (int n, double x));
    2466  # endif
    2467  _GL_CXXALIASWARN (yn);
    2468  #endif
    2469  
    2470  
    2471  /* Definitions of function-like macros come here, after the function
    2472     declarations.  */
    2473  
    2474  
    2475  #if @GNULIB_ISFINITE@
    2476  # if @REPLACE_ISFINITE@
    2477  _GL_EXTERN_C int gl_isfinitef (float x);
    2478  _GL_EXTERN_C int gl_isfinited (double x);
    2479  _GL_EXTERN_C int gl_isfinitel (long double x);
    2480  #  undef isfinite
    2481  #  define isfinite(x) \
    2482     (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \
    2483      sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
    2484      gl_isfinitef (x))
    2485  # endif
    2486  # ifdef __cplusplus
    2487  #  if defined isfinite || defined GNULIB_NAMESPACE
    2488  _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
    2489  #   undef isfinite
    2490  #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
    2491    /* This platform's <cmath> possibly defines isfinite through a set of inline
    2492       functions.  */
    2493  _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, rpl_isfinite, bool)
    2494  #    define isfinite rpl_isfinite
    2495  #    define GNULIB_NAMESPACE_LACKS_ISFINITE 1
    2496  #   else
    2497  _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite, isfinite, bool)
    2498  #   endif
    2499  #  endif
    2500  # endif
    2501  #elif defined GNULIB_POSIXCHECK
    2502  # if defined isfinite
    2503  _GL_WARN_REAL_FLOATING_DECL (isfinite);
    2504  #  undef isfinite
    2505  #  define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x)
    2506  # endif
    2507  #endif
    2508  
    2509  
    2510  #if @GNULIB_ISINF@
    2511  # if @REPLACE_ISINF@
    2512  _GL_EXTERN_C int gl_isinff (float x);
    2513  _GL_EXTERN_C int gl_isinfd (double x);
    2514  _GL_EXTERN_C int gl_isinfl (long double x);
    2515  #  undef isinf
    2516  #  define isinf(x) \
    2517     (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \
    2518      sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
    2519      gl_isinff (x))
    2520  # endif
    2521  # ifdef __cplusplus
    2522  #  if defined isinf || defined GNULIB_NAMESPACE
    2523  _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
    2524  #   undef isinf
    2525  #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
    2526    /* This platform's <cmath> possibly defines isinf through a set of inline
    2527       functions.  */
    2528  _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, rpl_isinf, bool)
    2529  #    define isinf rpl_isinf
    2530  #    define GNULIB_NAMESPACE_LACKS_ISINF 1
    2531  #   else
    2532  _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf, isinf, bool)
    2533  #   endif
    2534  #  endif
    2535  # endif
    2536  #elif defined GNULIB_POSIXCHECK
    2537  # if defined isinf
    2538  _GL_WARN_REAL_FLOATING_DECL (isinf);
    2539  #  undef isinf
    2540  #  define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x)
    2541  # endif
    2542  #endif
    2543  
    2544  
    2545  #if @GNULIB_ISNANF@
    2546  /* Test for NaN for 'float' numbers.  */
    2547  # if @HAVE_ISNANF@
    2548  #  if defined __sun || defined __sgi
    2549  /* Solaris and IRIX have isnanf() and declare it in <ieeefp.h>.  We cannot
    2550     define isnanf as a macro, because that would conflict with <ieeefp.h>.  */
    2551  _GL_EXTERN_C int isnanf (float x);
    2552  #  else
    2553  /* The original <math.h> included above provides a declaration of isnan macro
    2554     or (older) isnanf function.  */
    2555  #   if (__GNUC__ >= 4) || (__clang_major__ >= 4)
    2556      /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
    2557         GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't.  */
    2558  #    undef isnanf
    2559  #    define isnanf(x) __builtin_isnan ((float)(x))
    2560  #   elif defined isnan
    2561  #    undef isnanf
    2562  #    define isnanf(x) isnan ((float)(x))
    2563  #   endif
    2564  #  endif
    2565  # else
    2566  /* Test whether X is a NaN.  */
    2567  #  undef isnanf
    2568  #  define isnanf rpl_isnanf
    2569  _GL_EXTERN_C int isnanf (float x);
    2570  # endif
    2571  #endif
    2572  
    2573  #if @GNULIB_ISNAND@
    2574  /* Test for NaN for 'double' numbers.
    2575     This function is a gnulib extension, unlike isnan() which applied only
    2576     to 'double' numbers earlier but now is a type-generic macro.  */
    2577  # if @HAVE_ISNAND@
    2578  #  if defined __sun || defined __sgi
    2579  /* Solaris and IRIX have isnand() and declare it in <ieeefp.h>.  We cannot
    2580     define isnand as a macro, because that would conflict with <ieeefp.h>.  */
    2581  _GL_EXTERN_C int isnand (double x);
    2582  #  else
    2583  /* The original <math.h> included above provides a declaration of isnan
    2584     macro.  */
    2585  #   if (__GNUC__ >= 4) || (__clang_major__ >= 4)
    2586      /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.  */
    2587  #    undef isnand
    2588  #    define isnand(x) __builtin_isnan ((double)(x))
    2589  #   else
    2590  #    undef isnand
    2591  #    define isnand(x) isnan ((double)(x))
    2592  #   endif
    2593  #  endif
    2594  # else
    2595  /* Test whether X is a NaN.  */
    2596  #  undef isnand
    2597  #  define isnand rpl_isnand
    2598  _GL_EXTERN_C int isnand (double x);
    2599  # endif
    2600  #endif
    2601  
    2602  #if @GNULIB_ISNANL@
    2603  /* Test for NaN for 'long double' numbers.  */
    2604  # if @HAVE_ISNANL@
    2605  /* The original <math.h> included above provides a declaration of isnan
    2606     macro or (older) isnanl function.  */
    2607  #  if (__GNUC__ >= 4) || (__clang_major__ >= 4)
    2608      /* GCC >= 4.0 and clang provide a type-generic built-in for isnan.
    2609         GCC >= 4.0 also provides __builtin_isnanl, but clang doesn't.  */
    2610  #   undef isnanl
    2611  #   define isnanl(x) __builtin_isnan ((long double)(x))
    2612  #  elif defined isnan
    2613  #   undef isnanl
    2614  #   define isnanl(x) isnan ((long double)(x))
    2615  #  endif
    2616  # else
    2617  /* Test whether X is a NaN.  */
    2618  #  undef isnanl
    2619  #  define isnanl rpl_isnanl
    2620  _GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
    2621  # endif
    2622  #endif
    2623  
    2624  /* This must come *after* the snippets for GNULIB_ISNANF and GNULIB_ISNANL!  */
    2625  #if @GNULIB_ISNAN@
    2626  # if @REPLACE_ISNAN@
    2627  /* We can't just use the isnanf macro (e.g.) as exposed by
    2628     isnanf.h (e.g.) here, because those may end up being macros
    2629     that recursively expand back to isnan.  So use the gnulib
    2630     replacements for them directly. */
    2631  #  if @HAVE_ISNANF@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
    2632  #   define gl_isnan_f(x) __builtin_isnan ((float)(x))
    2633  #  else
    2634  _GL_EXTERN_C int rpl_isnanf (float x);
    2635  #   define gl_isnan_f(x) rpl_isnanf (x)
    2636  #  endif
    2637  #  if @HAVE_ISNAND@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
    2638  #   define gl_isnan_d(x) __builtin_isnan ((double)(x))
    2639  #  else
    2640  _GL_EXTERN_C int rpl_isnand (double x);
    2641  #   define gl_isnan_d(x) rpl_isnand (x)
    2642  #  endif
    2643  #  if @HAVE_ISNANL@ && (__GNUC__ >= 4) || (__clang_major__ >= 4)
    2644  #   define gl_isnan_l(x) __builtin_isnan ((long double)(x))
    2645  #  else
    2646  _GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
    2647  #   define gl_isnan_l(x) rpl_isnanl (x)
    2648  #  endif
    2649  #  undef isnan
    2650  #  define isnan(x) \
    2651     (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
    2652      sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
    2653      gl_isnan_f (x))
    2654  # elif (__GNUC__ >= 4) || (__clang_major__ >= 4)
    2655  #  undef isnan
    2656  #  define isnan(x) \
    2657     (sizeof (x) == sizeof (long double) ? __builtin_isnan ((long double)(x)) : \
    2658      sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
    2659      __builtin_isnan ((float)(x)))
    2660  # endif
    2661  # ifdef __cplusplus
    2662  #  if defined isnan || defined GNULIB_NAMESPACE
    2663  _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
    2664  #   undef isnan
    2665  #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__ && __clang_major__ != 12) || (defined __FreeBSD__ && (__clang_major__ < 7 || __clang_major__ >= 11)) || defined __OpenBSD__ || (defined _WIN32 && !defined __CYGWIN__)))
    2666    /* This platform's <cmath> possibly defines isnan through a set of inline
    2667       functions.  */
    2668  _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, rpl_isnan, bool)
    2669  #    define isnan rpl_isnan
    2670  #    define GNULIB_NAMESPACE_LACKS_ISNAN 1
    2671  #   elif (defined __FreeBSD__ && __clang_major__ >= 14)
    2672    /* Neither of the two possible _GL_MATH_CXX_REAL_FLOATING_DECL_2 invocations
    2673       works.  Inline functions are already present in /usr/include/c++/v1/math.h,
    2674       which comes from LLVM.  */
    2675  #    define GNULIB_NAMESPACE_LACKS_ISNAN 1
    2676  #   else
    2677  _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan, isnan, bool)
    2678  #   endif
    2679  #  endif
    2680  # else
    2681  /* Ensure isnan is a macro.  */
    2682  #  ifndef isnan
    2683  #   define isnan isnan
    2684  #  endif
    2685  # endif
    2686  #elif defined GNULIB_POSIXCHECK
    2687  # if defined isnan
    2688  _GL_WARN_REAL_FLOATING_DECL (isnan);
    2689  #  undef isnan
    2690  #  define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x)
    2691  # endif
    2692  #endif
    2693  
    2694  
    2695  #if @GNULIB_SIGNBIT@
    2696  # if (@REPLACE_SIGNBIT_USING_BUILTINS@ \
    2697        && (!defined __cplusplus || __cplusplus < 201103))
    2698  #  undef signbit
    2699     /* GCC >= 4.0 and clang provide three built-ins for signbit.  */
    2700  #  define signbit(x) \
    2701     (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
    2702      sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
    2703      __builtin_signbitf (x))
    2704  # endif
    2705  # if @REPLACE_SIGNBIT@ && !GNULIB_defined_signbit
    2706  #  undef signbit
    2707  _GL_EXTERN_C int gl_signbitf (float arg);
    2708  _GL_EXTERN_C int gl_signbitd (double arg);
    2709  _GL_EXTERN_C int gl_signbitl (long double arg);
    2710  #  if __GNUC__ >= 2 || defined __clang__
    2711  #   define _GL_NUM_UINT_WORDS(type) \
    2712        ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
    2713  #   if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
    2714  #    define gl_signbitf_OPTIMIZED_MACRO
    2715  #    define gl_signbitf(arg) \
    2716         __extension__                                                    \
    2717         ({ union { float _value;                                         \
    2718                    unsigned int _word[_GL_NUM_UINT_WORDS (float)];       \
    2719                  } _m;                                                   \
    2720            _m._value = (arg);                                            \
    2721            (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1;          \
    2722          })
    2723  #   endif
    2724  #   if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
    2725  #    define gl_signbitd_OPTIMIZED_MACRO
    2726  #    define gl_signbitd(arg) \
    2727         __extension__                                                    \
    2728         ({ union { double _value;                                        \
    2729                    unsigned int _word[_GL_NUM_UINT_WORDS (double)];      \
    2730                  } _m;                                                   \
    2731            _m._value = (arg);                                            \
    2732            (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1;          \
    2733          })
    2734  #   endif
    2735  #   if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl
    2736  #    define gl_signbitl_OPTIMIZED_MACRO
    2737  #    define gl_signbitl(arg) \
    2738         __extension__                                                    \
    2739         ({ union { long double _value;                                   \
    2740                    unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
    2741                  } _m;                                                   \
    2742            _m._value = (arg);                                            \
    2743            (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;        \
    2744          })
    2745  #   endif
    2746  #  endif
    2747  #  define signbit(x) \
    2748     (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \
    2749      sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
    2750      gl_signbitf (x))
    2751  #  define GNULIB_defined_signbit 1
    2752  # endif
    2753  # ifdef __cplusplus
    2754  #  if defined signbit || defined GNULIB_NAMESPACE
    2755  _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
    2756  #   undef signbit
    2757  #   if __GNUC__ >= 6 || (defined __clang__ && !((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined _AIX || (defined _WIN32 && !defined __CYGWIN__)))
    2758    /* This platform's <cmath> possibly defines signbit through a set of inline
    2759       functions.  */
    2760  _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, rpl_signbit, bool)
    2761  #    define signbit rpl_signbit
    2762  #    define GNULIB_NAMESPACE_LACKS_SIGNBIT 1
    2763  #   else
    2764  _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit, signbit, bool)
    2765  #   endif
    2766  #  endif
    2767  # endif
    2768  #elif defined GNULIB_POSIXCHECK
    2769  # if defined signbit
    2770  _GL_WARN_REAL_FLOATING_DECL (signbit);
    2771  #  undef signbit
    2772  #  define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x)
    2773  # endif
    2774  #endif
    2775  
    2776  
    2777  #if @GNULIB_TOTALORDERF@
    2778  # if @REPLACE_TOTALORDERF@
    2779  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2780  #   undef totalorderf
    2781  #   define totalorderf rpl_totalorderf
    2782  #  endif
    2783  _GL_FUNCDECL_RPL (totalorderf, int, (float const *, float const *));
    2784  _GL_CXXALIAS_RPL (totalorderf, int, (float const *, float const *));
    2785  # else
    2786  #  if !@HAVE_TOTALORDERF@
    2787  _GL_FUNCDECL_SYS (totalorderf, int, (float const *, float const *));
    2788  #  endif
    2789  _GL_CXXALIAS_SYS (totalorderf, int, (float const *, float const *));
    2790  # endif
    2791  _GL_CXXALIASWARN (totalorderf);
    2792  #elif defined GNULIB_POSIXCHECK
    2793  # undef totalorderf
    2794  # if HAVE_RAW_DECL_TOTALORDERF
    2795  _GL_WARN_ON_USE (totalorderf, "totalorderf is unportable - "
    2796                   "use gnulib module totalorderf for portability");
    2797  # endif
    2798  #endif
    2799  
    2800  #if @GNULIB_TOTALORDER@
    2801  # if @REPLACE_TOTALORDER@
    2802  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2803  #   undef totalorder
    2804  #   define totalorder rpl_totalorder
    2805  #  endif
    2806  _GL_FUNCDECL_RPL (totalorder, int, (double const *, double const *));
    2807  _GL_CXXALIAS_RPL (totalorder, int, (double const *, double const *));
    2808  # else
    2809  #  if !@HAVE_TOTALORDER@
    2810  _GL_FUNCDECL_SYS (totalorder, int, (double const *, double const *));
    2811  #  endif
    2812  _GL_CXXALIAS_SYS (totalorder, int, (double const *, double const *));
    2813  # endif
    2814  # if __GLIBC__ >= 2
    2815  _GL_CXXALIASWARN1 (totalorder, int, (double const *, double const *));
    2816  # endif
    2817  #elif defined GNULIB_POSIXCHECK
    2818  # undef totalorder
    2819  # if HAVE_RAW_DECL_TOTALORDER
    2820  _GL_WARN_ON_USE (totalorder, "totalorder is unportable - "
    2821                   "use gnulib module totalorder for portability");
    2822  # endif
    2823  #endif
    2824  
    2825  #if @GNULIB_TOTALORDERL@
    2826  # if @REPLACE_TOTALORDERL@
    2827  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
    2828  #   undef totalorderl
    2829  #   define totalorderl rpl_totalorderl
    2830  #  endif
    2831  _GL_FUNCDECL_RPL (totalorderl, int,
    2832                    (long double const *, long double const *));
    2833  _GL_CXXALIAS_RPL (totalorderl, int,
    2834                    (long double const *, long double const *));
    2835  # else
    2836  #  if !@HAVE_TOTALORDERL@
    2837  _GL_FUNCDECL_SYS (totalorderl, int,
    2838                    (long double const *, long double const *));
    2839  #  endif
    2840  _GL_CXXALIAS_SYS (totalorderl, int,
    2841                    (long double const *, long double const *));
    2842  # endif
    2843  _GL_CXXALIASWARN (totalorderl);
    2844  #elif defined GNULIB_POSIXCHECK
    2845  # undef totalorderl
    2846  # if HAVE_RAW_DECL_TOTALORDERL
    2847  _GL_WARN_ON_USE (totalorderl, "totalorderl is unportable - "
    2848                   "use gnulib module totalorderl for portability");
    2849  # endif
    2850  #endif
    2851  
    2852  _GL_INLINE_HEADER_END
    2853  
    2854  #endif /* _@GUARD_PREFIX@_MATH_H */
    2855  #endif /* _GL_INCLUDING_MATH_H */
    2856  #endif /* _@GUARD_PREFIX@_MATH_H */
    2857  #endif