22 #pragma GCC system_header 27 #include_next <math.h> 32 #ifndef _GL_INLINE_HEADER_BEGIN 33 #error "Please include config.h first." 36 #ifndef _GL_MATH_INLINE 37 # define _GL_MATH_INLINE _GL_INLINE 45 #if defined __cplusplus && defined GNULIB_NAMESPACE 46 # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { 47 # define _GL_END_NAMESPACE } 49 # define _GL_BEGIN_NAMESPACE 50 # define _GL_END_NAMESPACE 114 #if defined __cplusplus 115 # define _GL_EXTERN_C extern "C" 117 # define _GL_EXTERN_C extern 127 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ 128 _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) 129 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ 130 _GL_EXTERN_C rettype rpl_func parameters_and_attributes 139 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ 140 _GL_EXTERN_C rettype func parameters_and_attributes 151 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ 152 _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) 153 #if defined __cplusplus && defined GNULIB_NAMESPACE 154 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ 155 namespace GNULIB_NAMESPACE \ 157 static const struct _gl_ ## func ## _wrapper \ 159 typedef rettype (*type) parameters; \ 160 inline type rpl () const { return ::rpl_func; } \ 161 inline operator type () const { return rpl (); } \ 164 _GL_EXTERN_C int _gl_cxxalias_dummy 166 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ 167 _GL_EXTERN_C int _gl_cxxalias_dummy 175 #if defined __cplusplus && defined GNULIB_NAMESPACE 176 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ 177 namespace GNULIB_NAMESPACE \ 179 static const struct _gl_ ## func ## _wrapper \ 181 typedef rettype (*type) parameters; \ 182 inline type rpl () const \ 183 { return reinterpret_cast<type>(::rpl_func); } \ 184 inline operator type () const { return rpl (); } \ 187 _GL_EXTERN_C int _gl_cxxalias_dummy 189 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ 190 _GL_EXTERN_C int _gl_cxxalias_dummy 203 #if defined __cplusplus && defined GNULIB_NAMESPACE 204 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ 205 namespace GNULIB_NAMESPACE \ 207 static const struct _gl_ ## func ## _wrapper \ 209 typedef rettype (*type) parameters; \ 210 inline type rpl () const { return ::func; } \ 211 inline operator type () const { return rpl (); } \ 214 _GL_EXTERN_C int _gl_cxxalias_dummy 216 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ 217 _GL_EXTERN_C int _gl_cxxalias_dummy 225 #if defined __cplusplus && defined GNULIB_NAMESPACE 226 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ 227 namespace GNULIB_NAMESPACE \ 229 static const struct _gl_ ## func ## _wrapper \ 231 typedef rettype (*type) parameters; \ 232 inline type rpl () const \ 233 { return reinterpret_cast<type>(::func); } \ 234 inline operator type () const { return rpl (); }\ 237 _GL_EXTERN_C int _gl_cxxalias_dummy 239 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ 240 _GL_EXTERN_C int _gl_cxxalias_dummy 249 #if defined __cplusplus && defined GNULIB_NAMESPACE 255 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ 256 namespace GNULIB_NAMESPACE \ 258 static const struct _gl_ ## func ## _wrapper \ 260 typedef rettype (*type) parameters; \ 262 inline type rpl () const \ 263 { return reinterpret_cast<type>((rettype2 (*) parameters2)(::func)); }\ 265 inline operator type () const { return rpl (); } \ 268 _GL_EXTERN_C int _gl_cxxalias_dummy 270 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ 271 _GL_EXTERN_C int _gl_cxxalias_dummy 278 #if defined __cplusplus && defined GNULIB_NAMESPACE 279 # define _GL_CXXALIASWARN(func) \ 280 _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) 281 # define _GL_CXXALIASWARN_1(func,namespace) \ 282 _GL_CXXALIASWARN_2 (func, namespace) 286 # define _GL_CXXALIASWARN_2(func,namespace) \ 287 _GL_WARN_ON_USE (func, \ 288 "The symbol ::" #func " refers to the system function. " \ 289 "Use " #namespace "::" #func " instead.") 290 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 291 # define _GL_CXXALIASWARN_2(func,namespace) \ 292 extern __typeof__ (func) func 294 # define _GL_CXXALIASWARN_2(func,namespace) \ 295 _GL_EXTERN_C int _gl_cxxalias_dummy 298 # define _GL_CXXALIASWARN(func) \ 299 _GL_EXTERN_C int _gl_cxxalias_dummy 305 #if defined __cplusplus && defined GNULIB_NAMESPACE 306 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ 307 _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ 309 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ 310 _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) 314 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 315 _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ 316 "The symbol ::" #func " refers to the system function. " \ 317 "Use " #namespace "::" #func " instead.") 318 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 319 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 320 extern __typeof__ (func) func 322 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ 323 _GL_EXTERN_C int _gl_cxxalias_dummy 326 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ 327 _GL_EXTERN_C int _gl_cxxalias_dummy 336 #ifndef _GL_ARG_NONNULL 337 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 338 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) 340 # define _GL_ARG_NONNULL(params) 345 #ifndef _GL_WARN_ON_USE 347 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) 349 # define _GL_WARN_ON_USE(function, message) \ 350 extern __typeof__ (function) function __attribute__ ((__warning__ (message))) 351 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 353 # define _GL_WARN_ON_USE(function, message) \ 354 extern __typeof__ (function) function 356 # define _GL_WARN_ON_USE(function, message) \ 357 _GL_WARN_EXTERN_C int _gl_warn_on_use 367 #ifndef _GL_WARN_ON_USE_CXX 368 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) 369 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 370 extern rettype function parameters_and_attributes \ 371 __attribute__ ((__warning__ (msg))) 372 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING 374 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 375 extern rettype function parameters_and_attributes 377 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ 378 _GL_WARN_EXTERN_C int _gl_warn_on_use 384 #ifndef _GL_WARN_EXTERN_C 385 # if defined __cplusplus 386 # define _GL_WARN_EXTERN_C extern "C" 388 # define _GL_WARN_EXTERN_C extern 396 # define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \ 398 _gl_cxx_ ## func ## f (float f) \ 403 _gl_cxx_ ## func ## d (double d) \ 408 _gl_cxx_ ## func ## l (long double l) \ 412 # define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \ 413 _GL_BEGIN_NAMESPACE \ 417 return _gl_cxx_ ## func ## f (f); \ 422 return _gl_cxx_ ## func ## d (d); \ 425 func (long double l) \ 427 return _gl_cxx_ ## func ## l (l); \ 436 #define _GL_WARN_REAL_FLOATING_DECL(func) \ 437 _GL_MATH_INLINE int \ 438 rpl_ ## func ## f (float f) \ 442 _GL_MATH_INLINE int \ 443 rpl_ ## func ## d (double d) \ 447 _GL_MATH_INLINE int \ 448 rpl_ ## func ## l (long double l) \ 452 _GL_WARN_ON_USE (rpl_ ## func ## f, #func " is unportable - " \ 453 "use gnulib module " #func " for portability"); \ 454 _GL_WARN_ON_USE (rpl_ ## func ## d, #func " is unportable - " \ 455 "use gnulib module " #func " for portability"); \ 456 _GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \ 457 "use gnulib module " #func " for portability") 458 #define _GL_WARN_REAL_FLOATING_IMPL(func, value) \ 459 (sizeof (value) == sizeof (float) ? rpl_ ## func ## f (value) \ 460 : sizeof (value) == sizeof (double) ? rpl_ ## func ## d (value) \ 461 : rpl_ ## func ## l (value)) 468 static void (*_gl_math_fix_itold) (
long double *, int) = _Qp_itoq;
477 #if !defined NAN || 0 478 # if !GNULIB_defined_NAN 482 # if defined __DECC || defined _MSC_VER 486 static float zero = 0.0f;
489 # define NAN (_NaN()) 491 # define NAN (0.0f / 0.0f) 493 # define GNULIB_defined_NAN 1 501 # define HUGE_VALF (1.0f / 0.0f) 503 # define HUGE_VAL (1.0 / 0.0) 505 # define HUGE_VALL (1.0L / 0.0L) 510 # if defined _MSC_VER 512 # define HUGE_VALF (1e25f * 1e25f) 514 # define HUGE_VALF (1.0f / 0.0f) 520 # if defined _MSC_VER 522 # define HUGE_VAL (1e250 * 1e250) 524 # define HUGE_VAL (1.0 / 0.0) 530 # if defined _MSC_VER 532 # define HUGE_VALL (1e250L * 1e250L) 534 # define HUGE_VALL (1.0L / 0.0L) 540 #if !(defined FP_ILOGB0 && defined FP_ILOGBNAN) 541 # if defined __NetBSD__ || defined __sgi 543 # define FP_ILOGB0 (- 2147483647 - 1) 544 # define FP_ILOGBNAN (- 2147483647 - 1) 547 # define FP_ILOGB0 (- 2147483647 - 1) 548 # define FP_ILOGBNAN 2147483647 551 # define FP_ILOGB0 (- 2147483647) 552 # define FP_ILOGBNAN 2147483647 555 # define FP_ILOGB0 (- 2147483647) 556 # define FP_ILOGBNAN (- 2147483647 - 1) 568 #elif defined GNULIB_POSIXCHECK 570 # if HAVE_RAW_DECL_ACOSF 572 "use gnulib module acosf for portability");
583 #elif defined GNULIB_POSIXCHECK 585 # if HAVE_RAW_DECL_ACOSL 587 "use gnulib module acosl for portability");
599 #elif defined GNULIB_POSIXCHECK 601 # if HAVE_RAW_DECL_ASINF 603 "use gnulib module asinf for portability");
614 #elif defined GNULIB_POSIXCHECK 616 # if HAVE_RAW_DECL_ASINL 618 "use gnulib module asinl for portability");
630 #elif defined GNULIB_POSIXCHECK 632 # if HAVE_RAW_DECL_ATANF 634 "use gnulib module atanf for portability");
645 #elif defined GNULIB_POSIXCHECK 647 # if HAVE_RAW_DECL_ATANL 649 "use gnulib module atanl for portability");
661 #elif defined GNULIB_POSIXCHECK 663 # if HAVE_RAW_DECL_ATAN2F 665 "use gnulib module atan2f for portability");
672 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 674 # define cbrtf rpl_cbrtf 685 #elif defined GNULIB_POSIXCHECK 687 # if HAVE_RAW_DECL_CBRTF 689 "use gnulib module cbrtf for portability");
699 #elif defined GNULIB_POSIXCHECK 701 # if HAVE_RAW_DECL_CBRT 703 "use gnulib module cbrt for portability");
709 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 711 # define cbrtl rpl_cbrtl 722 #elif defined GNULIB_POSIXCHECK 724 # if HAVE_RAW_DECL_CBRTL 726 "use gnulib module cbrtl for portability");
733 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 735 # define ceilf rpl_ceilf 747 #elif defined GNULIB_POSIXCHECK 749 # if HAVE_RAW_DECL_CEILF 751 "use gnulib module ceilf for portability");
757 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 759 # define ceil rpl_ceil 771 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 773 # define ceill rpl_ceill 785 #elif defined GNULIB_POSIXCHECK 787 # if HAVE_RAW_DECL_CEILL 789 "use gnulib module ceill for portability");
800 #elif defined GNULIB_POSIXCHECK 802 # if HAVE_RAW_DECL_COPYSIGNF 804 "use gnulib module copysignf for portability");
814 #elif defined GNULIB_POSIXCHECK 816 # if HAVE_RAW_DECL_COPYSIGN 818 "use gnulib module copysign for portability");
828 #elif defined GNULIB_POSIXCHECK 830 # if HAVE_RAW_DECL_COPYSIGNL 832 "use gnulib module copysignl for portability");
844 #elif defined GNULIB_POSIXCHECK 846 # if HAVE_RAW_DECL_COSF 848 "use gnulib module cosf for portability");
859 #elif defined GNULIB_POSIXCHECK 861 # if HAVE_RAW_DECL_COSL 863 "use gnulib module cosl for portability");
875 #elif defined GNULIB_POSIXCHECK 877 # if HAVE_RAW_DECL_COSHF 879 "use gnulib module coshf for portability");
891 #elif defined GNULIB_POSIXCHECK 893 # if HAVE_RAW_DECL_EXPF 895 "use gnulib module expf for portability");
906 #elif defined GNULIB_POSIXCHECK 908 # if HAVE_RAW_DECL_EXPL 910 "use gnulib module expl for portability");
921 #elif defined GNULIB_POSIXCHECK 923 # if HAVE_RAW_DECL_EXP2F 925 "use gnulib module exp2f for portability");
931 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 933 # define exp2 rpl_exp2 944 #elif defined GNULIB_POSIXCHECK 946 # if HAVE_RAW_DECL_EXP2 948 "use gnulib module exp2 for portability");
954 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 956 # define exp2l rpl_exp2l 968 #elif defined GNULIB_POSIXCHECK 970 # if HAVE_RAW_DECL_EXP2L 972 "use gnulib module exp2l for portability");
979 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 981 # define expm1f rpl_expm1f 992 #elif defined GNULIB_POSIXCHECK 994 # if HAVE_RAW_DECL_EXPM1F 996 "use gnulib module expm1f for portability");
1002 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1004 # define expm1 rpl_expm1 1015 #elif defined GNULIB_POSIXCHECK 1017 # if HAVE_RAW_DECL_EXPM1 1019 "use gnulib module expm1 for portability");
1030 #elif defined GNULIB_POSIXCHECK 1032 # if HAVE_RAW_DECL_EXPM1L 1034 "use gnulib module expm1l for portability");
1046 #elif defined GNULIB_POSIXCHECK 1048 # if HAVE_RAW_DECL_FABSF 1050 "use gnulib module fabsf for portability");
1056 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1058 # define fabsl rpl_fabsl 1070 #elif defined GNULIB_POSIXCHECK 1072 # if HAVE_RAW_DECL_FABSL 1074 "use gnulib module fabsl for portability");
1081 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1083 # define floorf rpl_floorf 1095 #elif defined GNULIB_POSIXCHECK 1097 # if HAVE_RAW_DECL_FLOORF 1099 "use gnulib module floorf for portability");
1105 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1107 # define floor rpl_floor 1119 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1121 # define floorl rpl_floorl 1133 #elif defined GNULIB_POSIXCHECK 1135 # if HAVE_RAW_DECL_FLOORL 1137 "use gnulib module floorl for portability");
1144 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1146 # define fmaf rpl_fmaf 1157 #elif defined GNULIB_POSIXCHECK 1159 # if HAVE_RAW_DECL_FMAF 1161 "use gnulib module fmaf for portability");
1167 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1169 # define fma rpl_fma 1180 #elif defined GNULIB_POSIXCHECK 1182 # if HAVE_RAW_DECL_FMA 1184 "use gnulib module fma for portability");
1190 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1192 # define fmal rpl_fmal 1195 (
long double x,
long double y,
long double z));
1197 (
long double x,
long double y,
long double z));
1202 (
long double x,
long double y,
long double z));
1205 (
long double x,
long double y,
long double z));
1208 #elif defined GNULIB_POSIXCHECK 1210 # if HAVE_RAW_DECL_FMAL 1212 "use gnulib module fmal for portability");
1219 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1221 # define fmodf rpl_fmodf 1233 #elif defined GNULIB_POSIXCHECK 1235 # if HAVE_RAW_DECL_FMODF 1237 "use gnulib module fmodf for portability");
1243 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1245 # define fmod rpl_fmod 1253 #elif defined GNULIB_POSIXCHECK 1255 # if HAVE_RAW_DECL_FMOD 1257 "use gnulib module fmod for portability");
1263 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1265 # define fmodl rpl_fmodl 1277 #elif defined GNULIB_POSIXCHECK 1279 # if HAVE_RAW_DECL_FMODL 1281 "use gnulib module fmodl for portability");
1295 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1297 # define frexpf rpl_frexpf 1309 #elif defined GNULIB_POSIXCHECK 1311 # if HAVE_RAW_DECL_FREXPF 1313 "use gnulib module frexpf for portability");
1326 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1328 # define frexp rpl_frexp 1336 #elif defined GNULIB_POSIXCHECK 1340 "use gnulib module frexp for portability");
1351 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1353 # define frexpl rpl_frexpl 1370 #if !1 && defined GNULIB_POSIXCHECK 1372 # if HAVE_RAW_DECL_FREXPL 1374 "use gnulib module frexpl for portability");
1382 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1384 # define hypotf rpl_hypotf 1395 #elif defined GNULIB_POSIXCHECK 1397 # if HAVE_RAW_DECL_HYPOTF 1399 "use gnulib module hypotf for portability");
1406 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1408 # define hypot rpl_hypot 1416 #elif defined GNULIB_POSIXCHECK 1418 # if HAVE_RAW_DECL_HYPOT 1420 "use gnulib module hypot for portability");
1427 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1429 # define hypotl rpl_hypotl 1440 #elif defined GNULIB_POSIXCHECK 1442 # if HAVE_RAW_DECL_HYPOTL 1444 "use gnulib module hypotl for portability");
1451 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1453 # define ilogbf rpl_ilogbf 1464 #elif defined GNULIB_POSIXCHECK 1466 # if HAVE_RAW_DECL_ILOGBF 1468 "use gnulib module ilogbf for portability");
1474 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1476 # define ilogb rpl_ilogb 1487 #elif defined GNULIB_POSIXCHECK 1489 # if HAVE_RAW_DECL_ILOGB 1491 "use gnulib module ilogb for portability");
1501 #elif defined GNULIB_POSIXCHECK 1503 # if HAVE_RAW_DECL_ILOGBL 1505 "use gnulib module ilogbl for portability");
1518 #elif defined GNULIB_POSIXCHECK 1520 # if HAVE_RAW_DECL_LDEXPF 1522 "use gnulib module ldexpf for portability");
1528 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1530 # define ldexpl rpl_ldexpl 1545 #if !0 && defined GNULIB_POSIXCHECK 1547 # if HAVE_RAW_DECL_LDEXPL 1549 "use gnulib module ldexpl for portability");
1556 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1558 # define logf rpl_logf 1570 #elif defined GNULIB_POSIXCHECK 1572 # if HAVE_RAW_DECL_LOGF 1574 "use gnulib module logf for portability");
1580 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1582 # define log rpl_log 1590 #elif defined GNULIB_POSIXCHECK 1592 # if HAVE_RAW_DECL_LOG 1594 "use gnulib module log for portability");
1600 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1602 # define logl rpl_logl 1614 #elif defined GNULIB_POSIXCHECK 1616 # if HAVE_RAW_DECL_LOGL 1618 "use gnulib module logl for portability");
1625 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1627 # define log10f rpl_log10f 1639 #elif defined GNULIB_POSIXCHECK 1641 # if HAVE_RAW_DECL_LOG10F 1643 "use gnulib module log10f for portability");
1649 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1651 # define log10 rpl_log10 1659 #elif defined GNULIB_POSIXCHECK 1661 # if HAVE_RAW_DECL_LOG10 1663 "use gnulib module log10 for portability");
1669 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1671 # define log10l rpl_log10l 1683 #elif defined GNULIB_POSIXCHECK 1685 # if HAVE_RAW_DECL_LOG10L 1687 "use gnulib module log10l for portability");
1694 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1696 # define log1pf rpl_log1pf 1707 #elif defined GNULIB_POSIXCHECK 1709 # if HAVE_RAW_DECL_LOG1PF 1711 "use gnulib module log1pf for portability");
1717 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1719 # define log1p rpl_log1p 1730 #elif defined GNULIB_POSIXCHECK 1732 # if HAVE_RAW_DECL_LOG1P 1734 "use gnulib module log1p for portability");
1740 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1742 # define log1pl rpl_log1pl 1753 #elif defined GNULIB_POSIXCHECK 1755 # if HAVE_RAW_DECL_LOG1PL 1757 "use gnulib module log1pl for portability");
1764 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1766 # define log2f rpl_log2f 1778 #elif defined GNULIB_POSIXCHECK 1780 # if HAVE_RAW_DECL_LOG2F 1782 "use gnulib module log2f for portability");
1788 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1790 # define log2 rpl_log2 1802 #elif defined GNULIB_POSIXCHECK 1804 # if HAVE_RAW_DECL_LOG2 1806 "use gnulib module log2 for portability");
1812 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1814 # define log2l rpl_log2l 1825 #elif defined GNULIB_POSIXCHECK 1827 # if HAVE_RAW_DECL_LOG2L 1829 "use gnulib module log2l for portability");
1836 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1838 # define logbf rpl_logbf 1849 #elif defined GNULIB_POSIXCHECK 1851 # if HAVE_RAW_DECL_LOGBF 1853 "use gnulib module logbf for portability");
1859 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1861 # define logb rpl_logb 1872 #elif defined GNULIB_POSIXCHECK 1874 # if HAVE_RAW_DECL_LOGB 1876 "use gnulib module logb for portability");
1882 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1884 # define logbl rpl_logbl 1895 #elif defined GNULIB_POSIXCHECK 1897 # if HAVE_RAW_DECL_LOGBL 1899 "use gnulib module logbl for portability");
1906 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1908 # define modff rpl_modff 1920 #elif defined GNULIB_POSIXCHECK 1922 # if HAVE_RAW_DECL_MODFF 1924 "use gnulib module modff for portability");
1930 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1932 # define modf rpl_modf 1940 #elif defined GNULIB_POSIXCHECK 1942 # if HAVE_RAW_DECL_MODF 1944 "use gnulib module modf for portability");
1950 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1952 # define modfl rpl_modfl 1966 #elif defined GNULIB_POSIXCHECK 1968 # if HAVE_RAW_DECL_MODFL 1970 "use gnulib module modfl for portability");
1982 #elif defined GNULIB_POSIXCHECK 1984 # if HAVE_RAW_DECL_POWF 1986 "use gnulib module powf for portability");
1993 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 1995 # define remainderf rpl_remainderf 2006 #elif defined GNULIB_POSIXCHECK 2008 # if HAVE_RAW_DECL_REMAINDERF 2010 "use gnulib module remainderf for portability");
2016 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2018 # define remainder rpl_remainder 2029 #elif defined GNULIB_POSIXCHECK 2031 # if HAVE_RAW_DECL_REMAINDER 2033 "use gnulib module remainder for portability");
2039 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2041 # define remainderl rpl_remainderl 2043 _GL_FUNCDECL_RPL (remainderl,
long double, (
long double x,
long double y));
2044 _GL_CXXALIAS_RPL (remainderl,
long double, (
long double x,
long double y));
2048 _GL_FUNCDECL_SYS (remainderl,
long double, (
long double x,
long double y));
2050 _GL_CXXALIAS_SYS (remainderl,
long double, (
long double x,
long double y));
2053 #elif defined GNULIB_POSIXCHECK 2055 # if HAVE_RAW_DECL_REMAINDERL 2057 "use gnulib module remainderl for portability");
2068 #elif defined GNULIB_POSIXCHECK 2070 # if HAVE_RAW_DECL_RINTF 2072 "use gnulib module rintf for portability");
2082 #elif defined GNULIB_POSIXCHECK 2084 # if HAVE_RAW_DECL_RINT 2086 "use gnulib module rint for portability");
2096 #elif defined GNULIB_POSIXCHECK 2098 # if HAVE_RAW_DECL_RINTL 2100 "use gnulib module rintl for portability");
2107 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2109 # define roundf rpl_roundf 2120 #elif defined GNULIB_POSIXCHECK 2122 # if HAVE_RAW_DECL_ROUNDF 2124 "use gnulib module roundf for portability");
2130 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2132 # define round rpl_round 2143 #elif defined GNULIB_POSIXCHECK 2145 # if HAVE_RAW_DECL_ROUND 2147 "use gnulib module round for portability");
2153 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2155 # define roundl rpl_roundl 2167 #elif defined GNULIB_POSIXCHECK 2169 # if HAVE_RAW_DECL_ROUNDL 2171 "use gnulib module roundl for portability");
2183 #elif defined GNULIB_POSIXCHECK 2185 # if HAVE_RAW_DECL_SINF 2187 "use gnulib module sinf for portability");
2198 #elif defined GNULIB_POSIXCHECK 2200 # if HAVE_RAW_DECL_SINL 2202 "use gnulib module sinl for portability");
2214 #elif defined GNULIB_POSIXCHECK 2216 # if HAVE_RAW_DECL_SINHF 2218 "use gnulib module sinhf for portability");
2230 #elif defined GNULIB_POSIXCHECK 2232 # if HAVE_RAW_DECL_SQRTF 2234 "use gnulib module sqrtf for portability");
2240 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2242 # define sqrtl rpl_sqrtl 2254 #elif defined GNULIB_POSIXCHECK 2256 # if HAVE_RAW_DECL_SQRTL 2258 "use gnulib module sqrtl for portability");
2270 #elif defined GNULIB_POSIXCHECK 2272 # if HAVE_RAW_DECL_TANF 2274 "use gnulib module tanf for portability");
2285 #elif defined GNULIB_POSIXCHECK 2287 # if HAVE_RAW_DECL_TANL 2289 "use gnulib module tanl for portability");
2301 #elif defined GNULIB_POSIXCHECK 2303 # if HAVE_RAW_DECL_TANHF 2305 "use gnulib module tanhf for portability");
2312 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2314 # define truncf rpl_truncf 2325 #elif defined GNULIB_POSIXCHECK 2327 # if HAVE_RAW_DECL_TRUNCF 2329 "use gnulib module truncf for portability");
2335 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2337 # define trunc rpl_trunc 2348 #elif defined GNULIB_POSIXCHECK 2350 # if HAVE_RAW_DECL_TRUNC 2352 "use gnulib module trunc for portability");
2358 # if !(defined __cplusplus && defined GNULIB_NAMESPACE) 2360 # define truncl rpl_truncl 2371 #elif defined GNULIB_POSIXCHECK 2373 # if HAVE_RAW_DECL_TRUNCL 2375 "use gnulib module truncl for portability");
2390 # define isfinite(x) \ 2391 (sizeof (x) == sizeof (long double) ? gl_isfinitel (x) : \ 2392 sizeof (x) == sizeof (double) ? gl_isfinited (x) : \ 2396 # if defined isfinite || defined GNULIB_NAMESPACE 2397 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
2399 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite)
2402 #elif defined GNULIB_POSIXCHECK 2403 # if defined isfinite 2406 # define isfinite(x) _GL_WARN_REAL_FLOATING_IMPL (isfinite, x) 2418 (sizeof (x) == sizeof (long double) ? gl_isinfl (x) : \ 2419 sizeof (x) == sizeof (double) ? gl_isinfd (x) : \ 2423 # if defined isinf || defined GNULIB_NAMESPACE 2424 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
2426 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf)
2429 #elif defined GNULIB_POSIXCHECK 2433 # define isinf(x) _GL_WARN_REAL_FLOATING_IMPL (isinf, x) 2446 # define isnanf(x) __builtin_isnanf ((float)(x)) 2447 # elif defined isnan 2449 # define isnanf(x) isnan ((float)(x)) 2454 # define isnanf rpl_isnanf 2469 # define isnand(x) __builtin_isnan ((double)(x)) 2472 # define isnand(x) isnan ((double)(x)) 2477 # define isnand rpl_isnand 2490 # define isnanl(x) __builtin_isnanl ((long double)(x)) 2491 # elif defined isnan 2493 # define isnanl(x) isnan ((long double)(x)) 2498 # define isnanl rpl_isnanl 2510 # if 1 && __GNUC__ >= 4 2511 # define gl_isnan_f(x) __builtin_isnanf ((float)(x)) 2514 # define gl_isnan_f(x) rpl_isnanf (x) 2516 # if 1 && __GNUC__ >= 4 2517 # define gl_isnan_d(x) __builtin_isnan ((double)(x)) 2520 # define gl_isnan_d(x) rpl_isnand (x) 2522 # if 1 && __GNUC__ >= 4 2523 # define gl_isnan_l(x) __builtin_isnanl ((long double)(x)) 2526 # define gl_isnan_l(x) rpl_isnanl (x) 2530 (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \ 2531 sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \ 2533 # elif __GNUC__ >= 4 2536 (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \ 2537 sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \ 2538 __builtin_isnanf ((float)(x))) 2541 # if defined isnan || defined GNULIB_NAMESPACE 2542 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
2544 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan)
2549 # define isnan isnan 2552 #elif defined GNULIB_POSIXCHECK 2556 # define isnan(x) _GL_WARN_REAL_FLOATING_IMPL (isnan, x) 2563 && (!defined __cplusplus || __cplusplus < 201103)) 2566 # define signbit(x) \ 2567 (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \ 2568 sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \ 2569 __builtin_signbitf (x)) 2576 # if __GNUC__ >= 2 && !defined __STRICT_ANSI__ 2577 # define _GL_NUM_UINT_WORDS(type) \ 2578 ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) 2579 # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf 2580 # define gl_signbitf_OPTIMIZED_MACRO 2581 # define gl_signbitf(arg) \ 2582 ({ union { float _value; \ 2583 unsigned int _word[_GL_NUM_UINT_WORDS (float)]; \ 2585 _m._value = (arg); \ 2586 (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \ 2589 # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd 2590 # define gl_signbitd_OPTIMIZED_MACRO 2591 # define gl_signbitd(arg) \ 2592 ({ union { double _value; \ 2593 unsigned int _word[_GL_NUM_UINT_WORDS (double)]; \ 2595 _m._value = (arg); \ 2596 (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \ 2599 # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl 2600 # define gl_signbitl_OPTIMIZED_MACRO 2601 # define gl_signbitl(arg) \ 2602 ({ union { long double _value; \ 2603 unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \ 2605 _m._value = (arg); \ 2606 (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1; \ 2610 # define signbit(x) \ 2611 (sizeof (x) == sizeof (long double) ? gl_signbitl (x) : \ 2612 sizeof (x) == sizeof (double) ? gl_signbitd (x) : \ 2616 # if defined signbit || defined GNULIB_NAMESPACE 2617 _GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
2619 _GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit)
2622 #elif defined GNULIB_POSIXCHECK 2623 # if defined signbit 2626 # define signbit(x) _GL_WARN_REAL_FLOATING_IMPL (signbit, x) #define _GL_CXXALIASWARN1(func, rettype, parameters_and_attributes)
#define _GL_FUNCDECL_SYS(func, rettype, parameters_and_attributes)
#define _GL_ARG_NONNULL(params)
#define _GL_CXXALIAS_RPL(func, rettype, parameters)
#define _GL_ATTRIBUTE_CONST
#define _GL_CXXALIASWARN(func)
#define _GL_WARN_REAL_FLOATING_DECL(func)
#define _GL_WARN_ON_USE(function, message)
#define _GL_CXXALIAS_SYS(func, rettype, parameters)
#define _GL_INLINE_HEADER_END
#define _GL_INLINE_HEADER_BEGIN
#define _GL_FUNCDECL_RPL(func, rettype, parameters_and_attributes)