Index: libcxx/include/__config =================================================================== --- libcxx/include/__config +++ libcxx/include/__config @@ -305,6 +305,10 @@ # endif #endif // __sun__ +#ifdef __ASYLO__ +# define _LIBCPP_HAS_NO_LONG_DOUBLE +#endif + #if defined(__CloudABI__) // Certain architectures provide arc4random(). Prefer using // arc4random() over /dev/{u,}random to make it possible to obtain Index: libcxx/include/cmath =================================================================== --- libcxx/include/cmath +++ libcxx/include/cmath @@ -442,8 +442,10 @@ using ::nearbyintf; using ::nextafter; using ::nextafterf; +#ifndef _LIBCXX_HAS_NO_LONG_DOUBLE using ::nexttoward; using ::nexttowardf; +#endif using ::remainder; using ::remainderf; using ::remquo; @@ -461,6 +463,7 @@ using ::trunc; using ::truncf; +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE using ::acosl; using ::asinl; using ::atanl; @@ -521,11 +524,14 @@ using ::scalbnl; using ::tgammal; using ::truncl; +#endif #if _LIBCPP_STD_VER > 14 inline _LIBCPP_INLINE_VISIBILITY float hypot( float x, float y, float z ) { return sqrt(x*x + y*y + z*z); } inline _LIBCPP_INLINE_VISIBILITY double hypot( double x, double y, double z ) { return sqrt(x*x + y*y + z*z); } +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double hypot( long double x, long double y, long double z ) { return sqrt(x*x + y*y + z*z); } +#endif template inline _LIBCPP_INLINE_VISIBILITY Index: libcxx/include/cstdlib =================================================================== --- libcxx/include/cstdlib +++ libcxx/include/cstdlib @@ -110,7 +110,9 @@ #endif // _LIBCPP_HAS_NO_LONG_LONG using ::strtod; using ::strtof; +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE using ::strtold; +#endif // _LIBCPP_HAS_NO_LONG_DOUBLE using ::strtol; #ifndef _LIBCPP_HAS_NO_LONG_LONG using ::strtoll; Index: libcxx/include/locale =================================================================== --- libcxx/include/locale +++ libcxx/include/locale @@ -177,6 +177,7 @@ */ +#include #include <__config> #include <__locale> #include <__debug> @@ -814,11 +815,13 @@ return strtod_l(__a, __p2, _LIBCPP_GET_C_LOCALE); } +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE template <> inline _LIBCPP_INLINE_VISIBILITY long double __do_strtod(const char* __a, char** __p2) { return strtold_l(__a, __p2, _LIBCPP_GET_C_LOCALE); } +#endif // _LIBCPP_HAS_NO_LONG_DOUBLE template _LIBCPP_HIDDEN Index: libcxx/include/math.h =================================================================== --- libcxx/include/math.h +++ libcxx/include/math.h @@ -784,12 +784,14 @@ inline _LIBCPP_INLINE_VISIBILITY double abs(double __lcpp_x) _NOEXCEPT { return ::fabs(__lcpp_x); } +#endif // !(defined(_AIX) || defined(__sun__)) +#if !(defined(_AIX) || defined(__sun__) || defined(__ASYLO__)) inline _LIBCPP_INLINE_VISIBILITY long double abs(long double __lcpp_x) _NOEXCEPT { return ::fabsl(__lcpp_x); } -#endif // !(defined(_AIX) || defined(__sun__)) +#endif // div @@ -816,6 +818,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float acos(float __lcpp_x) _NOEXCEPT {return ::acosf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return ::acosl(__lcpp_x);} #endif @@ -828,6 +833,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float asin(float __lcpp_x) _NOEXCEPT {return ::asinf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) _NOEXCEPT {return ::asinl(__lcpp_x);} #endif @@ -840,6 +848,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float atan(float __lcpp_x) _NOEXCEPT {return ::atanf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) _NOEXCEPT {return ::atanl(__lcpp_x);} #endif @@ -852,6 +863,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float atan2(float __lcpp_y, float __lcpp_x) _NOEXCEPT {return ::atan2f(__lcpp_y, __lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y, long double __lcpp_x) _NOEXCEPT {return ::atan2l(__lcpp_y, __lcpp_x);} #endif @@ -875,6 +889,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float ceil(float __lcpp_x) _NOEXCEPT {return ::ceilf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double ceil(long double __lcpp_x) _NOEXCEPT {return ::ceill(__lcpp_x);} #endif @@ -887,6 +904,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float cos(float __lcpp_x) _NOEXCEPT {return ::cosf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x) _NOEXCEPT {return ::cosl(__lcpp_x);} #endif @@ -899,6 +919,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float cosh(float __lcpp_x) _NOEXCEPT {return ::coshf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x) _NOEXCEPT {return ::coshl(__lcpp_x);} #endif @@ -911,6 +934,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float exp(float __lcpp_x) _NOEXCEPT {return ::expf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x) _NOEXCEPT {return ::expl(__lcpp_x);} #endif @@ -923,6 +949,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float fabs(float __lcpp_x) _NOEXCEPT {return ::fabsf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double fabs(long double __lcpp_x) _NOEXCEPT {return ::fabsl(__lcpp_x);} #endif @@ -935,6 +964,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float floor(float __lcpp_x) _NOEXCEPT {return ::floorf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double floor(long double __lcpp_x) _NOEXCEPT {return ::floorl(__lcpp_x);} #endif @@ -947,6 +979,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float fmod(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::fmodf(__lcpp_x, __lcpp_y);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fmodl(__lcpp_x, __lcpp_y);} #endif @@ -970,6 +1005,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float frexp(float __lcpp_x, int* __lcpp_e) _NOEXCEPT {return ::frexpf(__lcpp_x, __lcpp_e);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double frexp(long double __lcpp_x, int* __lcpp_e) _NOEXCEPT {return ::frexpl(__lcpp_x, __lcpp_e);} #endif @@ -982,6 +1020,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float ldexp(float __lcpp_x, int __lcpp_e) _NOEXCEPT {return ::ldexpf(__lcpp_x, __lcpp_e);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double ldexp(long double __lcpp_x, int __lcpp_e) _NOEXCEPT {return ::ldexpl(__lcpp_x, __lcpp_e);} #endif @@ -994,6 +1035,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float log(float __lcpp_x) _NOEXCEPT {return ::logf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) _NOEXCEPT {return ::logl(__lcpp_x);} #endif @@ -1006,6 +1050,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float log10(float __lcpp_x) _NOEXCEPT {return ::log10f(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x) _NOEXCEPT {return ::log10l(__lcpp_x);} #endif @@ -1018,6 +1065,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float modf(float __lcpp_x, float* __lcpp_y) _NOEXCEPT {return ::modff(__lcpp_x, __lcpp_y);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x, long double* __lcpp_y) _NOEXCEPT {return ::modfl(__lcpp_x, __lcpp_y);} #endif @@ -1025,6 +1075,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float pow(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::powf(__lcpp_x, __lcpp_y);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::powl(__lcpp_x, __lcpp_y);} #endif @@ -1048,6 +1101,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float sin(float __lcpp_x) _NOEXCEPT {return ::sinf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x) _NOEXCEPT {return ::sinl(__lcpp_x);} #endif @@ -1060,6 +1116,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float sinh(float __lcpp_x) _NOEXCEPT {return ::sinhf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x) _NOEXCEPT {return ::sinhl(__lcpp_x);} #endif @@ -1072,6 +1131,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float sqrt(float __lcpp_x) _NOEXCEPT {return ::sqrtf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x) _NOEXCEPT {return ::sqrtl(__lcpp_x);} #endif @@ -1084,6 +1146,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float tan(float __lcpp_x) _NOEXCEPT {return ::tanf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x) _NOEXCEPT {return ::tanl(__lcpp_x);} #endif @@ -1096,6 +1161,9 @@ #if !(defined(_AIX) || defined(__sun__)) inline _LIBCPP_INLINE_VISIBILITY float tanh(float __lcpp_x) _NOEXCEPT {return ::tanhf(__lcpp_x);} +#endif + +#if !(defined(_AIX) || defined(__sun__) || defined(_LIBCPP_HAS_NO_LONG_DOUBLE)) inline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x) _NOEXCEPT {return ::tanhl(__lcpp_x);} #endif @@ -1107,7 +1175,9 @@ // acosh inline _LIBCPP_INLINE_VISIBILITY float acosh(float __lcpp_x) _NOEXCEPT {return ::acoshf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double acosh(long double __lcpp_x) _NOEXCEPT {return ::acoshl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1117,7 +1187,9 @@ // asinh inline _LIBCPP_INLINE_VISIBILITY float asinh(float __lcpp_x) _NOEXCEPT {return ::asinhf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double asinh(long double __lcpp_x) _NOEXCEPT {return ::asinhl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1127,7 +1199,9 @@ // atanh inline _LIBCPP_INLINE_VISIBILITY float atanh(float __lcpp_x) _NOEXCEPT {return ::atanhf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double atanh(long double __lcpp_x) _NOEXCEPT {return ::atanhl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1137,7 +1211,9 @@ // cbrt inline _LIBCPP_INLINE_VISIBILITY float cbrt(float __lcpp_x) _NOEXCEPT {return ::cbrtf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double cbrt(long double __lcpp_x) _NOEXCEPT {return ::cbrtl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1150,10 +1226,12 @@ float __lcpp_y) _NOEXCEPT { return ::copysignf(__lcpp_x, __lcpp_y); } +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double copysign(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT { return ::copysignl(__lcpp_x, __lcpp_y); } +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1174,7 +1252,9 @@ // erf inline _LIBCPP_INLINE_VISIBILITY float erf(float __lcpp_x) _NOEXCEPT {return ::erff(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double erf(long double __lcpp_x) _NOEXCEPT {return ::erfl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1184,7 +1264,9 @@ // erfc inline _LIBCPP_INLINE_VISIBILITY float erfc(float __lcpp_x) _NOEXCEPT {return ::erfcf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double erfc(long double __lcpp_x) _NOEXCEPT {return ::erfcl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1194,7 +1276,9 @@ // exp2 inline _LIBCPP_INLINE_VISIBILITY float exp2(float __lcpp_x) _NOEXCEPT {return ::exp2f(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double exp2(long double __lcpp_x) _NOEXCEPT {return ::exp2l(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1204,7 +1288,9 @@ // expm1 inline _LIBCPP_INLINE_VISIBILITY float expm1(float __lcpp_x) _NOEXCEPT {return ::expm1f(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double expm1(long double __lcpp_x) _NOEXCEPT {return ::expm1l(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1214,7 +1300,9 @@ // fdim inline _LIBCPP_INLINE_VISIBILITY float fdim(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::fdimf(__lcpp_x, __lcpp_y);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double fdim(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fdiml(__lcpp_x, __lcpp_y);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1235,7 +1323,9 @@ // fma inline _LIBCPP_INLINE_VISIBILITY float fma(float __lcpp_x, float __lcpp_y, float __lcpp_z) _NOEXCEPT {return ::fmaf(__lcpp_x, __lcpp_y, __lcpp_z);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double fma(long double __lcpp_x, long double __lcpp_y, long double __lcpp_z) _NOEXCEPT {return ::fmal(__lcpp_x, __lcpp_y, __lcpp_z);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1258,7 +1348,9 @@ // fmax inline _LIBCPP_INLINE_VISIBILITY float fmax(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::fmaxf(__lcpp_x, __lcpp_y);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double fmax(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fmaxl(__lcpp_x, __lcpp_y);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1279,7 +1371,9 @@ // fmin inline _LIBCPP_INLINE_VISIBILITY float fmin(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::fminf(__lcpp_x, __lcpp_y);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double fmin(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fminl(__lcpp_x, __lcpp_y);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1300,7 +1394,9 @@ // hypot inline _LIBCPP_INLINE_VISIBILITY float hypot(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::hypotf(__lcpp_x, __lcpp_y);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double hypot(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::hypotl(__lcpp_x, __lcpp_y);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1321,7 +1417,9 @@ // ilogb inline _LIBCPP_INLINE_VISIBILITY int ilogb(float __lcpp_x) _NOEXCEPT {return ::ilogbf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY int ilogb(long double __lcpp_x) _NOEXCEPT {return ::ilogbl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1331,7 +1429,9 @@ // lgamma inline _LIBCPP_INLINE_VISIBILITY float lgamma(float __lcpp_x) _NOEXCEPT {return ::lgammaf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double lgamma(long double __lcpp_x) _NOEXCEPT {return ::lgammal(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1341,7 +1441,9 @@ // llrint inline _LIBCPP_INLINE_VISIBILITY long long llrint(float __lcpp_x) _NOEXCEPT {return ::llrintf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long long llrint(long double __lcpp_x) _NOEXCEPT {return ::llrintl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1351,7 +1453,9 @@ // llround inline _LIBCPP_INLINE_VISIBILITY long long llround(float __lcpp_x) _NOEXCEPT {return ::llroundf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long long llround(long double __lcpp_x) _NOEXCEPT {return ::llroundl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1361,7 +1465,9 @@ // log1p inline _LIBCPP_INLINE_VISIBILITY float log1p(float __lcpp_x) _NOEXCEPT {return ::log1pf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double log1p(long double __lcpp_x) _NOEXCEPT {return ::log1pl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1371,7 +1477,9 @@ // log2 inline _LIBCPP_INLINE_VISIBILITY float log2(float __lcpp_x) _NOEXCEPT {return ::log2f(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double log2(long double __lcpp_x) _NOEXCEPT {return ::log2l(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1381,7 +1489,9 @@ // logb inline _LIBCPP_INLINE_VISIBILITY float logb(float __lcpp_x) _NOEXCEPT {return ::logbf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double logb(long double __lcpp_x) _NOEXCEPT {return ::logbl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1391,7 +1501,9 @@ // lrint inline _LIBCPP_INLINE_VISIBILITY long lrint(float __lcpp_x) _NOEXCEPT {return ::lrintf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long lrint(long double __lcpp_x) _NOEXCEPT {return ::lrintl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1401,7 +1513,9 @@ // lround inline _LIBCPP_INLINE_VISIBILITY long lround(float __lcpp_x) _NOEXCEPT {return ::lroundf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long lround(long double __lcpp_x) _NOEXCEPT {return ::lroundl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1413,7 +1527,9 @@ // nearbyint inline _LIBCPP_INLINE_VISIBILITY float nearbyint(float __lcpp_x) _NOEXCEPT {return ::nearbyintf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double nearbyint(long double __lcpp_x) _NOEXCEPT {return ::nearbyintl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1423,7 +1539,9 @@ // nextafter inline _LIBCPP_INLINE_VISIBILITY float nextafter(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::nextafterf(__lcpp_x, __lcpp_y);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double nextafter(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nextafterl(__lcpp_x, __lcpp_y);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1443,6 +1561,7 @@ // nexttoward +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY float nexttoward(float __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nexttowardf(__lcpp_x, __lcpp_y);} inline _LIBCPP_INLINE_VISIBILITY long double nexttoward(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nexttowardl(__lcpp_x, __lcpp_y);} @@ -1450,11 +1569,14 @@ inline _LIBCPP_INLINE_VISIBILITY typename std::enable_if::value, double>::type nexttoward(_A1 __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nexttoward((double)__lcpp_x, __lcpp_y);} +#endif // remainder inline _LIBCPP_INLINE_VISIBILITY float remainder(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::remainderf(__lcpp_x, __lcpp_y);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double remainder(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::remainderl(__lcpp_x, __lcpp_y);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1475,7 +1597,9 @@ // remquo inline _LIBCPP_INLINE_VISIBILITY float remquo(float __lcpp_x, float __lcpp_y, int* __lcpp_z) _NOEXCEPT {return ::remquof(__lcpp_x, __lcpp_y, __lcpp_z);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double remquo(long double __lcpp_x, long double __lcpp_y, int* __lcpp_z) _NOEXCEPT {return ::remquol(__lcpp_x, __lcpp_y, __lcpp_z);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1496,7 +1620,9 @@ // rint inline _LIBCPP_INLINE_VISIBILITY float rint(float __lcpp_x) _NOEXCEPT {return ::rintf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double rint(long double __lcpp_x) _NOEXCEPT {return ::rintl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1506,7 +1632,9 @@ // round inline _LIBCPP_INLINE_VISIBILITY float round(float __lcpp_x) _NOEXCEPT {return ::roundf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double round(long double __lcpp_x) _NOEXCEPT {return ::roundl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1516,7 +1644,9 @@ // scalbln inline _LIBCPP_INLINE_VISIBILITY float scalbln(float __lcpp_x, long __lcpp_y) _NOEXCEPT {return ::scalblnf(__lcpp_x, __lcpp_y);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double scalbln(long double __lcpp_x, long __lcpp_y) _NOEXCEPT {return ::scalblnl(__lcpp_x, __lcpp_y);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1526,7 +1656,9 @@ // scalbn inline _LIBCPP_INLINE_VISIBILITY float scalbn(float __lcpp_x, int __lcpp_y) _NOEXCEPT {return ::scalbnf(__lcpp_x, __lcpp_y);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double scalbn(long double __lcpp_x, int __lcpp_y) _NOEXCEPT {return ::scalbnl(__lcpp_x, __lcpp_y);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1536,7 +1668,9 @@ // tgamma inline _LIBCPP_INLINE_VISIBILITY float tgamma(float __lcpp_x) _NOEXCEPT {return ::tgammaf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double tgamma(long double __lcpp_x) _NOEXCEPT {return ::tgammal(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY @@ -1546,7 +1680,9 @@ // trunc inline _LIBCPP_INLINE_VISIBILITY float trunc(float __lcpp_x) _NOEXCEPT {return ::truncf(__lcpp_x);} +#ifndef _LIBCPP_HAS_NO_LONG_DOUBLE inline _LIBCPP_INLINE_VISIBILITY long double trunc(long double __lcpp_x) _NOEXCEPT {return ::truncl(__lcpp_x);} +#endif template inline _LIBCPP_INLINE_VISIBILITY