22 #pragma GCC system_header 27 #include_next <math.h> 33 #if defined __VMS && ! defined NAN 37 #ifndef _GL_INLINE_HEADER_BEGIN 38 #error "Please include config.h first." 41 #ifndef _GL_MATH_INLINE 42 # define _GL_MATH_INLINE _GL_INLINE 66 #if defined __cplusplus && defined GNULIB_NAMESPACE 67 # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { 68 # define _GL_END_NAMESPACE } 70 # define _GL_BEGIN_NAMESPACE 71 # define _GL_END_NAMESPACE 135 #if defined __cplusplus 136 # define _GL_EXTERN_C extern "C" 138 # define _GL_EXTERN_C extern 148 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ 149 _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) 150 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ 151 _GL_EXTERN_C rettype rpl_func parameters_and_attributes 160 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ 161 _GL_EXTERN_C rettype func parameters_and_attributes 172 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ 173 _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) 174 #if defined __cplusplus && defined GNULIB_NAMESPACE 175 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ 176 namespace GNULIB_NAMESPACE \ 178 static const struct _gl_ ## func ## _wrapper \ 180 typedef rettype (*type) parameters; \ 182 inline operator type () const \ 188 _GL_EXTERN_C int _gl_cxxalias_dummy 190 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ 191 _GL_EXTERN_C int _gl_cxxalias_dummy 199 #if defined __cplusplus && defined GNULIB_NAMESPACE 200 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ 201 namespace GNULIB_NAMESPACE \ 203 static const struct _gl_ ## func ## _wrapper \ 205 typedef rettype (*type) parameters; \ 207 inline operator type () const \ 209 return reinterpret_cast<type>(::rpl_func); \ 213 _GL_EXTERN_C int _gl_cxxalias_dummy 215 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ 216 _GL_EXTERN_C int _gl_cxxalias_dummy 229 #if defined __cplusplus && defined GNULIB_NAMESPACE 230 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ 231 namespace GNULIB_NAMESPACE \ 233 static const struct _gl_ ## func ## _wrapper \ 235 typedef rettype (*type) parameters; \ 237 inline operator type () const \ 243 _GL_EXTERN_C int _gl_cxxalias_dummy 245 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ 246 _GL_EXTERN_C int _gl_cxxalias_dummy 254 #if defined __cplusplus && defined GNULIB_NAMESPACE 255 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ 256 namespace GNULIB_NAMESPACE \ 258 static const struct _gl_ ## func ## _wrapper \ 260 typedef rettype (*type) parameters; \ 262 inline operator type () const \ 264 return reinterpret_cast<type>(::func); \ 268 _GL_EXTERN_C int _gl_cxxalias_dummy 270 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ 271 _GL_EXTERN_C int _gl_cxxalias_dummy 280 #if defined __cplusplus && defined GNULIB_NAMESPACE 286 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ 287 namespace GNULIB_NAMESPACE \ 289 static const struct _gl_ ## func ## _wrapper \ 291 typedef rettype (*type) parameters; \ 293 inline operator type () const \ 295 return reinterpret_cast<type>((rettype2 (*) parameters2)(::func)); \ 299 _GL_EXTERN_C int _gl_cxxalias_dummy 301 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ 302 _GL_EXTERN_C int _gl_cxxalias_dummy 309 #if defined __cplusplus && defined GNULIB_NAMESPACE 310 # define _GL_CXXALIASWARN(func) \ 311 _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) 312 # define _GL_CXXALIASWARN_1(func,namespace) \ 313 _GL_CXXALIASWARN_2 (func, namespace) 317 # define _GL_CXXALIASWARN_2(func,namespace) \ 318 _GL_WARN_ON_USE (func, \ 319 "The symbol ::" #func " refers to the system function. " \ 320 "Use " #namespace "::" #func " instead.") 321 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 322 # define _GL_CXXALIASWARN_2(func,namespace) \ 323 extern __typeof__ (func) func 325 # define _GL_CXXALIASWARN_2(func,namespace) \ 326 _GL_EXTERN_C int _gl_cxxalias_dummy 329 # define _GL_CXXALIASWARN(func) \ 330 _GL_EXTERN_C int _gl_cxxalias_dummy 336 #if defined __cplusplus && defined GNULIB_NAMESPACE 337 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ 338 _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ 340 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ 341 _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) 345 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 346 _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ 347 "The symbol ::" #func " refers to the system function. " \ 348 "Use " #namespace "::" #func " instead.") 349 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 350 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 351 extern __typeof__ (func) func 353 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 354 _GL_EXTERN_C int _gl_cxxalias_dummy 357 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ 358 _GL_EXTERN_C int _gl_cxxalias_dummy 383 #ifndef _GL_ARG_NONNULL 384 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 385 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) 387 # define _GL_ARG_NONNULL(params) 455 #ifndef _GL_WARN_ON_USE 457 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) 459 # define _GL_WARN_ON_USE(function, message) \ 460 extern __typeof__ (function) function __attribute__ ((__warning__ (message))) 461 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 463 # define _GL_WARN_ON_USE(function, message) \ 464 extern __typeof__ (function) function 466 # define _GL_WARN_ON_USE(function, message) \ 467 _GL_WARN_EXTERN_C int _gl_warn_on_use 477 #ifndef _GL_WARN_ON_USE_CXX 478 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) 479 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 480 extern rettype function parameters_and_attributes \ 481 __attribute__ ((__warning__ (msg))) 482 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 484 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 485 extern rettype function parameters_and_attributes 487 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 488 _GL_WARN_EXTERN_C int _gl_warn_on_use 494 #ifndef _GL_WARN_EXTERN_C 495 # if defined __cplusplus 496 # define _GL_WARN_EXTERN_C extern "C" 498 # define _GL_WARN_EXTERN_C extern 506 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \ 508 _gl_cxx_ ## func ## f (float f) \ 513 _gl_cxx_ ## func ## d (double d) \ 518 _gl_cxx_ ## func ## l (long double l) \ 522 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \ 523 _GL_BEGIN_NAMESPACE \ 527 return _gl_cxx_ ## func ## f (f); \ 532 return _gl_cxx_ ## func ## d (d); \ 535 func (long double l) \ 537 return _gl_cxx_ ## func ## l (l); \ 546 #define _GL_WARN_REAL_FLOATING_DECL(func) \ 547 _GL_MATH_INLINE int \ 548 rpl_ ## func ## f (float f) \ 552 _GL_MATH_INLINE int \ 553 rpl_ ## func ## d (double d) \ 557 _GL_MATH_INLINE int \ 558 rpl_ ## func ## l (long double l) \ 562 _GL_WARN_ON_USE (rpl_ ## func ## f, #func " is unportable - " \ 563 "use gnulib module " #func " for portability"); \ 564 _GL_WARN_ON_USE (rpl_ ## func ## d, #func " is unportable - " \ 565 "use gnulib module " #func " for portability"); \ 566 _GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \ 567 "use gnulib module " #func " for portability") 568 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \ 569 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \ 570 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \ 571 : rpl_ ## func ## l (value)) 578 static void (*_gl_math_fix_itold) (
long double *, int) =
_Qp_itoq;
587 #if !defined NAN || 0 588 # if !GNULIB_defined_NAN 592 # if defined __DECC || defined _MSC_VER 596 static float zero = 0.0f;
599 # define NAN (_NaN()) 601 # define NAN (0.0f / 0.0f) 603 # define GNULIB_defined_NAN 1 611 # define HUGE_VALF (1.0f / 0.0f) 613 # define HUGE_VAL (1.0 / 0.0) 615 # define HUGE_VALL (1.0L / 0.0L) 620 # if defined _MSC_VER 622 # define HUGE_VALF (1e25f * 1e25f) 624 # define HUGE_VALF (1.0f / 0.0f) 630 # if defined _MSC_VER 632 # define HUGE_VAL (1e250 * 1e250) 634 # define HUGE_VAL (1.0 / 0.0) 640 # if defined _MSC_VER 642 # define HUGE_VALL (1e250L * 1e250L) 644 # define HUGE_VALL (1.0L / 0.0L) 649 #if defined FP_ILOGB0 && defined FP_ILOGBNAN 651 # if defined __HAIKU__ 655 # define FP_ILOGB0 (- 2147483647 - 1) 656 # define FP_ILOGBNAN (- 2147483647 - 1) 660 # if defined __NetBSD__ || defined __sgi 662 # define FP_ILOGB0 (- 2147483647 - 1) 663 # define FP_ILOGBNAN (- 2147483647 - 1) 666 # define FP_ILOGB0 (- 2147483647 - 1) 667 # define FP_ILOGBNAN 2147483647 670 # define FP_ILOGB0 (- 2147483647) 671 # define FP_ILOGBNAN 2147483647 674 # define FP_ILOGB0 (- 2147483647) 675 # define FP_ILOGBNAN (- 2147483647 - 1) 682 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 684 # define acosf rpl_acosf 696 #elif defined GNULIB_POSIXCHECK 698 # if HAVE_RAW_DECL_ACOSF 700 "use gnulib module acosf for portability");
711 #elif defined GNULIB_POSIXCHECK 713 # if HAVE_RAW_DECL_ACOSL 715 "use gnulib module acosl for portability");
722 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 724 # define asinf rpl_asinf 736 #elif defined GNULIB_POSIXCHECK 738 # if HAVE_RAW_DECL_ASINF 740 "use gnulib module asinf for portability");
751 #elif defined GNULIB_POSIXCHECK 753 # if HAVE_RAW_DECL_ASINL 755 "use gnulib module asinl for portability");
762 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 764 # define atanf rpl_atanf 776 #elif defined GNULIB_POSIXCHECK 778 # if HAVE_RAW_DECL_ATANF 780 "use gnulib module atanf for portability");
791 #elif defined GNULIB_POSIXCHECK 793 # if HAVE_RAW_DECL_ATANL 795 "use gnulib module atanl for portability");
802 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 804 # define atan2f rpl_atan2f 816 #elif defined GNULIB_POSIXCHECK 818 # if HAVE_RAW_DECL_ATAN2F 820 "use gnulib module atan2f for portability");
827 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 829 # define cbrtf rpl_cbrtf 840 #elif defined GNULIB_POSIXCHECK 842 # if HAVE_RAW_DECL_CBRTF 844 "use gnulib module cbrtf for portability");
854 #elif defined GNULIB_POSIXCHECK 856 # if HAVE_RAW_DECL_CBRT 858 "use gnulib module cbrt for portability");
864 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 866 # define cbrtl rpl_cbrtl 877 #elif defined GNULIB_POSIXCHECK 879 # if HAVE_RAW_DECL_CBRTL 881 "use gnulib module cbrtl for portability");
888 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 890 # define ceilf rpl_ceilf 902 #elif defined GNULIB_POSIXCHECK 904 # if HAVE_RAW_DECL_CEILF 906 "use gnulib module ceilf for portability");
912 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 914 # define ceil rpl_ceil 926 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 928 # define ceill rpl_ceill 940 #elif defined GNULIB_POSIXCHECK 942 # if HAVE_RAW_DECL_CEILL 944 "use gnulib module ceill for portability");
955 #elif defined GNULIB_POSIXCHECK 957 # if HAVE_RAW_DECL_COPYSIGNF 959 "use gnulib module copysignf for portability");
969 #elif defined GNULIB_POSIXCHECK 971 # if HAVE_RAW_DECL_COPYSIGN 973 "use gnulib module copysign for portability");
983 #elif defined GNULIB_POSIXCHECK 985 # if HAVE_RAW_DECL_COPYSIGNL 987 "use gnulib module copysignl for portability");
994 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 996 # define cosf rpl_cosf 1008 #elif defined GNULIB_POSIXCHECK 1010 # if HAVE_RAW_DECL_COSF 1012 "use gnulib module cosf for portability");
1023 #elif defined GNULIB_POSIXCHECK 1025 # if HAVE_RAW_DECL_COSL 1027 "use gnulib module cosl for portability");
1034 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1036 # define coshf rpl_coshf 1048 #elif defined GNULIB_POSIXCHECK 1050 # if HAVE_RAW_DECL_COSHF 1052 "use gnulib module coshf for portability");
1059 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1061 # define expf rpl_expf 1073 #elif defined GNULIB_POSIXCHECK 1075 # if HAVE_RAW_DECL_EXPF 1077 "use gnulib module expf for portability");
1088 #elif defined GNULIB_POSIXCHECK 1090 # if HAVE_RAW_DECL_EXPL 1092 "use gnulib module expl for portability");
1103 #elif defined GNULIB_POSIXCHECK 1105 # if HAVE_RAW_DECL_EXP2F 1107 "use gnulib module exp2f for portability");
1113 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1115 # define exp2 rpl_exp2 1126 #elif defined GNULIB_POSIXCHECK 1128 # if HAVE_RAW_DECL_EXP2 1130 "use gnulib module exp2 for portability");
1136 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1138 # define exp2l rpl_exp2l 1150 #elif defined GNULIB_POSIXCHECK 1152 # if HAVE_RAW_DECL_EXP2L 1154 "use gnulib module exp2l for portability");
1161 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1163 # define expm1f rpl_expm1f 1174 #elif defined GNULIB_POSIXCHECK 1176 # if HAVE_RAW_DECL_EXPM1F 1178 "use gnulib module expm1f for portability");
1184 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1186 # define expm1 rpl_expm1 1197 #elif defined GNULIB_POSIXCHECK 1199 # if HAVE_RAW_DECL_EXPM1 1201 "use gnulib module expm1 for portability");
1212 #elif defined GNULIB_POSIXCHECK 1214 # if HAVE_RAW_DECL_EXPM1L 1216 "use gnulib module expm1l for portability");
1228 #elif defined GNULIB_POSIXCHECK 1230 # if HAVE_RAW_DECL_FABSF 1232 "use gnulib module fabsf for portability");
1238 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1240 # define fabsl rpl_fabsl 1252 #elif defined GNULIB_POSIXCHECK 1254 # if HAVE_RAW_DECL_FABSL 1256 "use gnulib module fabsl for portability");
1263 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1265 # define floorf rpl_floorf 1277 #elif defined GNULIB_POSIXCHECK 1279 # if HAVE_RAW_DECL_FLOORF 1281 "use gnulib module floorf for portability");
1287 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1289 # define floor rpl_floor 1301 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1303 # define floorl rpl_floorl 1315 #elif defined GNULIB_POSIXCHECK 1317 # if HAVE_RAW_DECL_FLOORL 1319 "use gnulib module floorl for portability");
1326 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1328 # define fmaf rpl_fmaf 1339 #elif defined GNULIB_POSIXCHECK 1341 # if HAVE_RAW_DECL_FMAF 1343 "use gnulib module fmaf for portability");
1349 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1351 # define fma rpl_fma 1362 #elif defined GNULIB_POSIXCHECK 1364 # if HAVE_RAW_DECL_FMA 1366 "use gnulib module fma for portability");
1372 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1374 # define fmal rpl_fmal 1377 (
long double x,
long double y,
long double z));
1379 (
long double x,
long double y,
long double z));
1384 (
long double x,
long double y,
long double z));
1387 (
long double x,
long double y,
long double z));
1390 #elif defined GNULIB_POSIXCHECK 1392 # if HAVE_RAW_DECL_FMAL 1394 "use gnulib module fmal for portability");
1401 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1403 # define fmodf rpl_fmodf 1415 #elif defined GNULIB_POSIXCHECK 1417 # if HAVE_RAW_DECL_FMODF 1419 "use gnulib module fmodf for portability");
1425 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1427 # define fmod rpl_fmod 1435 #elif defined GNULIB_POSIXCHECK 1437 # if HAVE_RAW_DECL_FMOD 1439 "use gnulib module fmod for portability");
1445 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1447 # define fmodl rpl_fmodl 1459 #elif defined GNULIB_POSIXCHECK 1461 # if HAVE_RAW_DECL_FMODL 1463 "use gnulib module fmodl for portability");
1477 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1479 # define frexpf rpl_frexpf 1491 #elif defined GNULIB_POSIXCHECK 1493 # if HAVE_RAW_DECL_FREXPF 1495 "use gnulib module frexpf for portability");
1508 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1510 # define frexp rpl_frexp 1518 #elif defined GNULIB_POSIXCHECK 1522 "use gnulib module frexp for portability");
1533 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1535 # define frexpl rpl_frexpl 1552 #if !0 && defined GNULIB_POSIXCHECK 1554 # if HAVE_RAW_DECL_FREXPL 1556 "use gnulib module frexpl for portability");
1564 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1566 # define hypotf rpl_hypotf 1577 #elif defined GNULIB_POSIXCHECK 1579 # if HAVE_RAW_DECL_HYPOTF 1581 "use gnulib module hypotf for portability");
1588 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1590 # define hypot rpl_hypot 1598 #elif defined GNULIB_POSIXCHECK 1600 # if HAVE_RAW_DECL_HYPOT 1602 "use gnulib module hypot for portability");
1609 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1611 # define hypotl rpl_hypotl 1622 #elif defined GNULIB_POSIXCHECK 1624 # if HAVE_RAW_DECL_HYPOTL 1626 "use gnulib module hypotl for portability");
1633 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1635 # define ilogbf rpl_ilogbf 1646 #elif defined GNULIB_POSIXCHECK 1648 # if HAVE_RAW_DECL_ILOGBF 1650 "use gnulib module ilogbf for portability");
1656 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1658 # define ilogb rpl_ilogb 1669 #elif defined GNULIB_POSIXCHECK 1671 # if HAVE_RAW_DECL_ILOGB 1673 "use gnulib module ilogb for portability");
1679 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1681 # define ilogbl rpl_ilogbl 1692 #elif defined GNULIB_POSIXCHECK 1694 # if HAVE_RAW_DECL_ILOGBL 1696 "use gnulib module ilogbl for portability");
1709 #elif defined GNULIB_POSIXCHECK 1711 # if HAVE_RAW_DECL_LDEXPF 1713 "use gnulib module ldexpf for portability");
1719 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1721 # define ldexpl rpl_ldexpl 1736 #if !0 && defined GNULIB_POSIXCHECK 1738 # if HAVE_RAW_DECL_LDEXPL 1740 "use gnulib module ldexpl for portability");
1747 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1749 # define logf rpl_logf 1761 #elif defined GNULIB_POSIXCHECK 1763 # if HAVE_RAW_DECL_LOGF 1765 "use gnulib module logf for portability");
1771 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1773 # define log rpl_log 1781 #elif defined GNULIB_POSIXCHECK 1783 # if HAVE_RAW_DECL_LOG 1785 "use gnulib module log for portability");
1791 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1793 # define logl rpl_logl 1805 #elif defined GNULIB_POSIXCHECK 1807 # if HAVE_RAW_DECL_LOGL 1809 "use gnulib module logl for portability");
1816 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1818 # define log10f rpl_log10f 1830 #elif defined GNULIB_POSIXCHECK 1832 # if HAVE_RAW_DECL_LOG10F 1834 "use gnulib module log10f for portability");
1840 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1842 # define log10 rpl_log10 1850 #elif defined GNULIB_POSIXCHECK 1852 # if HAVE_RAW_DECL_LOG10 1854 "use gnulib module log10 for portability");
1860 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1862 # define log10l rpl_log10l 1874 #elif defined GNULIB_POSIXCHECK 1876 # if HAVE_RAW_DECL_LOG10L 1878 "use gnulib module log10l for portability");
1885 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1887 # define log1pf rpl_log1pf 1898 #elif defined GNULIB_POSIXCHECK 1900 # if HAVE_RAW_DECL_LOG1PF 1902 "use gnulib module log1pf for portability");
1908 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1910 # define log1p rpl_log1p 1921 #elif defined GNULIB_POSIXCHECK 1923 # if HAVE_RAW_DECL_LOG1P 1925 "use gnulib module log1p for portability");
1931 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1933 # define log1pl rpl_log1pl 1944 #elif defined GNULIB_POSIXCHECK 1946 # if HAVE_RAW_DECL_LOG1PL 1948 "use gnulib module log1pl for portability");
1955 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1957 # define log2f rpl_log2f 1969 #elif defined GNULIB_POSIXCHECK 1971 # if HAVE_RAW_DECL_LOG2F 1973 "use gnulib module log2f for portability");
1979 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1981 # define log2 rpl_log2 1993 #elif defined GNULIB_POSIXCHECK 1995 # if HAVE_RAW_DECL_LOG2 1997 "use gnulib module log2 for portability");
2003 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2005 # define log2l rpl_log2l 2016 #elif defined GNULIB_POSIXCHECK 2018 # if HAVE_RAW_DECL_LOG2L 2020 "use gnulib module log2l for portability");
2027 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2029 # define logbf rpl_logbf 2040 #elif defined GNULIB_POSIXCHECK 2042 # if HAVE_RAW_DECL_LOGBF 2044 "use gnulib module logbf for portability");
2050 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2052 # define logb rpl_logb 2063 #elif defined GNULIB_POSIXCHECK 2065 # if HAVE_RAW_DECL_LOGB 2067 "use gnulib module logb for portability");
2073 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2075 # define logbl rpl_logbl 2086 #elif defined GNULIB_POSIXCHECK 2088 # if HAVE_RAW_DECL_LOGBL 2090 "use gnulib module logbl for portability");
2097 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2099 # define modff rpl_modff 2111 #elif defined GNULIB_POSIXCHECK 2113 # if HAVE_RAW_DECL_MODFF 2115 "use gnulib module modff for portability");
2121 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2123 # define modf rpl_modf 2131 #elif defined GNULIB_POSIXCHECK 2133 # if HAVE_RAW_DECL_MODF 2135 "use gnulib module modf for portability");
2141 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2143 # define modfl rpl_modfl 2157 #elif defined GNULIB_POSIXCHECK 2159 # if HAVE_RAW_DECL_MODFL 2161 "use gnulib module modfl for portability");
2173 #elif defined GNULIB_POSIXCHECK 2175 # if HAVE_RAW_DECL_POWF 2177 "use gnulib module powf for portability");
2184 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2186 # define remainderf rpl_remainderf 2197 #elif defined GNULIB_POSIXCHECK 2199 # if HAVE_RAW_DECL_REMAINDERF 2201 "use gnulib module remainderf for portability");
2207 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2209 # define remainder rpl_remainder 2220 #elif defined GNULIB_POSIXCHECK 2222 # if HAVE_RAW_DECL_REMAINDER 2224 "use gnulib module remainder for portability");
2230 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2232 # define remainderl rpl_remainderl 2234 _GL_FUNCDECL_RPL (remainderl,
long double, (
long double x,
long double y));
2235 _GL_CXXALIAS_RPL (remainderl,
long double, (
long double x,
long double y));
2239 _GL_FUNCDECL_SYS (remainderl,
long double, (
long double x,
long double y));
2241 _GL_CXXALIAS_SYS (remainderl,
long double, (
long double x,
long double y));
2244 #elif defined GNULIB_POSIXCHECK 2246 # if HAVE_RAW_DECL_REMAINDERL 2248 "use gnulib module remainderl for portability");
2259 #elif defined GNULIB_POSIXCHECK 2261 # if HAVE_RAW_DECL_RINTF 2263 "use gnulib module rintf for portability");
2273 #elif defined GNULIB_POSIXCHECK 2275 # if HAVE_RAW_DECL_RINT 2277 "use gnulib module rint for portability");
2287 #elif defined GNULIB_POSIXCHECK 2289 # if HAVE_RAW_DECL_RINTL 2291 "use gnulib module rintl for portability");
2298 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2300 # define roundf rpl_roundf 2311 #elif defined GNULIB_POSIXCHECK 2313 # if HAVE_RAW_DECL_ROUNDF 2315 "use gnulib module roundf for portability");
2321 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2323 # define round rpl_round 2334 #elif defined GNULIB_POSIXCHECK 2336 # if HAVE_RAW_DECL_ROUND 2338 "use gnulib module round for portability");
2344 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2346 # define roundl rpl_roundl 2358 #elif defined GNULIB_POSIXCHECK 2360 # if HAVE_RAW_DECL_ROUNDL 2362 "use gnulib module roundl for portability");
2369 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2371 # define sinf rpl_sinf 2383 #elif defined GNULIB_POSIXCHECK 2385 # if HAVE_RAW_DECL_SINF 2387 "use gnulib module sinf for portability");
2398 #elif defined GNULIB_POSIXCHECK 2400 # if HAVE_RAW_DECL_SINL 2402 "use gnulib module sinl for portability");
2409 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2411 # define sinhf rpl_sinhf 2423 #elif defined GNULIB_POSIXCHECK 2425 # if HAVE_RAW_DECL_SINHF 2427 "use gnulib module sinhf for portability");
2434 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2436 # define sqrtf rpl_sqrtf 2448 #elif defined GNULIB_POSIXCHECK 2450 # if HAVE_RAW_DECL_SQRTF 2452 "use gnulib module sqrtf for portability");
2458 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2460 # define sqrtl rpl_sqrtl 2472 #elif defined GNULIB_POSIXCHECK 2474 # if HAVE_RAW_DECL_SQRTL 2476 "use gnulib module sqrtl for portability");
2483 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2485 # define tanf rpl_tanf 2497 #elif defined GNULIB_POSIXCHECK 2499 # if HAVE_RAW_DECL_TANF 2501 "use gnulib module tanf for portability");
2512 #elif defined GNULIB_POSIXCHECK 2514 # if HAVE_RAW_DECL_TANL 2516 "use gnulib module tanl for portability");
2523 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2525 # define tanhf rpl_tanhf 2537 #elif defined GNULIB_POSIXCHECK 2539 # if HAVE_RAW_DECL_TANHF 2541 "use gnulib module tanhf for portability");
2548 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2550 # define truncf rpl_truncf 2561 #elif defined GNULIB_POSIXCHECK 2563 # if HAVE_RAW_DECL_TRUNCF 2565 "use gnulib module truncf for portability");
2571 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2573 # define trunc rpl_trunc 2584 #elif defined GNULIB_POSIXCHECK 2586 # if HAVE_RAW_DECL_TRUNC 2588 "use gnulib module trunc for portability");
2594 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2596 # define truncl rpl_truncl 2607 #elif defined GNULIB_POSIXCHECK 2609 # if HAVE_RAW_DECL_TRUNCL 2611 "use gnulib module truncl for portability");
2626 # define isfinite(x) \ 2627 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \ 2628 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \ 2632 # if defined isfinite || defined GNULIB_NAMESPACE 2633 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
2635 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite)
2638 #elif defined GNULIB_POSIXCHECK 2639 # if defined isfinite 2642 # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x) 2654 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \ 2655 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \ 2659 # if defined isinf || defined GNULIB_NAMESPACE 2660 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
2662 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf)
2665 #elif defined GNULIB_POSIXCHECK 2669 # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x) 2682 # define isnanf(x) __builtin_isnanf ((float)(x)) 2683 # elif defined isnan 2685 # define isnanf(x) isnan ((float)(x)) 2690 # define isnanf rpl_isnanf 2705 # define isnand(x) __builtin_isnan ((double)(x)) 2708 # define isnand(x) isnan ((double)(x)) 2713 # define isnand rpl_isnand 2726 # define isnanl(x) __builtin_isnanl ((long double)(x)) 2727 # elif defined isnan 2729 # define isnanl(x) isnan ((long double)(x)) 2734 # define isnanl rpl_isnanl 2746 # if 1 && __GNUC__ >= 4 2747 # define gl_isnan_f(x) __builtin_isnanf ((float)(x)) 2750 # define gl_isnan_f(x) rpl_isnanf (x) 2752 # if 1 && __GNUC__ >= 4 2753 # define gl_isnan_d(x) __builtin_isnan ((double)(x)) 2756 # define gl_isnan_d(x) rpl_isnand (x) 2758 # if 1 && __GNUC__ >= 4 2759 # define gl_isnan_l(x) __builtin_isnanl ((long double)(x)) 2762 # define gl_isnan_l(x) rpl_isnanl (x) 2766 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \ 2767 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \ 2769 # elif __GNUC__ >= 4 2772 (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \ 2773 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \ 2774 __builtin_isnanf ((float)(x))) 2777 # if defined isnan || defined GNULIB_NAMESPACE 2778 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (
isnan)
2780 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (
isnan)
2785 # define isnan isnan 2788 #elif defined GNULIB_POSIXCHECK 2792 # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x) 2799 && (!defined __cplusplus || __cplusplus < 201103)) 2802 # define signbit(x) \ 2803 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ 2804 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ 2805 __builtin_signbitf (x)) 2812 # if __GNUC__ >= 2 && !defined __STRICT_ANSI__ 2813 # define _GL_NUM_UINT_WORDS(type) \ 2814 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) 2815 # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf 2816 # define gl_signbitf_OPTIMIZED_MACRO 2817 # define gl_signbitf(arg) \ 2818 ({ union { float _value; \ 2819 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \ 2821 _m._value = (arg); \ 2822 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \ 2825 # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd 2826 # define gl_signbitd_OPTIMIZED_MACRO 2827 # define gl_signbitd(arg) \ 2828 ({ union { double _value; \ 2829 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \ 2831 _m._value = (arg); \ 2832 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \ 2835 # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl 2836 # define gl_signbitl_OPTIMIZED_MACRO 2837 # define gl_signbitl(arg) \ 2838 ({ union { long double _value; \ 2839 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \ 2841 _m._value = (arg); \ 2842 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \ 2846 # define signbit(x) \ 2847 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \ 2848 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \ 2852 # if defined signbit || defined GNULIB_NAMESPACE 2853 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
2855 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit)
2858 #elif defined GNULIB_POSIXCHECK 2859 # if defined signbit 2862 # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x) A structure that travels through mustach via closure void pointer.
Definition: mustach-dhcpd-pools.c:59
#define _GL_CXXALIASWARN1(func, rettype, parameters_and_attributes)
Definition: math.h:357
#define _GL_FUNCDECL_SYS(func, rettype, parameters_and_attributes)
Definition: math.h:160
#define _GL_ARG_NONNULL(params)
Definition: math.h:387
#define isnand(x)
Definition: math.h:2708
#define _GL_CXXALIAS_RPL(func, rettype, parameters)
Definition: math.h:172
#define _GL_EXTERN_C
Definition: math.h:138
#define _GL_CXXALIASWARN(func)
Definition: math.h:329
void _Qp_itoq(long double *result, int a)
Definition: itold.c:24
#define _GL_WARN_REAL_FLOATING_DECL(func)
Definition: math.h:546
#define _GL_WARN_ON_USE(function, message)
Definition: math.h:466
#define _GL_ATTRIBUTE_CONST
Definition: config.h:1915
#define _GL_CXXALIAS_SYS(func, rettype, parameters)
Definition: math.h:245
#define isnan
Definition: math.h:2785
#define _GL_INLINE_HEADER_BEGIN
Definition: config.h:1817
#define _GL_INLINE_HEADER_END
Definition: config.h:1818
#define _GL_FUNCDECL_RPL(func, rettype, parameters_and_attributes)
Definition: math.h:148
#define _GL_MATH_INLINE
Definition: math.h:42