14684ddb6SLionel Sambuc// -*- C++ -*- 24684ddb6SLionel Sambuc//===---------------------------- cmath -----------------------------------===// 34684ddb6SLionel Sambuc// 44684ddb6SLionel Sambuc// The LLVM Compiler Infrastructure 54684ddb6SLionel Sambuc// 64684ddb6SLionel Sambuc// This file is dual licensed under the MIT and the University of Illinois Open 74684ddb6SLionel Sambuc// Source Licenses. See LICENSE.TXT for details. 84684ddb6SLionel Sambuc// 94684ddb6SLionel Sambuc//===----------------------------------------------------------------------===// 104684ddb6SLionel Sambuc 114684ddb6SLionel Sambuc#ifndef _LIBCPP_CMATH 124684ddb6SLionel Sambuc#define _LIBCPP_CMATH 134684ddb6SLionel Sambuc 144684ddb6SLionel Sambuc/* 154684ddb6SLionel Sambuc cmath synopsis 164684ddb6SLionel Sambuc 174684ddb6SLionel SambucMacros: 184684ddb6SLionel Sambuc 194684ddb6SLionel Sambuc HUGE_VAL 204684ddb6SLionel Sambuc HUGE_VALF // C99 214684ddb6SLionel Sambuc HUGE_VALL // C99 224684ddb6SLionel Sambuc INFINITY // C99 234684ddb6SLionel Sambuc NAN // C99 244684ddb6SLionel Sambuc FP_INFINITE // C99 254684ddb6SLionel Sambuc FP_NAN // C99 264684ddb6SLionel Sambuc FP_NORMAL // C99 274684ddb6SLionel Sambuc FP_SUBNORMAL // C99 284684ddb6SLionel Sambuc FP_ZERO // C99 294684ddb6SLionel Sambuc FP_FAST_FMA // C99 304684ddb6SLionel Sambuc FP_FAST_FMAF // C99 314684ddb6SLionel Sambuc FP_FAST_FMAL // C99 324684ddb6SLionel Sambuc FP_ILOGB0 // C99 334684ddb6SLionel Sambuc FP_ILOGBNAN // C99 344684ddb6SLionel Sambuc MATH_ERRNO // C99 354684ddb6SLionel Sambuc MATH_ERREXCEPT // C99 364684ddb6SLionel Sambuc math_errhandling // C99 374684ddb6SLionel Sambuc 384684ddb6SLionel Sambucnamespace std 394684ddb6SLionel Sambuc{ 404684ddb6SLionel Sambuc 414684ddb6SLionel SambucTypes: 424684ddb6SLionel Sambuc 434684ddb6SLionel Sambuc float_t // C99 444684ddb6SLionel Sambuc double_t // C99 454684ddb6SLionel Sambuc 464684ddb6SLionel Sambuc// C90 474684ddb6SLionel Sambuc 484684ddb6SLionel Sambucfloating_point abs(floating_point x); 494684ddb6SLionel Sambuc 504684ddb6SLionel Sambucfloating_point acos (arithmetic x); 514684ddb6SLionel Sambucfloat acosf(float x); 524684ddb6SLionel Sambuclong double acosl(long double x); 534684ddb6SLionel Sambuc 544684ddb6SLionel Sambucfloating_point asin (arithmetic x); 554684ddb6SLionel Sambucfloat asinf(float x); 564684ddb6SLionel Sambuclong double asinl(long double x); 574684ddb6SLionel Sambuc 584684ddb6SLionel Sambucfloating_point atan (arithmetic x); 594684ddb6SLionel Sambucfloat atanf(float x); 604684ddb6SLionel Sambuclong double atanl(long double x); 614684ddb6SLionel Sambuc 624684ddb6SLionel Sambucfloating_point atan2 (arithmetic y, arithmetic x); 634684ddb6SLionel Sambucfloat atan2f(float y, float x); 644684ddb6SLionel Sambuclong double atan2l(long double y, long double x); 654684ddb6SLionel Sambuc 664684ddb6SLionel Sambucfloating_point ceil (arithmetic x); 674684ddb6SLionel Sambucfloat ceilf(float x); 684684ddb6SLionel Sambuclong double ceill(long double x); 694684ddb6SLionel Sambuc 704684ddb6SLionel Sambucfloating_point cos (arithmetic x); 714684ddb6SLionel Sambucfloat cosf(float x); 724684ddb6SLionel Sambuclong double cosl(long double x); 734684ddb6SLionel Sambuc 744684ddb6SLionel Sambucfloating_point cosh (arithmetic x); 754684ddb6SLionel Sambucfloat coshf(float x); 764684ddb6SLionel Sambuclong double coshl(long double x); 774684ddb6SLionel Sambuc 784684ddb6SLionel Sambucfloating_point exp (arithmetic x); 794684ddb6SLionel Sambucfloat expf(float x); 804684ddb6SLionel Sambuclong double expl(long double x); 814684ddb6SLionel Sambuc 824684ddb6SLionel Sambucfloating_point fabs (arithmetic x); 834684ddb6SLionel Sambucfloat fabsf(float x); 844684ddb6SLionel Sambuclong double fabsl(long double x); 854684ddb6SLionel Sambuc 864684ddb6SLionel Sambucfloating_point floor (arithmetic x); 874684ddb6SLionel Sambucfloat floorf(float x); 884684ddb6SLionel Sambuclong double floorl(long double x); 894684ddb6SLionel Sambuc 904684ddb6SLionel Sambucfloating_point fmod (arithmetic x, arithmetic y); 914684ddb6SLionel Sambucfloat fmodf(float x, float y); 924684ddb6SLionel Sambuclong double fmodl(long double x, long double y); 934684ddb6SLionel Sambuc 944684ddb6SLionel Sambucfloating_point frexp (arithmetic value, int* exp); 954684ddb6SLionel Sambucfloat frexpf(float value, int* exp); 964684ddb6SLionel Sambuclong double frexpl(long double value, int* exp); 974684ddb6SLionel Sambuc 984684ddb6SLionel Sambucfloating_point ldexp (arithmetic value, int exp); 994684ddb6SLionel Sambucfloat ldexpf(float value, int exp); 1004684ddb6SLionel Sambuclong double ldexpl(long double value, int exp); 1014684ddb6SLionel Sambuc 1024684ddb6SLionel Sambucfloating_point log (arithmetic x); 1034684ddb6SLionel Sambucfloat logf(float x); 1044684ddb6SLionel Sambuclong double logl(long double x); 1054684ddb6SLionel Sambuc 1064684ddb6SLionel Sambucfloating_point log10 (arithmetic x); 1074684ddb6SLionel Sambucfloat log10f(float x); 1084684ddb6SLionel Sambuclong double log10l(long double x); 1094684ddb6SLionel Sambuc 1104684ddb6SLionel Sambucfloating_point modf (floating_point value, floating_point* iptr); 1114684ddb6SLionel Sambucfloat modff(float value, float* iptr); 1124684ddb6SLionel Sambuclong double modfl(long double value, long double* iptr); 1134684ddb6SLionel Sambuc 1144684ddb6SLionel Sambucfloating_point pow (arithmetic x, arithmetic y); 1154684ddb6SLionel Sambucfloat powf(float x, float y); 1164684ddb6SLionel Sambuclong double powl(long double x, long double y); 1174684ddb6SLionel Sambuc 1184684ddb6SLionel Sambucfloating_point sin (arithmetic x); 1194684ddb6SLionel Sambucfloat sinf(float x); 1204684ddb6SLionel Sambuclong double sinl(long double x); 1214684ddb6SLionel Sambuc 1224684ddb6SLionel Sambucfloating_point sinh (arithmetic x); 1234684ddb6SLionel Sambucfloat sinhf(float x); 1244684ddb6SLionel Sambuclong double sinhl(long double x); 1254684ddb6SLionel Sambuc 1264684ddb6SLionel Sambucfloating_point sqrt (arithmetic x); 1274684ddb6SLionel Sambucfloat sqrtf(float x); 1284684ddb6SLionel Sambuclong double sqrtl(long double x); 1294684ddb6SLionel Sambuc 1304684ddb6SLionel Sambucfloating_point tan (arithmetic x); 1314684ddb6SLionel Sambucfloat tanf(float x); 1324684ddb6SLionel Sambuclong double tanl(long double x); 1334684ddb6SLionel Sambuc 1344684ddb6SLionel Sambucfloating_point tanh (arithmetic x); 1354684ddb6SLionel Sambucfloat tanhf(float x); 1364684ddb6SLionel Sambuclong double tanhl(long double x); 1374684ddb6SLionel Sambuc 1384684ddb6SLionel Sambuc// C99 1394684ddb6SLionel Sambuc 1404684ddb6SLionel Sambucbool signbit(arithmetic x); 1414684ddb6SLionel Sambuc 1424684ddb6SLionel Sambucint fpclassify(arithmetic x); 1434684ddb6SLionel Sambuc 1444684ddb6SLionel Sambucbool isfinite(arithmetic x); 1454684ddb6SLionel Sambucbool isinf(arithmetic x); 1464684ddb6SLionel Sambucbool isnan(arithmetic x); 1474684ddb6SLionel Sambucbool isnormal(arithmetic x); 1484684ddb6SLionel Sambuc 1494684ddb6SLionel Sambucbool isgreater(arithmetic x, arithmetic y); 1504684ddb6SLionel Sambucbool isgreaterequal(arithmetic x, arithmetic y); 1514684ddb6SLionel Sambucbool isless(arithmetic x, arithmetic y); 1524684ddb6SLionel Sambucbool islessequal(arithmetic x, arithmetic y); 1534684ddb6SLionel Sambucbool islessgreater(arithmetic x, arithmetic y); 1544684ddb6SLionel Sambucbool isunordered(arithmetic x, arithmetic y); 1554684ddb6SLionel Sambuc 1564684ddb6SLionel Sambucfloating_point acosh (arithmetic x); 1574684ddb6SLionel Sambucfloat acoshf(float x); 1584684ddb6SLionel Sambuclong double acoshl(long double x); 1594684ddb6SLionel Sambuc 1604684ddb6SLionel Sambucfloating_point asinh (arithmetic x); 1614684ddb6SLionel Sambucfloat asinhf(float x); 1624684ddb6SLionel Sambuclong double asinhl(long double x); 1634684ddb6SLionel Sambuc 1644684ddb6SLionel Sambucfloating_point atanh (arithmetic x); 1654684ddb6SLionel Sambucfloat atanhf(float x); 1664684ddb6SLionel Sambuclong double atanhl(long double x); 1674684ddb6SLionel Sambuc 1684684ddb6SLionel Sambucfloating_point cbrt (arithmetic x); 1694684ddb6SLionel Sambucfloat cbrtf(float x); 1704684ddb6SLionel Sambuclong double cbrtl(long double x); 1714684ddb6SLionel Sambuc 1724684ddb6SLionel Sambucfloating_point copysign (arithmetic x, arithmetic y); 1734684ddb6SLionel Sambucfloat copysignf(float x, float y); 1744684ddb6SLionel Sambuclong double copysignl(long double x, long double y); 1754684ddb6SLionel Sambuc 1764684ddb6SLionel Sambucfloating_point erf (arithmetic x); 1774684ddb6SLionel Sambucfloat erff(float x); 1784684ddb6SLionel Sambuclong double erfl(long double x); 1794684ddb6SLionel Sambuc 1804684ddb6SLionel Sambucfloating_point erfc (arithmetic x); 1814684ddb6SLionel Sambucfloat erfcf(float x); 1824684ddb6SLionel Sambuclong double erfcl(long double x); 1834684ddb6SLionel Sambuc 1844684ddb6SLionel Sambucfloating_point exp2 (arithmetic x); 1854684ddb6SLionel Sambucfloat exp2f(float x); 1864684ddb6SLionel Sambuclong double exp2l(long double x); 1874684ddb6SLionel Sambuc 1884684ddb6SLionel Sambucfloating_point expm1 (arithmetic x); 1894684ddb6SLionel Sambucfloat expm1f(float x); 1904684ddb6SLionel Sambuclong double expm1l(long double x); 1914684ddb6SLionel Sambuc 1924684ddb6SLionel Sambucfloating_point fdim (arithmetic x, arithmetic y); 1934684ddb6SLionel Sambucfloat fdimf(float x, float y); 1944684ddb6SLionel Sambuclong double fdiml(long double x, long double y); 1954684ddb6SLionel Sambuc 1964684ddb6SLionel Sambucfloating_point fma (arithmetic x, arithmetic y, arithmetic z); 1974684ddb6SLionel Sambucfloat fmaf(float x, float y, float z); 1984684ddb6SLionel Sambuclong double fmal(long double x, long double y, long double z); 1994684ddb6SLionel Sambuc 2004684ddb6SLionel Sambucfloating_point fmax (arithmetic x, arithmetic y); 2014684ddb6SLionel Sambucfloat fmaxf(float x, float y); 2024684ddb6SLionel Sambuclong double fmaxl(long double x, long double y); 2034684ddb6SLionel Sambuc 2044684ddb6SLionel Sambucfloating_point fmin (arithmetic x, arithmetic y); 2054684ddb6SLionel Sambucfloat fminf(float x, float y); 2064684ddb6SLionel Sambuclong double fminl(long double x, long double y); 2074684ddb6SLionel Sambuc 2084684ddb6SLionel Sambucfloating_point hypot (arithmetic x, arithmetic y); 2094684ddb6SLionel Sambucfloat hypotf(float x, float y); 2104684ddb6SLionel Sambuclong double hypotl(long double x, long double y); 2114684ddb6SLionel Sambuc 2124684ddb6SLionel Sambucint ilogb (arithmetic x); 2134684ddb6SLionel Sambucint ilogbf(float x); 2144684ddb6SLionel Sambucint ilogbl(long double x); 2154684ddb6SLionel Sambuc 2164684ddb6SLionel Sambucfloating_point lgamma (arithmetic x); 2174684ddb6SLionel Sambucfloat lgammaf(float x); 2184684ddb6SLionel Sambuclong double lgammal(long double x); 2194684ddb6SLionel Sambuc 2204684ddb6SLionel Sambuclong long llrint (arithmetic x); 2214684ddb6SLionel Sambuclong long llrintf(float x); 2224684ddb6SLionel Sambuclong long llrintl(long double x); 2234684ddb6SLionel Sambuc 2244684ddb6SLionel Sambuclong long llround (arithmetic x); 2254684ddb6SLionel Sambuclong long llroundf(float x); 2264684ddb6SLionel Sambuclong long llroundl(long double x); 2274684ddb6SLionel Sambuc 2284684ddb6SLionel Sambucfloating_point log1p (arithmetic x); 2294684ddb6SLionel Sambucfloat log1pf(float x); 2304684ddb6SLionel Sambuclong double log1pl(long double x); 2314684ddb6SLionel Sambuc 2324684ddb6SLionel Sambucfloating_point log2 (arithmetic x); 2334684ddb6SLionel Sambucfloat log2f(float x); 2344684ddb6SLionel Sambuclong double log2l(long double x); 2354684ddb6SLionel Sambuc 2364684ddb6SLionel Sambucfloating_point logb (arithmetic x); 2374684ddb6SLionel Sambucfloat logbf(float x); 2384684ddb6SLionel Sambuclong double logbl(long double x); 2394684ddb6SLionel Sambuc 2404684ddb6SLionel Sambuclong lrint (arithmetic x); 2414684ddb6SLionel Sambuclong lrintf(float x); 2424684ddb6SLionel Sambuclong lrintl(long double x); 2434684ddb6SLionel Sambuc 2444684ddb6SLionel Sambuclong lround (arithmetic x); 2454684ddb6SLionel Sambuclong lroundf(float x); 2464684ddb6SLionel Sambuclong lroundl(long double x); 2474684ddb6SLionel Sambuc 2484684ddb6SLionel Sambucdouble nan (const char* str); 2494684ddb6SLionel Sambucfloat nanf(const char* str); 2504684ddb6SLionel Sambuclong double nanl(const char* str); 2514684ddb6SLionel Sambuc 2524684ddb6SLionel Sambucfloating_point nearbyint (arithmetic x); 2534684ddb6SLionel Sambucfloat nearbyintf(float x); 2544684ddb6SLionel Sambuclong double nearbyintl(long double x); 2554684ddb6SLionel Sambuc 2564684ddb6SLionel Sambucfloating_point nextafter (arithmetic x, arithmetic y); 2574684ddb6SLionel Sambucfloat nextafterf(float x, float y); 2584684ddb6SLionel Sambuclong double nextafterl(long double x, long double y); 2594684ddb6SLionel Sambuc 2604684ddb6SLionel Sambucfloating_point nexttoward (arithmetic x, long double y); 2614684ddb6SLionel Sambucfloat nexttowardf(float x, long double y); 2624684ddb6SLionel Sambuclong double nexttowardl(long double x, long double y); 2634684ddb6SLionel Sambuc 2644684ddb6SLionel Sambucfloating_point remainder (arithmetic x, arithmetic y); 2654684ddb6SLionel Sambucfloat remainderf(float x, float y); 2664684ddb6SLionel Sambuclong double remainderl(long double x, long double y); 2674684ddb6SLionel Sambuc 2684684ddb6SLionel Sambucfloating_point remquo (arithmetic x, arithmetic y, int* pquo); 2694684ddb6SLionel Sambucfloat remquof(float x, float y, int* pquo); 2704684ddb6SLionel Sambuclong double remquol(long double x, long double y, int* pquo); 2714684ddb6SLionel Sambuc 2724684ddb6SLionel Sambucfloating_point rint (arithmetic x); 2734684ddb6SLionel Sambucfloat rintf(float x); 2744684ddb6SLionel Sambuclong double rintl(long double x); 2754684ddb6SLionel Sambuc 2764684ddb6SLionel Sambucfloating_point round (arithmetic x); 2774684ddb6SLionel Sambucfloat roundf(float x); 2784684ddb6SLionel Sambuclong double roundl(long double x); 2794684ddb6SLionel Sambuc 2804684ddb6SLionel Sambucfloating_point scalbln (arithmetic x, long ex); 2814684ddb6SLionel Sambucfloat scalblnf(float x, long ex); 2824684ddb6SLionel Sambuclong double scalblnl(long double x, long ex); 2834684ddb6SLionel Sambuc 2844684ddb6SLionel Sambucfloating_point scalbn (arithmetic x, int ex); 2854684ddb6SLionel Sambucfloat scalbnf(float x, int ex); 2864684ddb6SLionel Sambuclong double scalbnl(long double x, int ex); 2874684ddb6SLionel Sambuc 2884684ddb6SLionel Sambucfloating_point tgamma (arithmetic x); 2894684ddb6SLionel Sambucfloat tgammaf(float x); 2904684ddb6SLionel Sambuclong double tgammal(long double x); 2914684ddb6SLionel Sambuc 2924684ddb6SLionel Sambucfloating_point trunc (arithmetic x); 2934684ddb6SLionel Sambucfloat truncf(float x); 2944684ddb6SLionel Sambuclong double truncl(long double x); 2954684ddb6SLionel Sambuc 2964684ddb6SLionel Sambuc} // std 2974684ddb6SLionel Sambuc 2984684ddb6SLionel Sambuc*/ 2994684ddb6SLionel Sambuc 3004684ddb6SLionel Sambuc#include <__config> 3014684ddb6SLionel Sambuc#include <math.h> 3024684ddb6SLionel Sambuc#include <type_traits> 3034684ddb6SLionel Sambuc 3044684ddb6SLionel Sambuc#ifdef _LIBCPP_MSVCRT 3054684ddb6SLionel Sambuc#include "support/win32/math_win32.h" 3064684ddb6SLionel Sambuc#endif 3074684ddb6SLionel Sambuc 3084684ddb6SLionel Sambuc#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 3094684ddb6SLionel Sambuc#pragma GCC system_header 3104684ddb6SLionel Sambuc#endif 3114684ddb6SLionel Sambuc 3124684ddb6SLionel Sambuc// signbit 3134684ddb6SLionel Sambuc 3144684ddb6SLionel Sambuc#ifdef signbit 3154684ddb6SLionel Sambuc 3164684ddb6SLionel Sambuctemplate <class _A1> 3174684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 3184684ddb6SLionel Sambucbool 319*0a6a1f1dSLionel Sambuc__libcpp_signbit(_A1 __lcpp_x) _NOEXCEPT 3204684ddb6SLionel Sambuc{ 321*0a6a1f1dSLionel Sambuc return signbit(__lcpp_x); 3224684ddb6SLionel Sambuc} 3234684ddb6SLionel Sambuc 3244684ddb6SLionel Sambuc#undef signbit 3254684ddb6SLionel Sambuc 3264684ddb6SLionel Sambuctemplate <class _A1> 3274684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 3284684ddb6SLionel Sambuctypename std::enable_if<std::is_arithmetic<_A1>::value, bool>::type 329*0a6a1f1dSLionel Sambucsignbit(_A1 __lcpp_x) _NOEXCEPT 3304684ddb6SLionel Sambuc{ 331*0a6a1f1dSLionel Sambuc return __libcpp_signbit((typename std::__promote<_A1>::type)__lcpp_x); 3324684ddb6SLionel Sambuc} 3334684ddb6SLionel Sambuc 3344684ddb6SLionel Sambuc#endif // signbit 3354684ddb6SLionel Sambuc 3364684ddb6SLionel Sambuc// fpclassify 3374684ddb6SLionel Sambuc 3384684ddb6SLionel Sambuc#ifdef fpclassify 3394684ddb6SLionel Sambuc 3404684ddb6SLionel Sambuctemplate <class _A1> 3414684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 3424684ddb6SLionel Sambucint 343*0a6a1f1dSLionel Sambuc__libcpp_fpclassify(_A1 __lcpp_x) _NOEXCEPT 3444684ddb6SLionel Sambuc{ 345*0a6a1f1dSLionel Sambuc return fpclassify(__lcpp_x); 3464684ddb6SLionel Sambuc} 3474684ddb6SLionel Sambuc 3484684ddb6SLionel Sambuc#undef fpclassify 3494684ddb6SLionel Sambuc 3504684ddb6SLionel Sambuctemplate <class _A1> 3514684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 3524684ddb6SLionel Sambuctypename std::enable_if<std::is_arithmetic<_A1>::value, int>::type 353*0a6a1f1dSLionel Sambucfpclassify(_A1 __lcpp_x) _NOEXCEPT 3544684ddb6SLionel Sambuc{ 355*0a6a1f1dSLionel Sambuc return __libcpp_fpclassify((typename std::__promote<_A1>::type)__lcpp_x); 3564684ddb6SLionel Sambuc} 3574684ddb6SLionel Sambuc 3584684ddb6SLionel Sambuc#endif // fpclassify 3594684ddb6SLionel Sambuc 3604684ddb6SLionel Sambuc// isfinite 3614684ddb6SLionel Sambuc 3624684ddb6SLionel Sambuc#ifdef isfinite 3634684ddb6SLionel Sambuc 3644684ddb6SLionel Sambuctemplate <class _A1> 3654684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 3664684ddb6SLionel Sambucbool 367*0a6a1f1dSLionel Sambuc__libcpp_isfinite(_A1 __lcpp_x) _NOEXCEPT 3684684ddb6SLionel Sambuc{ 369*0a6a1f1dSLionel Sambuc return isfinite(__lcpp_x); 3704684ddb6SLionel Sambuc} 3714684ddb6SLionel Sambuc 3724684ddb6SLionel Sambuc#undef isfinite 3734684ddb6SLionel Sambuc 3744684ddb6SLionel Sambuctemplate <class _A1> 3754684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 3764684ddb6SLionel Sambuctypename std::enable_if<std::is_arithmetic<_A1>::value, bool>::type 377*0a6a1f1dSLionel Sambucisfinite(_A1 __lcpp_x) _NOEXCEPT 3784684ddb6SLionel Sambuc{ 379*0a6a1f1dSLionel Sambuc return __libcpp_isfinite((typename std::__promote<_A1>::type)__lcpp_x); 3804684ddb6SLionel Sambuc} 3814684ddb6SLionel Sambuc 3824684ddb6SLionel Sambuc#endif // isfinite 3834684ddb6SLionel Sambuc 3844684ddb6SLionel Sambuc// isinf 3854684ddb6SLionel Sambuc 3864684ddb6SLionel Sambuc#ifdef isinf 3874684ddb6SLionel Sambuc 3884684ddb6SLionel Sambuctemplate <class _A1> 3894684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 3904684ddb6SLionel Sambucbool 391*0a6a1f1dSLionel Sambuc__libcpp_isinf(_A1 __lcpp_x) _NOEXCEPT 3924684ddb6SLionel Sambuc{ 393*0a6a1f1dSLionel Sambuc return isinf(__lcpp_x); 3944684ddb6SLionel Sambuc} 3954684ddb6SLionel Sambuc 3964684ddb6SLionel Sambuc#undef isinf 3974684ddb6SLionel Sambuc 3984684ddb6SLionel Sambuctemplate <class _A1> 3994684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 4004684ddb6SLionel Sambuctypename std::enable_if<std::is_arithmetic<_A1>::value, bool>::type 401*0a6a1f1dSLionel Sambucisinf(_A1 __lcpp_x) _NOEXCEPT 4024684ddb6SLionel Sambuc{ 403*0a6a1f1dSLionel Sambuc return __libcpp_isinf((typename std::__promote<_A1>::type)__lcpp_x); 4044684ddb6SLionel Sambuc} 4054684ddb6SLionel Sambuc 4064684ddb6SLionel Sambuc#endif // isinf 4074684ddb6SLionel Sambuc 4084684ddb6SLionel Sambuc// isnan 4094684ddb6SLionel Sambuc 4104684ddb6SLionel Sambuc#ifdef isnan 4114684ddb6SLionel Sambuc 4124684ddb6SLionel Sambuctemplate <class _A1> 4134684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 4144684ddb6SLionel Sambucbool 415*0a6a1f1dSLionel Sambuc__libcpp_isnan(_A1 __lcpp_x) _NOEXCEPT 4164684ddb6SLionel Sambuc{ 417*0a6a1f1dSLionel Sambuc return isnan(__lcpp_x); 4184684ddb6SLionel Sambuc} 4194684ddb6SLionel Sambuc 4204684ddb6SLionel Sambuc#undef isnan 4214684ddb6SLionel Sambuc 4224684ddb6SLionel Sambuctemplate <class _A1> 4234684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 4244684ddb6SLionel Sambuctypename std::enable_if<std::is_arithmetic<_A1>::value, bool>::type 425*0a6a1f1dSLionel Sambucisnan(_A1 __lcpp_x) _NOEXCEPT 4264684ddb6SLionel Sambuc{ 427*0a6a1f1dSLionel Sambuc return __libcpp_isnan((typename std::__promote<_A1>::type)__lcpp_x); 4284684ddb6SLionel Sambuc} 4294684ddb6SLionel Sambuc 4304684ddb6SLionel Sambuc#endif // isnan 4314684ddb6SLionel Sambuc 4324684ddb6SLionel Sambuc// isnormal 4334684ddb6SLionel Sambuc 4344684ddb6SLionel Sambuc#ifdef isnormal 4354684ddb6SLionel Sambuc 4364684ddb6SLionel Sambuctemplate <class _A1> 4374684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 4384684ddb6SLionel Sambucbool 439*0a6a1f1dSLionel Sambuc__libcpp_isnormal(_A1 __lcpp_x) _NOEXCEPT 4404684ddb6SLionel Sambuc{ 441*0a6a1f1dSLionel Sambuc return isnormal(__lcpp_x); 4424684ddb6SLionel Sambuc} 4434684ddb6SLionel Sambuc 4444684ddb6SLionel Sambuc#undef isnormal 4454684ddb6SLionel Sambuc 4464684ddb6SLionel Sambuctemplate <class _A1> 4474684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 4484684ddb6SLionel Sambuctypename std::enable_if<std::is_arithmetic<_A1>::value, bool>::type 449*0a6a1f1dSLionel Sambucisnormal(_A1 __lcpp_x) _NOEXCEPT 4504684ddb6SLionel Sambuc{ 451*0a6a1f1dSLionel Sambuc return __libcpp_isnormal((typename std::__promote<_A1>::type)__lcpp_x); 4524684ddb6SLionel Sambuc} 4534684ddb6SLionel Sambuc 4544684ddb6SLionel Sambuc#endif // isnormal 4554684ddb6SLionel Sambuc 4564684ddb6SLionel Sambuc// isgreater 4574684ddb6SLionel Sambuc 4584684ddb6SLionel Sambuc#ifdef isgreater 4594684ddb6SLionel Sambuc 4604684ddb6SLionel Sambuctemplate <class _A1, class _A2> 4614684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 4624684ddb6SLionel Sambucbool 463*0a6a1f1dSLionel Sambuc__libcpp_isgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 4644684ddb6SLionel Sambuc{ 465*0a6a1f1dSLionel Sambuc return isgreater(__lcpp_x, __lcpp_y); 4664684ddb6SLionel Sambuc} 4674684ddb6SLionel Sambuc 4684684ddb6SLionel Sambuc#undef isgreater 4694684ddb6SLionel Sambuc 4704684ddb6SLionel Sambuctemplate <class _A1, class _A2> 4714684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 4724684ddb6SLionel Sambuctypename std::enable_if 4734684ddb6SLionel Sambuc< 4744684ddb6SLionel Sambuc std::is_arithmetic<_A1>::value && 4754684ddb6SLionel Sambuc std::is_arithmetic<_A2>::value, 4764684ddb6SLionel Sambuc bool 4774684ddb6SLionel Sambuc>::type 478*0a6a1f1dSLionel Sambucisgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 4794684ddb6SLionel Sambuc{ 4804684ddb6SLionel Sambuc typedef typename std::__promote<_A1, _A2>::type type; 481*0a6a1f1dSLionel Sambuc return __libcpp_isgreater((type)__lcpp_x, (type)__lcpp_y); 4824684ddb6SLionel Sambuc} 4834684ddb6SLionel Sambuc 4844684ddb6SLionel Sambuc#endif // isgreater 4854684ddb6SLionel Sambuc 4864684ddb6SLionel Sambuc// isgreaterequal 4874684ddb6SLionel Sambuc 4884684ddb6SLionel Sambuc#ifdef isgreaterequal 4894684ddb6SLionel Sambuc 4904684ddb6SLionel Sambuctemplate <class _A1, class _A2> 4914684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 4924684ddb6SLionel Sambucbool 493*0a6a1f1dSLionel Sambuc__libcpp_isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 4944684ddb6SLionel Sambuc{ 495*0a6a1f1dSLionel Sambuc return isgreaterequal(__lcpp_x, __lcpp_y); 4964684ddb6SLionel Sambuc} 4974684ddb6SLionel Sambuc 4984684ddb6SLionel Sambuc#undef isgreaterequal 4994684ddb6SLionel Sambuc 5004684ddb6SLionel Sambuctemplate <class _A1, class _A2> 5014684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 5024684ddb6SLionel Sambuctypename std::enable_if 5034684ddb6SLionel Sambuc< 5044684ddb6SLionel Sambuc std::is_arithmetic<_A1>::value && 5054684ddb6SLionel Sambuc std::is_arithmetic<_A2>::value, 5064684ddb6SLionel Sambuc bool 5074684ddb6SLionel Sambuc>::type 508*0a6a1f1dSLionel Sambucisgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 5094684ddb6SLionel Sambuc{ 5104684ddb6SLionel Sambuc typedef typename std::__promote<_A1, _A2>::type type; 511*0a6a1f1dSLionel Sambuc return __libcpp_isgreaterequal((type)__lcpp_x, (type)__lcpp_y); 5124684ddb6SLionel Sambuc} 5134684ddb6SLionel Sambuc 5144684ddb6SLionel Sambuc#endif // isgreaterequal 5154684ddb6SLionel Sambuc 5164684ddb6SLionel Sambuc// isless 5174684ddb6SLionel Sambuc 5184684ddb6SLionel Sambuc#ifdef isless 5194684ddb6SLionel Sambuc 5204684ddb6SLionel Sambuctemplate <class _A1, class _A2> 5214684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 5224684ddb6SLionel Sambucbool 523*0a6a1f1dSLionel Sambuc__libcpp_isless(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 5244684ddb6SLionel Sambuc{ 525*0a6a1f1dSLionel Sambuc return isless(__lcpp_x, __lcpp_y); 5264684ddb6SLionel Sambuc} 5274684ddb6SLionel Sambuc 5284684ddb6SLionel Sambuc#undef isless 5294684ddb6SLionel Sambuc 5304684ddb6SLionel Sambuctemplate <class _A1, class _A2> 5314684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 5324684ddb6SLionel Sambuctypename std::enable_if 5334684ddb6SLionel Sambuc< 5344684ddb6SLionel Sambuc std::is_arithmetic<_A1>::value && 5354684ddb6SLionel Sambuc std::is_arithmetic<_A2>::value, 5364684ddb6SLionel Sambuc bool 5374684ddb6SLionel Sambuc>::type 538*0a6a1f1dSLionel Sambucisless(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 5394684ddb6SLionel Sambuc{ 5404684ddb6SLionel Sambuc typedef typename std::__promote<_A1, _A2>::type type; 541*0a6a1f1dSLionel Sambuc return __libcpp_isless((type)__lcpp_x, (type)__lcpp_y); 5424684ddb6SLionel Sambuc} 5434684ddb6SLionel Sambuc 5444684ddb6SLionel Sambuc#endif // isless 5454684ddb6SLionel Sambuc 5464684ddb6SLionel Sambuc// islessequal 5474684ddb6SLionel Sambuc 5484684ddb6SLionel Sambuc#ifdef islessequal 5494684ddb6SLionel Sambuc 5504684ddb6SLionel Sambuctemplate <class _A1, class _A2> 5514684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 5524684ddb6SLionel Sambucbool 553*0a6a1f1dSLionel Sambuc__libcpp_islessequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 5544684ddb6SLionel Sambuc{ 555*0a6a1f1dSLionel Sambuc return islessequal(__lcpp_x, __lcpp_y); 5564684ddb6SLionel Sambuc} 5574684ddb6SLionel Sambuc 5584684ddb6SLionel Sambuc#undef islessequal 5594684ddb6SLionel Sambuc 5604684ddb6SLionel Sambuctemplate <class _A1, class _A2> 5614684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 5624684ddb6SLionel Sambuctypename std::enable_if 5634684ddb6SLionel Sambuc< 5644684ddb6SLionel Sambuc std::is_arithmetic<_A1>::value && 5654684ddb6SLionel Sambuc std::is_arithmetic<_A2>::value, 5664684ddb6SLionel Sambuc bool 5674684ddb6SLionel Sambuc>::type 568*0a6a1f1dSLionel Sambucislessequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 5694684ddb6SLionel Sambuc{ 5704684ddb6SLionel Sambuc typedef typename std::__promote<_A1, _A2>::type type; 571*0a6a1f1dSLionel Sambuc return __libcpp_islessequal((type)__lcpp_x, (type)__lcpp_y); 5724684ddb6SLionel Sambuc} 5734684ddb6SLionel Sambuc 5744684ddb6SLionel Sambuc#endif // islessequal 5754684ddb6SLionel Sambuc 5764684ddb6SLionel Sambuc// islessgreater 5774684ddb6SLionel Sambuc 5784684ddb6SLionel Sambuc#ifdef islessgreater 5794684ddb6SLionel Sambuc 5804684ddb6SLionel Sambuctemplate <class _A1, class _A2> 5814684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 5824684ddb6SLionel Sambucbool 583*0a6a1f1dSLionel Sambuc__libcpp_islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 5844684ddb6SLionel Sambuc{ 585*0a6a1f1dSLionel Sambuc return islessgreater(__lcpp_x, __lcpp_y); 5864684ddb6SLionel Sambuc} 5874684ddb6SLionel Sambuc 5884684ddb6SLionel Sambuc#undef islessgreater 5894684ddb6SLionel Sambuc 5904684ddb6SLionel Sambuctemplate <class _A1, class _A2> 5914684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 5924684ddb6SLionel Sambuctypename std::enable_if 5934684ddb6SLionel Sambuc< 5944684ddb6SLionel Sambuc std::is_arithmetic<_A1>::value && 5954684ddb6SLionel Sambuc std::is_arithmetic<_A2>::value, 5964684ddb6SLionel Sambuc bool 5974684ddb6SLionel Sambuc>::type 598*0a6a1f1dSLionel Sambucislessgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 5994684ddb6SLionel Sambuc{ 6004684ddb6SLionel Sambuc typedef typename std::__promote<_A1, _A2>::type type; 601*0a6a1f1dSLionel Sambuc return __libcpp_islessgreater((type)__lcpp_x, (type)__lcpp_y); 6024684ddb6SLionel Sambuc} 6034684ddb6SLionel Sambuc 6044684ddb6SLionel Sambuc#endif // islessgreater 6054684ddb6SLionel Sambuc 6064684ddb6SLionel Sambuc// isunordered 6074684ddb6SLionel Sambuc 6084684ddb6SLionel Sambuc#ifdef isunordered 6094684ddb6SLionel Sambuc 6104684ddb6SLionel Sambuctemplate <class _A1, class _A2> 6114684ddb6SLionel Sambuc_LIBCPP_ALWAYS_INLINE 6124684ddb6SLionel Sambucbool 613*0a6a1f1dSLionel Sambuc__libcpp_isunordered(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 6144684ddb6SLionel Sambuc{ 615*0a6a1f1dSLionel Sambuc return isunordered(__lcpp_x, __lcpp_y); 6164684ddb6SLionel Sambuc} 6174684ddb6SLionel Sambuc 6184684ddb6SLionel Sambuc#undef isunordered 6194684ddb6SLionel Sambuc 6204684ddb6SLionel Sambuctemplate <class _A1, class _A2> 6214684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 6224684ddb6SLionel Sambuctypename std::enable_if 6234684ddb6SLionel Sambuc< 6244684ddb6SLionel Sambuc std::is_arithmetic<_A1>::value && 6254684ddb6SLionel Sambuc std::is_arithmetic<_A2>::value, 6264684ddb6SLionel Sambuc bool 6274684ddb6SLionel Sambuc>::type 628*0a6a1f1dSLionel Sambucisunordered(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 6294684ddb6SLionel Sambuc{ 6304684ddb6SLionel Sambuc typedef typename std::__promote<_A1, _A2>::type type; 631*0a6a1f1dSLionel Sambuc return __libcpp_isunordered((type)__lcpp_x, (type)__lcpp_y); 6324684ddb6SLionel Sambuc} 6334684ddb6SLionel Sambuc 6344684ddb6SLionel Sambuc#endif // isunordered 6354684ddb6SLionel Sambuc 6364684ddb6SLionel Sambuc_LIBCPP_BEGIN_NAMESPACE_STD 6374684ddb6SLionel Sambuc 6384684ddb6SLionel Sambucusing ::signbit; 6394684ddb6SLionel Sambucusing ::fpclassify; 6404684ddb6SLionel Sambucusing ::isfinite; 6414684ddb6SLionel Sambucusing ::isinf; 6424684ddb6SLionel Sambucusing ::isnan; 6434684ddb6SLionel Sambucusing ::isnormal; 6444684ddb6SLionel Sambucusing ::isgreater; 6454684ddb6SLionel Sambucusing ::isgreaterequal; 6464684ddb6SLionel Sambucusing ::isless; 6474684ddb6SLionel Sambucusing ::islessequal; 6484684ddb6SLionel Sambucusing ::islessgreater; 6494684ddb6SLionel Sambucusing ::isunordered; 6504684ddb6SLionel Sambucusing ::isunordered; 6514684ddb6SLionel Sambuc 6524684ddb6SLionel Sambucusing ::float_t; 6534684ddb6SLionel Sambucusing ::double_t; 6544684ddb6SLionel Sambuc 6554684ddb6SLionel Sambuc// abs 6564684ddb6SLionel Sambuc 657*0a6a1f1dSLionel Sambuc#if defined(__sun__) 658*0a6a1f1dSLionel Sambucusing ::abs; 659*0a6a1f1dSLionel Sambuc#endif 660*0a6a1f1dSLionel Sambuc 661*0a6a1f1dSLionel Sambuc#if !defined(_AIX) && !defined(__sun__) 6624684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 6634684ddb6SLionel Sambucfloat 664*0a6a1f1dSLionel Sambucabs(float __lcpp_x) _NOEXCEPT {return fabsf(__lcpp_x);} 6654684ddb6SLionel Sambuc 6664684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 6674684ddb6SLionel Sambucdouble 668*0a6a1f1dSLionel Sambucabs(double __lcpp_x) _NOEXCEPT {return fabs(__lcpp_x);} 6694684ddb6SLionel Sambuc 6704684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 6714684ddb6SLionel Sambuclong double 672*0a6a1f1dSLionel Sambucabs(long double __lcpp_x) _NOEXCEPT {return fabsl(__lcpp_x);} 6734684ddb6SLionel Sambuc#endif // !defined(_AIX) 6744684ddb6SLionel Sambuc 6754684ddb6SLionel Sambuc#ifndef __sun__ 6764684ddb6SLionel Sambuc 6774684ddb6SLionel Sambuc// acos 6784684ddb6SLionel Sambuc 6794684ddb6SLionel Sambucusing ::acos; 6804684ddb6SLionel Sambucusing ::acosf; 6814684ddb6SLionel Sambuc 6824684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 683*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float acos(float __lcpp_x) _NOEXCEPT {return acosf(__lcpp_x);} 684*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return acosl(__lcpp_x);} 6854684ddb6SLionel Sambuc#endif 6864684ddb6SLionel Sambuc 6874684ddb6SLionel Sambuctemplate <class _A1> 6884684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 6894684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 690*0a6a1f1dSLionel Sambucacos(_A1 __lcpp_x) _NOEXCEPT {return acos((double)__lcpp_x);} 6914684ddb6SLionel Sambuc 6924684ddb6SLionel Sambuc// asin 6934684ddb6SLionel Sambuc 6944684ddb6SLionel Sambucusing ::asin; 6954684ddb6SLionel Sambucusing ::asinf; 6964684ddb6SLionel Sambuc 6974684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 698*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float asin(float __lcpp_x) _NOEXCEPT {return asinf(__lcpp_x);} 699*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) _NOEXCEPT {return asinl(__lcpp_x);} 7004684ddb6SLionel Sambuc#endif 7014684ddb6SLionel Sambuc 7024684ddb6SLionel Sambuctemplate <class _A1> 7034684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 7044684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 705*0a6a1f1dSLionel Sambucasin(_A1 __lcpp_x) _NOEXCEPT {return asin((double)__lcpp_x);} 7064684ddb6SLionel Sambuc 7074684ddb6SLionel Sambuc// atan 7084684ddb6SLionel Sambuc 7094684ddb6SLionel Sambucusing ::atan; 7104684ddb6SLionel Sambucusing ::atanf; 7114684ddb6SLionel Sambuc 7124684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 713*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float atan(float __lcpp_x) _NOEXCEPT {return atanf(__lcpp_x);} 714*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) _NOEXCEPT {return atanl(__lcpp_x);} 7154684ddb6SLionel Sambuc#endif 7164684ddb6SLionel Sambuc 7174684ddb6SLionel Sambuctemplate <class _A1> 7184684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 7194684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 720*0a6a1f1dSLionel Sambucatan(_A1 __lcpp_x) _NOEXCEPT {return atan((double)__lcpp_x);} 7214684ddb6SLionel Sambuc 7224684ddb6SLionel Sambuc// atan2 7234684ddb6SLionel Sambuc 7244684ddb6SLionel Sambucusing ::atan2; 7254684ddb6SLionel Sambucusing ::atan2f; 7264684ddb6SLionel Sambuc 7274684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 728*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float atan2(float __lcpp_y, float __lcpp_x) _NOEXCEPT {return atan2f(__lcpp_y, __lcpp_x);} 729*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y, long double __lcpp_x) _NOEXCEPT {return atan2l(__lcpp_y, __lcpp_x);} 7304684ddb6SLionel Sambuc#endif 7314684ddb6SLionel Sambuc 7324684ddb6SLionel Sambuctemplate <class _A1, class _A2> 7334684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 734*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 7354684ddb6SLionel Sambuc< 7364684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 7374684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 738*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 7394684ddb6SLionel Sambuc>::type 740*0a6a1f1dSLionel Sambucatan2(_A1 __lcpp_y, _A2 __lcpp_x) _NOEXCEPT 7414684ddb6SLionel Sambuc{ 7424684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 7434684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 7444684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 745*0a6a1f1dSLionel Sambuc return atan2((__result_type)__lcpp_y, (__result_type)__lcpp_x); 7464684ddb6SLionel Sambuc} 7474684ddb6SLionel Sambuc 7484684ddb6SLionel Sambuc// ceil 7494684ddb6SLionel Sambuc 7504684ddb6SLionel Sambucusing ::ceil; 7514684ddb6SLionel Sambucusing ::ceilf; 7524684ddb6SLionel Sambuc 7534684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 754*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float ceil(float __lcpp_x) _NOEXCEPT {return ceilf(__lcpp_x);} 755*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double ceil(long double __lcpp_x) _NOEXCEPT {return ceill(__lcpp_x);} 7564684ddb6SLionel Sambuc#endif 7574684ddb6SLionel Sambuc 7584684ddb6SLionel Sambuctemplate <class _A1> 7594684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 7604684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 761*0a6a1f1dSLionel Sambucceil(_A1 __lcpp_x) _NOEXCEPT {return ceil((double)__lcpp_x);} 7624684ddb6SLionel Sambuc 7634684ddb6SLionel Sambuc// cos 7644684ddb6SLionel Sambuc 7654684ddb6SLionel Sambucusing ::cos; 7664684ddb6SLionel Sambucusing ::cosf; 7674684ddb6SLionel Sambuc 7684684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 769*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float cos(float __lcpp_x) _NOEXCEPT {return cosf(__lcpp_x);} 770*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x) _NOEXCEPT {return cosl(__lcpp_x);} 7714684ddb6SLionel Sambuc#endif 7724684ddb6SLionel Sambuc 7734684ddb6SLionel Sambuctemplate <class _A1> 7744684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 7754684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 776*0a6a1f1dSLionel Sambuccos(_A1 __lcpp_x) _NOEXCEPT {return cos((double)__lcpp_x);} 7774684ddb6SLionel Sambuc 7784684ddb6SLionel Sambuc// cosh 7794684ddb6SLionel Sambuc 7804684ddb6SLionel Sambucusing ::cosh; 7814684ddb6SLionel Sambucusing ::coshf; 7824684ddb6SLionel Sambuc 7834684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 784*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float cosh(float __lcpp_x) _NOEXCEPT {return coshf(__lcpp_x);} 785*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x) _NOEXCEPT {return coshl(__lcpp_x);} 7864684ddb6SLionel Sambuc#endif 7874684ddb6SLionel Sambuc 7884684ddb6SLionel Sambuctemplate <class _A1> 7894684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 7904684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 791*0a6a1f1dSLionel Sambuccosh(_A1 __lcpp_x) _NOEXCEPT {return cosh((double)__lcpp_x);} 7924684ddb6SLionel Sambuc 7934684ddb6SLionel Sambuc#endif // __sun__ 7944684ddb6SLionel Sambuc// exp 7954684ddb6SLionel Sambuc 7964684ddb6SLionel Sambucusing ::exp; 7974684ddb6SLionel Sambucusing ::expf; 7984684ddb6SLionel Sambuc 7994684ddb6SLionel Sambuc#ifndef __sun__ 8004684ddb6SLionel Sambuc 8014684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 802*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float exp(float __lcpp_x) _NOEXCEPT {return expf(__lcpp_x);} 803*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x) _NOEXCEPT {return expl(__lcpp_x);} 8044684ddb6SLionel Sambuc#endif 8054684ddb6SLionel Sambuc 8064684ddb6SLionel Sambuc 8074684ddb6SLionel Sambuctemplate <class _A1> 8084684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 8094684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 810*0a6a1f1dSLionel Sambucexp(_A1 __lcpp_x) _NOEXCEPT {return exp((double)__lcpp_x);} 8114684ddb6SLionel Sambuc 8124684ddb6SLionel Sambuc// fabs 8134684ddb6SLionel Sambuc 8144684ddb6SLionel Sambucusing ::fabs; 8154684ddb6SLionel Sambucusing ::fabsf; 8164684ddb6SLionel Sambuc 8174684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 818*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float fabs(float __lcpp_x) _NOEXCEPT {return fabsf(__lcpp_x);} 819*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double fabs(long double __lcpp_x) _NOEXCEPT {return fabsl(__lcpp_x);} 8204684ddb6SLionel Sambuc#endif 8214684ddb6SLionel Sambuc 8224684ddb6SLionel Sambuctemplate <class _A1> 8234684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 8244684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 825*0a6a1f1dSLionel Sambucfabs(_A1 __lcpp_x) _NOEXCEPT {return fabs((double)__lcpp_x);} 8264684ddb6SLionel Sambuc 8274684ddb6SLionel Sambuc// floor 8284684ddb6SLionel Sambuc 8294684ddb6SLionel Sambucusing ::floor; 8304684ddb6SLionel Sambucusing ::floorf; 8314684ddb6SLionel Sambuc 8324684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 833*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float floor(float __lcpp_x) _NOEXCEPT {return floorf(__lcpp_x);} 834*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double floor(long double __lcpp_x) _NOEXCEPT {return floorl(__lcpp_x);} 8354684ddb6SLionel Sambuc#endif 8364684ddb6SLionel Sambuc 8374684ddb6SLionel Sambuctemplate <class _A1> 8384684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 8394684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 840*0a6a1f1dSLionel Sambucfloor(_A1 __lcpp_x) _NOEXCEPT {return floor((double)__lcpp_x);} 8414684ddb6SLionel Sambuc 8424684ddb6SLionel Sambuc// fmod 8434684ddb6SLionel Sambuc 8444684ddb6SLionel Sambuc#endif //__sun__ 8454684ddb6SLionel Sambucusing ::fmod; 8464684ddb6SLionel Sambucusing ::fmodf; 8474684ddb6SLionel Sambuc#ifndef __sun__ 8484684ddb6SLionel Sambuc 8494684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 850*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float fmod(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return fmodf(__lcpp_x, __lcpp_y);} 851*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return fmodl(__lcpp_x, __lcpp_y);} 8524684ddb6SLionel Sambuc#endif 8534684ddb6SLionel Sambuc 8544684ddb6SLionel Sambuctemplate <class _A1, class _A2> 8554684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 856*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 8574684ddb6SLionel Sambuc< 8584684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 8594684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 860*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 8614684ddb6SLionel Sambuc>::type 862*0a6a1f1dSLionel Sambucfmod(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 8634684ddb6SLionel Sambuc{ 8644684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 8654684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 8664684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 867*0a6a1f1dSLionel Sambuc return fmod((__result_type)__lcpp_x, (__result_type)__lcpp_y); 8684684ddb6SLionel Sambuc} 8694684ddb6SLionel Sambuc 8704684ddb6SLionel Sambuc 8714684ddb6SLionel Sambuc// frexp 8724684ddb6SLionel Sambuc 8734684ddb6SLionel Sambucusing ::frexp; 8744684ddb6SLionel Sambucusing ::frexpf; 8754684ddb6SLionel Sambuc 8764684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 877*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float frexp(float __lcpp_x, int* __lcpp_e) _NOEXCEPT {return frexpf(__lcpp_x, __lcpp_e);} 878*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double frexp(long double __lcpp_x, int* __lcpp_e) _NOEXCEPT {return frexpl(__lcpp_x, __lcpp_e);} 8794684ddb6SLionel Sambuc#endif 8804684ddb6SLionel Sambuc 8814684ddb6SLionel Sambuctemplate <class _A1> 8824684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 8834684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 884*0a6a1f1dSLionel Sambucfrexp(_A1 __lcpp_x, int* __lcpp_e) _NOEXCEPT {return frexp((double)__lcpp_x, __lcpp_e);} 8854684ddb6SLionel Sambuc 8864684ddb6SLionel Sambuc// ldexp 8874684ddb6SLionel Sambuc 8884684ddb6SLionel Sambucusing ::ldexp; 8894684ddb6SLionel Sambucusing ::ldexpf; 8904684ddb6SLionel Sambuc 8914684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 892*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float ldexp(float __lcpp_x, int __lcpp_e) _NOEXCEPT {return ldexpf(__lcpp_x, __lcpp_e);} 893*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double ldexp(long double __lcpp_x, int __lcpp_e) _NOEXCEPT {return ldexpl(__lcpp_x, __lcpp_e);} 8944684ddb6SLionel Sambuc#endif 8954684ddb6SLionel Sambuc 8964684ddb6SLionel Sambuctemplate <class _A1> 8974684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 8984684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 899*0a6a1f1dSLionel Sambucldexp(_A1 __lcpp_x, int __lcpp_e) _NOEXCEPT {return ldexp((double)__lcpp_x, __lcpp_e);} 9004684ddb6SLionel Sambuc 9014684ddb6SLionel Sambuc// log 9024684ddb6SLionel Sambuc 9034684ddb6SLionel Sambuc#endif // __sun__ 9044684ddb6SLionel Sambucusing ::log; 9054684ddb6SLionel Sambucusing ::logf; 9064684ddb6SLionel Sambuc#ifndef __sun__ 9074684ddb6SLionel Sambuc 9084684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 909*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float log(float __lcpp_x) _NOEXCEPT {return logf(__lcpp_x);} 910*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) _NOEXCEPT {return logl(__lcpp_x);} 9114684ddb6SLionel Sambuc#endif 9124684ddb6SLionel Sambuc 9134684ddb6SLionel Sambuctemplate <class _A1> 9144684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 9154684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 916*0a6a1f1dSLionel Sambuclog(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} 9174684ddb6SLionel Sambuc 9184684ddb6SLionel Sambuc 9194684ddb6SLionel Sambuc// log10 9204684ddb6SLionel Sambuc 9214684ddb6SLionel Sambucusing ::log10; 9224684ddb6SLionel Sambucusing ::log10f; 9234684ddb6SLionel Sambuc 9244684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 925*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float log10(float __lcpp_x) _NOEXCEPT {return log10f(__lcpp_x);} 926*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x) _NOEXCEPT {return log10l(__lcpp_x);} 9274684ddb6SLionel Sambuc#endif 9284684ddb6SLionel Sambuc 9294684ddb6SLionel Sambuctemplate <class _A1> 9304684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 9314684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 932*0a6a1f1dSLionel Sambuclog10(_A1 __lcpp_x) _NOEXCEPT {return log10((double)__lcpp_x);} 9334684ddb6SLionel Sambuc 9344684ddb6SLionel Sambuc// modf 9354684ddb6SLionel Sambuc 9364684ddb6SLionel Sambucusing ::modf; 9374684ddb6SLionel Sambucusing ::modff; 9384684ddb6SLionel Sambuc 9394684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 940*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float modf(float __lcpp_x, float* __lcpp_y) _NOEXCEPT {return modff(__lcpp_x, __lcpp_y);} 941*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x, long double* __lcpp_y) _NOEXCEPT {return modfl(__lcpp_x, __lcpp_y);} 9424684ddb6SLionel Sambuc#endif 9434684ddb6SLionel Sambuc 9444684ddb6SLionel Sambuc// pow 9454684ddb6SLionel Sambuc 9464684ddb6SLionel Sambuc#endif // __sun__ 9474684ddb6SLionel Sambucusing ::pow; 9484684ddb6SLionel Sambucusing ::powf; 9494684ddb6SLionel Sambuc 9504684ddb6SLionel Sambuc#ifndef __sun__ 9514684ddb6SLionel Sambuc 9524684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 953*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float pow(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return powf(__lcpp_x, __lcpp_y);} 954*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return powl(__lcpp_x, __lcpp_y);} 9554684ddb6SLionel Sambuc#endif 9564684ddb6SLionel Sambuc 9574684ddb6SLionel Sambuctemplate <class _A1, class _A2> 9584684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 959*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 9604684ddb6SLionel Sambuc< 9614684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 9624684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 963*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 9644684ddb6SLionel Sambuc>::type 965*0a6a1f1dSLionel Sambucpow(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 9664684ddb6SLionel Sambuc{ 9674684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 9684684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 9694684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 970*0a6a1f1dSLionel Sambuc return pow((__result_type)__lcpp_x, (__result_type)__lcpp_y); 9714684ddb6SLionel Sambuc} 9724684ddb6SLionel Sambuc 9734684ddb6SLionel Sambuc// sin 9744684ddb6SLionel Sambuc 9754684ddb6SLionel Sambucusing ::sin; 9764684ddb6SLionel Sambucusing ::sinf; 9774684ddb6SLionel Sambuc 9784684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 979*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float sin(float __lcpp_x) _NOEXCEPT {return sinf(__lcpp_x);} 980*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x) _NOEXCEPT {return sinl(__lcpp_x);} 9814684ddb6SLionel Sambuc#endif 9824684ddb6SLionel Sambuc 9834684ddb6SLionel Sambuctemplate <class _A1> 9844684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 9854684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 986*0a6a1f1dSLionel Sambucsin(_A1 __lcpp_x) _NOEXCEPT {return sin((double)__lcpp_x);} 9874684ddb6SLionel Sambuc 9884684ddb6SLionel Sambuc// sinh 9894684ddb6SLionel Sambuc 9904684ddb6SLionel Sambucusing ::sinh; 9914684ddb6SLionel Sambucusing ::sinhf; 9924684ddb6SLionel Sambuc 9934684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 994*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float sinh(float __lcpp_x) _NOEXCEPT {return sinhf(__lcpp_x);} 995*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x) _NOEXCEPT {return sinhl(__lcpp_x);} 9964684ddb6SLionel Sambuc#endif 9974684ddb6SLionel Sambuc 9984684ddb6SLionel Sambuctemplate <class _A1> 9994684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 10004684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1001*0a6a1f1dSLionel Sambucsinh(_A1 __lcpp_x) _NOEXCEPT {return sinh((double)__lcpp_x);} 10024684ddb6SLionel Sambuc 10034684ddb6SLionel Sambuc// sqrt 10044684ddb6SLionel Sambuc 10054684ddb6SLionel Sambuc#endif // __sun__ 10064684ddb6SLionel Sambucusing ::sqrt; 10074684ddb6SLionel Sambucusing ::sqrtf; 10084684ddb6SLionel Sambuc 10094684ddb6SLionel Sambuc 10104684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(__sun__) || defined(_AIX)) 1011*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float sqrt(float __lcpp_x) _NOEXCEPT {return sqrtf(__lcpp_x);} 1012*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x) _NOEXCEPT {return sqrtl(__lcpp_x);} 10134684ddb6SLionel Sambuc#endif 10144684ddb6SLionel Sambuc 10154684ddb6SLionel Sambuctemplate <class _A1> 10164684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 10174684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1018*0a6a1f1dSLionel Sambucsqrt(_A1 __lcpp_x) _NOEXCEPT {return sqrt((double)__lcpp_x);} 10194684ddb6SLionel Sambuc 10204684ddb6SLionel Sambuc// tan 10214684ddb6SLionel Sambuc 10224684ddb6SLionel Sambucusing ::tan; 10234684ddb6SLionel Sambucusing ::tanf; 10244684ddb6SLionel Sambuc#ifndef __sun__ 10254684ddb6SLionel Sambuc 10264684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 1027*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float tan(float __lcpp_x) _NOEXCEPT {return tanf(__lcpp_x);} 1028*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x) _NOEXCEPT {return tanl(__lcpp_x);} 10294684ddb6SLionel Sambuc#endif 10304684ddb6SLionel Sambuc 10314684ddb6SLionel Sambuctemplate <class _A1> 10324684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 10334684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1034*0a6a1f1dSLionel Sambuctan(_A1 __lcpp_x) _NOEXCEPT {return tan((double)__lcpp_x);} 10354684ddb6SLionel Sambuc 10364684ddb6SLionel Sambuc// tanh 10374684ddb6SLionel Sambuc 10384684ddb6SLionel Sambucusing ::tanh; 10394684ddb6SLionel Sambucusing ::tanhf; 10404684ddb6SLionel Sambuc 10414684ddb6SLionel Sambuc#if !(defined(_LIBCPP_MSVCRT) || defined(_AIX)) 1042*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float tanh(float __lcpp_x) _NOEXCEPT {return tanhf(__lcpp_x);} 1043*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x) _NOEXCEPT {return tanhl(__lcpp_x);} 10444684ddb6SLionel Sambuc#endif 10454684ddb6SLionel Sambuc 10464684ddb6SLionel Sambuctemplate <class _A1> 10474684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 10484684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1049*0a6a1f1dSLionel Sambuctanh(_A1 __lcpp_x) _NOEXCEPT {return tanh((double)__lcpp_x);} 10504684ddb6SLionel Sambuc 10514684ddb6SLionel Sambuc// acosh 10524684ddb6SLionel Sambuc 10534684ddb6SLionel Sambuc#ifndef _LIBCPP_MSVCRT 10544684ddb6SLionel Sambucusing ::acosh; 10554684ddb6SLionel Sambucusing ::acoshf; 10564684ddb6SLionel Sambuc 1057*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float acosh(float __lcpp_x) _NOEXCEPT {return acoshf(__lcpp_x);} 1058*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double acosh(long double __lcpp_x) _NOEXCEPT {return acoshl(__lcpp_x);} 10594684ddb6SLionel Sambuc 10604684ddb6SLionel Sambuctemplate <class _A1> 10614684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 10624684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1063*0a6a1f1dSLionel Sambucacosh(_A1 __lcpp_x) _NOEXCEPT {return acosh((double)__lcpp_x);} 10644684ddb6SLionel Sambuc#endif 10654684ddb6SLionel Sambuc 10664684ddb6SLionel Sambuc// asinh 10674684ddb6SLionel Sambuc 10684684ddb6SLionel Sambuc#ifndef _LIBCPP_MSVCRT 10694684ddb6SLionel Sambucusing ::asinh; 10704684ddb6SLionel Sambucusing ::asinhf; 10714684ddb6SLionel Sambuc 1072*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float asinh(float __lcpp_x) _NOEXCEPT {return asinhf(__lcpp_x);} 1073*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double asinh(long double __lcpp_x) _NOEXCEPT {return asinhl(__lcpp_x);} 10744684ddb6SLionel Sambuc 10754684ddb6SLionel Sambuctemplate <class _A1> 10764684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 10774684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1078*0a6a1f1dSLionel Sambucasinh(_A1 __lcpp_x) _NOEXCEPT {return asinh((double)__lcpp_x);} 10794684ddb6SLionel Sambuc#endif 10804684ddb6SLionel Sambuc 10814684ddb6SLionel Sambuc// atanh 10824684ddb6SLionel Sambuc 10834684ddb6SLionel Sambuc#ifndef _LIBCPP_MSVCRT 10844684ddb6SLionel Sambucusing ::atanh; 10854684ddb6SLionel Sambucusing ::atanhf; 10864684ddb6SLionel Sambuc 1087*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float atanh(float __lcpp_x) _NOEXCEPT {return atanhf(__lcpp_x);} 1088*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double atanh(long double __lcpp_x) _NOEXCEPT {return atanhl(__lcpp_x);} 10894684ddb6SLionel Sambuc 10904684ddb6SLionel Sambuctemplate <class _A1> 10914684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 10924684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1093*0a6a1f1dSLionel Sambucatanh(_A1 __lcpp_x) _NOEXCEPT {return atanh((double)__lcpp_x);} 10944684ddb6SLionel Sambuc#endif 10954684ddb6SLionel Sambuc 10964684ddb6SLionel Sambuc// cbrt 10974684ddb6SLionel Sambuc 10984684ddb6SLionel Sambuc#ifndef _LIBCPP_MSVCRT 10994684ddb6SLionel Sambucusing ::cbrt; 11004684ddb6SLionel Sambucusing ::cbrtf; 11014684ddb6SLionel Sambuc 1102*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float cbrt(float __lcpp_x) _NOEXCEPT {return cbrtf(__lcpp_x);} 1103*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double cbrt(long double __lcpp_x) _NOEXCEPT {return cbrtl(__lcpp_x);} 11044684ddb6SLionel Sambuc 11054684ddb6SLionel Sambuctemplate <class _A1> 11064684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 11074684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1108*0a6a1f1dSLionel Sambuccbrt(_A1 __lcpp_x) _NOEXCEPT {return cbrt((double)__lcpp_x);} 11094684ddb6SLionel Sambuc#endif 11104684ddb6SLionel Sambuc 11114684ddb6SLionel Sambuc// copysign 11124684ddb6SLionel Sambuc 11134684ddb6SLionel Sambucusing ::copysign; 11144684ddb6SLionel Sambucusing ::copysignf; 11154684ddb6SLionel Sambuc 1116*0a6a1f1dSLionel Sambuc#if !defined(_VC_CRT_MAJOR_VERSION) || (_VC_CRT_MAJOR_VERSION < 12) 1117*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float copysign(float __lcpp_x, 1118*0a6a1f1dSLionel Sambuc float __lcpp_y) _NOEXCEPT { 1119*0a6a1f1dSLionel Sambuc return copysignf(__lcpp_x, __lcpp_y); 1120*0a6a1f1dSLionel Sambuc} 1121*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double 1122*0a6a1f1dSLionel Sambuccopysign(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT { 1123*0a6a1f1dSLionel Sambuc return copysignl(__lcpp_x, __lcpp_y); 1124*0a6a1f1dSLionel Sambuc} 1125*0a6a1f1dSLionel Sambuc#endif 11264684ddb6SLionel Sambuc 11274684ddb6SLionel Sambuctemplate <class _A1, class _A2> 11284684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 1129*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 11304684ddb6SLionel Sambuc< 11314684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 11324684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 1133*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 11344684ddb6SLionel Sambuc>::type 1135*0a6a1f1dSLionel Sambuccopysign(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 11364684ddb6SLionel Sambuc{ 11374684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 11384684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 11394684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 1140*0a6a1f1dSLionel Sambuc return copysign((__result_type)__lcpp_x, (__result_type)__lcpp_y); 11414684ddb6SLionel Sambuc} 11424684ddb6SLionel Sambuc 11434684ddb6SLionel Sambuc#ifndef _LIBCPP_MSVCRT 11444684ddb6SLionel Sambuc 11454684ddb6SLionel Sambuc// erf 11464684ddb6SLionel Sambuc 11474684ddb6SLionel Sambucusing ::erf; 11484684ddb6SLionel Sambucusing ::erff; 11494684ddb6SLionel Sambuc 1150*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float erf(float __lcpp_x) _NOEXCEPT {return erff(__lcpp_x);} 1151*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double erf(long double __lcpp_x) _NOEXCEPT {return erfl(__lcpp_x);} 11524684ddb6SLionel Sambuc 11534684ddb6SLionel Sambuctemplate <class _A1> 11544684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 11554684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1156*0a6a1f1dSLionel Sambucerf(_A1 __lcpp_x) _NOEXCEPT {return erf((double)__lcpp_x);} 11574684ddb6SLionel Sambuc 11584684ddb6SLionel Sambuc// erfc 11594684ddb6SLionel Sambuc 11604684ddb6SLionel Sambucusing ::erfc; 11614684ddb6SLionel Sambucusing ::erfcf; 11624684ddb6SLionel Sambuc 1163*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float erfc(float __lcpp_x) _NOEXCEPT {return erfcf(__lcpp_x);} 1164*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double erfc(long double __lcpp_x) _NOEXCEPT {return erfcl(__lcpp_x);} 11654684ddb6SLionel Sambuc 11664684ddb6SLionel Sambuctemplate <class _A1> 11674684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 11684684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1169*0a6a1f1dSLionel Sambucerfc(_A1 __lcpp_x) _NOEXCEPT {return erfc((double)__lcpp_x);} 11704684ddb6SLionel Sambuc 11714684ddb6SLionel Sambuc// exp2 11724684ddb6SLionel Sambuc 11734684ddb6SLionel Sambucusing ::exp2; 11744684ddb6SLionel Sambucusing ::exp2f; 11754684ddb6SLionel Sambuc 1176*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float exp2(float __lcpp_x) _NOEXCEPT {return exp2f(__lcpp_x);} 1177*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double exp2(long double __lcpp_x) _NOEXCEPT {return exp2l(__lcpp_x);} 11784684ddb6SLionel Sambuc 11794684ddb6SLionel Sambuctemplate <class _A1> 11804684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 11814684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1182*0a6a1f1dSLionel Sambucexp2(_A1 __lcpp_x) _NOEXCEPT {return exp2((double)__lcpp_x);} 11834684ddb6SLionel Sambuc 11844684ddb6SLionel Sambuc// expm1 11854684ddb6SLionel Sambuc 11864684ddb6SLionel Sambucusing ::expm1; 11874684ddb6SLionel Sambucusing ::expm1f; 11884684ddb6SLionel Sambuc 1189*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float expm1(float __lcpp_x) _NOEXCEPT {return expm1f(__lcpp_x);} 1190*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double expm1(long double __lcpp_x) _NOEXCEPT {return expm1l(__lcpp_x);} 11914684ddb6SLionel Sambuc 11924684ddb6SLionel Sambuctemplate <class _A1> 11934684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 11944684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1195*0a6a1f1dSLionel Sambucexpm1(_A1 __lcpp_x) _NOEXCEPT {return expm1((double)__lcpp_x);} 11964684ddb6SLionel Sambuc 11974684ddb6SLionel Sambuc// fdim 11984684ddb6SLionel Sambuc 11994684ddb6SLionel Sambucusing ::fdim; 12004684ddb6SLionel Sambucusing ::fdimf; 12014684ddb6SLionel Sambuc 1202*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float fdim(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return fdimf(__lcpp_x, __lcpp_y);} 1203*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double fdim(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return fdiml(__lcpp_x, __lcpp_y);} 12044684ddb6SLionel Sambuc 12054684ddb6SLionel Sambuctemplate <class _A1, class _A2> 12064684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 1207*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 12084684ddb6SLionel Sambuc< 12094684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 12104684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 1211*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 12124684ddb6SLionel Sambuc>::type 1213*0a6a1f1dSLionel Sambucfdim(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 12144684ddb6SLionel Sambuc{ 12154684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 12164684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 12174684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 1218*0a6a1f1dSLionel Sambuc return fdim((__result_type)__lcpp_x, (__result_type)__lcpp_y); 12194684ddb6SLionel Sambuc} 12204684ddb6SLionel Sambuc 12214684ddb6SLionel Sambuc// fma 12224684ddb6SLionel Sambuc 1223*0a6a1f1dSLionel Sambucusing ::fmaf; 12244684ddb6SLionel Sambucusing ::fma; 12254684ddb6SLionel Sambuc 1226*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float fma(float __lcpp_x, float __lcpp_y, float __lcpp_z) _NOEXCEPT {return fmaf(__lcpp_x, __lcpp_y, __lcpp_z);} 1227*0a6a1f1dSLionel Sambucinline _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);} 12284684ddb6SLionel Sambuc 12294684ddb6SLionel Sambuctemplate <class _A1, class _A2, class _A3> 12304684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 1231*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 12324684ddb6SLionel Sambuc< 12334684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 12344684ddb6SLionel Sambuc is_arithmetic<_A2>::value && 12354684ddb6SLionel Sambuc is_arithmetic<_A3>::value, 1236*0a6a1f1dSLionel Sambuc __promote<_A1, _A2, _A3> 12374684ddb6SLionel Sambuc>::type 1238*0a6a1f1dSLionel Sambucfma(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) _NOEXCEPT 12394684ddb6SLionel Sambuc{ 12404684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2, _A3>::type __result_type; 12414684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 12424684ddb6SLionel Sambuc is_same<_A2, __result_type>::value && 12434684ddb6SLionel Sambuc is_same<_A3, __result_type>::value)), ""); 1244*0a6a1f1dSLionel Sambuc return fma((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z); 12454684ddb6SLionel Sambuc} 12464684ddb6SLionel Sambuc 12474684ddb6SLionel Sambuc// fmax 12484684ddb6SLionel Sambuc 12494684ddb6SLionel Sambucusing ::fmax; 12504684ddb6SLionel Sambucusing ::fmaxf; 12514684ddb6SLionel Sambuc 1252*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float fmax(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return fmaxf(__lcpp_x, __lcpp_y);} 1253*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double fmax(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return fmaxl(__lcpp_x, __lcpp_y);} 12544684ddb6SLionel Sambuc 12554684ddb6SLionel Sambuctemplate <class _A1, class _A2> 12564684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 1257*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 12584684ddb6SLionel Sambuc< 12594684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 12604684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 1261*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 12624684ddb6SLionel Sambuc>::type 1263*0a6a1f1dSLionel Sambucfmax(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 12644684ddb6SLionel Sambuc{ 12654684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 12664684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 12674684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 1268*0a6a1f1dSLionel Sambuc return fmax((__result_type)__lcpp_x, (__result_type)__lcpp_y); 12694684ddb6SLionel Sambuc} 12704684ddb6SLionel Sambuc 12714684ddb6SLionel Sambuc// fmin 12724684ddb6SLionel Sambuc 12734684ddb6SLionel Sambucusing ::fmin; 12744684ddb6SLionel Sambucusing ::fminf; 12754684ddb6SLionel Sambuc 1276*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float fmin(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return fminf(__lcpp_x, __lcpp_y);} 1277*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double fmin(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return fminl(__lcpp_x, __lcpp_y);} 12784684ddb6SLionel Sambuc 12794684ddb6SLionel Sambuctemplate <class _A1, class _A2> 12804684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 1281*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 12824684ddb6SLionel Sambuc< 12834684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 12844684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 1285*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 12864684ddb6SLionel Sambuc>::type 1287*0a6a1f1dSLionel Sambucfmin(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 12884684ddb6SLionel Sambuc{ 12894684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 12904684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 12914684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 1292*0a6a1f1dSLionel Sambuc return fmin((__result_type)__lcpp_x, (__result_type)__lcpp_y); 12934684ddb6SLionel Sambuc} 12944684ddb6SLionel Sambuc 12954684ddb6SLionel Sambuc// hypot 12964684ddb6SLionel Sambuc 12974684ddb6SLionel Sambucusing ::hypot; 12984684ddb6SLionel Sambucusing ::hypotf; 12994684ddb6SLionel Sambuc 1300*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float hypot(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return hypotf(__lcpp_x, __lcpp_y);} 1301*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double hypot(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return hypotl(__lcpp_x, __lcpp_y);} 13024684ddb6SLionel Sambuc 13034684ddb6SLionel Sambuctemplate <class _A1, class _A2> 13044684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 1305*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 13064684ddb6SLionel Sambuc< 13074684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 13084684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 1309*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 13104684ddb6SLionel Sambuc>::type 1311*0a6a1f1dSLionel Sambuchypot(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 13124684ddb6SLionel Sambuc{ 13134684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 13144684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 13154684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 1316*0a6a1f1dSLionel Sambuc return hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y); 13174684ddb6SLionel Sambuc} 13184684ddb6SLionel Sambuc 13194684ddb6SLionel Sambuc// ilogb 13204684ddb6SLionel Sambuc 13214684ddb6SLionel Sambucusing ::ilogb; 13224684ddb6SLionel Sambucusing ::ilogbf; 13234684ddb6SLionel Sambuc 1324*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY int ilogb(float __lcpp_x) _NOEXCEPT {return ilogbf(__lcpp_x);} 1325*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY int ilogb(long double __lcpp_x) _NOEXCEPT {return ilogbl(__lcpp_x);} 13264684ddb6SLionel Sambuc 13274684ddb6SLionel Sambuctemplate <class _A1> 13284684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 13294684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, int>::type 1330*0a6a1f1dSLionel Sambucilogb(_A1 __lcpp_x) _NOEXCEPT {return ilogb((double)__lcpp_x);} 13314684ddb6SLionel Sambuc 13324684ddb6SLionel Sambuc// lgamma 13334684ddb6SLionel Sambuc 13344684ddb6SLionel Sambucusing ::lgamma; 13354684ddb6SLionel Sambucusing ::lgammaf; 13364684ddb6SLionel Sambuc 1337*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float lgamma(float __lcpp_x) _NOEXCEPT {return lgammaf(__lcpp_x);} 1338*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double lgamma(long double __lcpp_x) _NOEXCEPT {return lgammal(__lcpp_x);} 13394684ddb6SLionel Sambuc 13404684ddb6SLionel Sambuc 13414684ddb6SLionel Sambuctemplate <class _A1> 13424684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 13434684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1344*0a6a1f1dSLionel Sambuclgamma(_A1 __lcpp_x) _NOEXCEPT {return lgamma((double)__lcpp_x);} 13454684ddb6SLionel Sambuc 13464684ddb6SLionel Sambuc 13474684ddb6SLionel Sambuc// llrint 13484684ddb6SLionel Sambuc 13494684ddb6SLionel Sambucusing ::llrint; 13504684ddb6SLionel Sambucusing ::llrintf; 13514684ddb6SLionel Sambuc 1352*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long long llrint(float __lcpp_x) _NOEXCEPT {return llrintf(__lcpp_x);} 1353*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long long llrint(long double __lcpp_x) _NOEXCEPT {return llrintl(__lcpp_x);} 13544684ddb6SLionel Sambuc 13554684ddb6SLionel Sambuctemplate <class _A1> 13564684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 13574684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, long long>::type 1358*0a6a1f1dSLionel Sambucllrint(_A1 __lcpp_x) _NOEXCEPT {return llrint((double)__lcpp_x);} 13594684ddb6SLionel Sambuc 13604684ddb6SLionel Sambuc// llround 13614684ddb6SLionel Sambuc 13624684ddb6SLionel Sambucusing ::llround; 13634684ddb6SLionel Sambucusing ::llroundf; 13644684ddb6SLionel Sambuc 1365*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long long llround(float __lcpp_x) _NOEXCEPT {return llroundf(__lcpp_x);} 1366*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long long llround(long double __lcpp_x) _NOEXCEPT {return llroundl(__lcpp_x);} 13674684ddb6SLionel Sambuc 13684684ddb6SLionel Sambuctemplate <class _A1> 13694684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 13704684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, long long>::type 1371*0a6a1f1dSLionel Sambucllround(_A1 __lcpp_x) _NOEXCEPT {return llround((double)__lcpp_x);} 13724684ddb6SLionel Sambuc 13734684ddb6SLionel Sambuc// log1p 13744684ddb6SLionel Sambuc 13754684ddb6SLionel Sambucusing ::log1p; 13764684ddb6SLionel Sambucusing ::log1pf; 13774684ddb6SLionel Sambuc 1378*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float log1p(float __lcpp_x) _NOEXCEPT {return log1pf(__lcpp_x);} 1379*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double log1p(long double __lcpp_x) _NOEXCEPT {return log1pl(__lcpp_x);} 13804684ddb6SLionel Sambuc 13814684ddb6SLionel Sambuctemplate <class _A1> 13824684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 13834684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1384*0a6a1f1dSLionel Sambuclog1p(_A1 __lcpp_x) _NOEXCEPT {return log1p((double)__lcpp_x);} 13854684ddb6SLionel Sambuc 13864684ddb6SLionel Sambuc// log2 13874684ddb6SLionel Sambuc 13884684ddb6SLionel Sambucusing ::log2; 13894684ddb6SLionel Sambucusing ::log2f; 13904684ddb6SLionel Sambuc 1391*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float log2(float __lcpp_x) _NOEXCEPT {return log2f(__lcpp_x);} 1392*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double log2(long double __lcpp_x) _NOEXCEPT {return log2l(__lcpp_x);} 13934684ddb6SLionel Sambuc 13944684ddb6SLionel Sambuctemplate <class _A1> 13954684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 13964684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1397*0a6a1f1dSLionel Sambuclog2(_A1 __lcpp_x) _NOEXCEPT {return log2((double)__lcpp_x);} 13984684ddb6SLionel Sambuc 13994684ddb6SLionel Sambuc// logb 14004684ddb6SLionel Sambuc 14014684ddb6SLionel Sambucusing ::logb; 14024684ddb6SLionel Sambucusing ::logbf; 14034684ddb6SLionel Sambuc 1404*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float logb(float __lcpp_x) _NOEXCEPT {return logbf(__lcpp_x);} 1405*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double logb(long double __lcpp_x) _NOEXCEPT {return logbl(__lcpp_x);} 14064684ddb6SLionel Sambuc 14074684ddb6SLionel Sambuctemplate <class _A1> 14084684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 14094684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1410*0a6a1f1dSLionel Sambuclogb(_A1 __lcpp_x) _NOEXCEPT {return logb((double)__lcpp_x);} 14114684ddb6SLionel Sambuc 14124684ddb6SLionel Sambuc// lrint 14134684ddb6SLionel Sambuc 14144684ddb6SLionel Sambucusing ::lrint; 14154684ddb6SLionel Sambucusing ::lrintf; 14164684ddb6SLionel Sambuc 1417*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long lrint(float __lcpp_x) _NOEXCEPT {return lrintf(__lcpp_x);} 1418*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long lrint(long double __lcpp_x) _NOEXCEPT {return lrintl(__lcpp_x);} 14194684ddb6SLionel Sambuc 14204684ddb6SLionel Sambuctemplate <class _A1> 14214684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 14224684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, long>::type 1423*0a6a1f1dSLionel Sambuclrint(_A1 __lcpp_x) _NOEXCEPT {return lrint((double)__lcpp_x);} 14244684ddb6SLionel Sambuc 14254684ddb6SLionel Sambuc// lround 14264684ddb6SLionel Sambuc 14274684ddb6SLionel Sambucusing ::lround; 14284684ddb6SLionel Sambucusing ::lroundf; 14294684ddb6SLionel Sambuc 1430*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long lround(float __lcpp_x) _NOEXCEPT {return lroundf(__lcpp_x);} 1431*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long lround(long double __lcpp_x) _NOEXCEPT {return lroundl(__lcpp_x);} 14324684ddb6SLionel Sambuc 14334684ddb6SLionel Sambuctemplate <class _A1> 14344684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 14354684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, long>::type 1436*0a6a1f1dSLionel Sambuclround(_A1 __lcpp_x) _NOEXCEPT {return lround((double)__lcpp_x);} 14374684ddb6SLionel Sambuc 14384684ddb6SLionel Sambuc#endif // _LIBCPP_MSVCRT 14394684ddb6SLionel Sambuc#endif // __sun__ 14404684ddb6SLionel Sambuc 14414684ddb6SLionel Sambuc// nan 14424684ddb6SLionel Sambuc 14434684ddb6SLionel Sambuc#ifndef _LIBCPP_MSVCRT 14444684ddb6SLionel Sambucusing ::nan; 14454684ddb6SLionel Sambucusing ::nanf; 14464684ddb6SLionel Sambuc#endif // _LIBCPP_MSVCRT 14474684ddb6SLionel Sambuc 14484684ddb6SLionel Sambuc#ifndef __sun__ 14494684ddb6SLionel Sambuc#ifndef _LIBCPP_MSVCRT 14504684ddb6SLionel Sambuc 14514684ddb6SLionel Sambuc// nearbyint 14524684ddb6SLionel Sambuc 14534684ddb6SLionel Sambucusing ::nearbyint; 14544684ddb6SLionel Sambucusing ::nearbyintf; 14554684ddb6SLionel Sambuc 1456*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float nearbyint(float __lcpp_x) _NOEXCEPT {return nearbyintf(__lcpp_x);} 1457*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double nearbyint(long double __lcpp_x) _NOEXCEPT {return nearbyintl(__lcpp_x);} 14584684ddb6SLionel Sambuc 14594684ddb6SLionel Sambuctemplate <class _A1> 14604684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 14614684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1462*0a6a1f1dSLionel Sambucnearbyint(_A1 __lcpp_x) _NOEXCEPT {return nearbyint((double)__lcpp_x);} 14634684ddb6SLionel Sambuc 14644684ddb6SLionel Sambuc// nextafter 14654684ddb6SLionel Sambuc 14664684ddb6SLionel Sambucusing ::nextafter; 14674684ddb6SLionel Sambucusing ::nextafterf; 14684684ddb6SLionel Sambuc 1469*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float nextafter(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return nextafterf(__lcpp_x, __lcpp_y);} 1470*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double nextafter(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return nextafterl(__lcpp_x, __lcpp_y);} 14714684ddb6SLionel Sambuc 14724684ddb6SLionel Sambuctemplate <class _A1, class _A2> 14734684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 1474*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 14754684ddb6SLionel Sambuc< 14764684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 14774684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 1478*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 14794684ddb6SLionel Sambuc>::type 1480*0a6a1f1dSLionel Sambucnextafter(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 14814684ddb6SLionel Sambuc{ 14824684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 14834684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 14844684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 1485*0a6a1f1dSLionel Sambuc return nextafter((__result_type)__lcpp_x, (__result_type)__lcpp_y); 14864684ddb6SLionel Sambuc} 14874684ddb6SLionel Sambuc 14884684ddb6SLionel Sambuc// nexttoward 14894684ddb6SLionel Sambuc 14904684ddb6SLionel Sambucusing ::nexttoward; 14914684ddb6SLionel Sambucusing ::nexttowardf; 14924684ddb6SLionel Sambuc 1493*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float nexttoward(float __lcpp_x, long double __lcpp_y) _NOEXCEPT {return nexttowardf(__lcpp_x, __lcpp_y);} 1494*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double nexttoward(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return nexttowardl(__lcpp_x, __lcpp_y);} 14954684ddb6SLionel Sambuc 14964684ddb6SLionel Sambuctemplate <class _A1> 14974684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 14984684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1499*0a6a1f1dSLionel Sambucnexttoward(_A1 __lcpp_x, long double __lcpp_y) _NOEXCEPT {return nexttoward((double)__lcpp_x, __lcpp_y);} 15004684ddb6SLionel Sambuc 15014684ddb6SLionel Sambuc// remainder 15024684ddb6SLionel Sambuc 15034684ddb6SLionel Sambucusing ::remainder; 15044684ddb6SLionel Sambucusing ::remainderf; 15054684ddb6SLionel Sambuc 1506*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float remainder(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return remainderf(__lcpp_x, __lcpp_y);} 1507*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double remainder(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return remainderl(__lcpp_x, __lcpp_y);} 15084684ddb6SLionel Sambuc 15094684ddb6SLionel Sambuctemplate <class _A1, class _A2> 15104684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 1511*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 15124684ddb6SLionel Sambuc< 15134684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 15144684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 1515*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 15164684ddb6SLionel Sambuc>::type 1517*0a6a1f1dSLionel Sambucremainder(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT 15184684ddb6SLionel Sambuc{ 15194684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 15204684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 15214684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 1522*0a6a1f1dSLionel Sambuc return remainder((__result_type)__lcpp_x, (__result_type)__lcpp_y); 15234684ddb6SLionel Sambuc} 15244684ddb6SLionel Sambuc 15254684ddb6SLionel Sambuc// remquo 15264684ddb6SLionel Sambuc 15274684ddb6SLionel Sambucusing ::remquo; 15284684ddb6SLionel Sambucusing ::remquof; 15294684ddb6SLionel Sambuc 1530*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float remquo(float __lcpp_x, float __lcpp_y, int* __lcpp_z) _NOEXCEPT {return remquof(__lcpp_x, __lcpp_y, __lcpp_z);} 1531*0a6a1f1dSLionel Sambucinline _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);} 15324684ddb6SLionel Sambuc 15334684ddb6SLionel Sambuctemplate <class _A1, class _A2> 15344684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 1535*0a6a1f1dSLionel Sambuctypename __lazy_enable_if 15364684ddb6SLionel Sambuc< 15374684ddb6SLionel Sambuc is_arithmetic<_A1>::value && 15384684ddb6SLionel Sambuc is_arithmetic<_A2>::value, 1539*0a6a1f1dSLionel Sambuc __promote<_A1, _A2> 15404684ddb6SLionel Sambuc>::type 1541*0a6a1f1dSLionel Sambucremquo(_A1 __lcpp_x, _A2 __lcpp_y, int* __lcpp_z) _NOEXCEPT 15424684ddb6SLionel Sambuc{ 15434684ddb6SLionel Sambuc typedef typename __promote<_A1, _A2>::type __result_type; 15444684ddb6SLionel Sambuc static_assert((!(is_same<_A1, __result_type>::value && 15454684ddb6SLionel Sambuc is_same<_A2, __result_type>::value)), ""); 1546*0a6a1f1dSLionel Sambuc return remquo((__result_type)__lcpp_x, (__result_type)__lcpp_y, __lcpp_z); 15474684ddb6SLionel Sambuc} 15484684ddb6SLionel Sambuc 15494684ddb6SLionel Sambuc// rint 15504684ddb6SLionel Sambuc 15514684ddb6SLionel Sambucusing ::rint; 15524684ddb6SLionel Sambucusing ::rintf; 15534684ddb6SLionel Sambuc 1554*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float rint(float __lcpp_x) _NOEXCEPT {return rintf(__lcpp_x);} 1555*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double rint(long double __lcpp_x) _NOEXCEPT {return rintl(__lcpp_x);} 15564684ddb6SLionel Sambuc 15574684ddb6SLionel Sambuctemplate <class _A1> 15584684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 15594684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1560*0a6a1f1dSLionel Sambucrint(_A1 __lcpp_x) _NOEXCEPT {return rint((double)__lcpp_x);} 15614684ddb6SLionel Sambuc 15624684ddb6SLionel Sambuc// round 15634684ddb6SLionel Sambuc 15644684ddb6SLionel Sambucusing ::round; 15654684ddb6SLionel Sambucusing ::roundf; 15664684ddb6SLionel Sambuc 1567*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float round(float __lcpp_x) _NOEXCEPT {return roundf(__lcpp_x);} 1568*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double round(long double __lcpp_x) _NOEXCEPT {return roundl(__lcpp_x);} 15694684ddb6SLionel Sambuc 15704684ddb6SLionel Sambuctemplate <class _A1> 15714684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 15724684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1573*0a6a1f1dSLionel Sambucround(_A1 __lcpp_x) _NOEXCEPT {return round((double)__lcpp_x);} 15744684ddb6SLionel Sambuc 15754684ddb6SLionel Sambuc// scalbln 15764684ddb6SLionel Sambuc 15774684ddb6SLionel Sambucusing ::scalbln; 15784684ddb6SLionel Sambucusing ::scalblnf; 15794684ddb6SLionel Sambuc 1580*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float scalbln(float __lcpp_x, long __lcpp_y) _NOEXCEPT {return scalblnf(__lcpp_x, __lcpp_y);} 1581*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double scalbln(long double __lcpp_x, long __lcpp_y) _NOEXCEPT {return scalblnl(__lcpp_x, __lcpp_y);} 15824684ddb6SLionel Sambuc 15834684ddb6SLionel Sambuctemplate <class _A1> 15844684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 15854684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1586*0a6a1f1dSLionel Sambucscalbln(_A1 __lcpp_x, long __lcpp_y) _NOEXCEPT {return scalbln((double)__lcpp_x, __lcpp_y);} 15874684ddb6SLionel Sambuc 15884684ddb6SLionel Sambuc// scalbn 15894684ddb6SLionel Sambuc 15904684ddb6SLionel Sambucusing ::scalbn; 15914684ddb6SLionel Sambucusing ::scalbnf; 15924684ddb6SLionel Sambuc 1593*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float scalbn(float __lcpp_x, int __lcpp_y) _NOEXCEPT {return scalbnf(__lcpp_x, __lcpp_y);} 1594*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double scalbn(long double __lcpp_x, int __lcpp_y) _NOEXCEPT {return scalbnl(__lcpp_x, __lcpp_y);} 15954684ddb6SLionel Sambuc 15964684ddb6SLionel Sambuctemplate <class _A1> 15974684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 15984684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1599*0a6a1f1dSLionel Sambucscalbn(_A1 __lcpp_x, int __lcpp_y) _NOEXCEPT {return scalbn((double)__lcpp_x, __lcpp_y);} 16004684ddb6SLionel Sambuc 16014684ddb6SLionel Sambuc// tgamma 16024684ddb6SLionel Sambuc 16034684ddb6SLionel Sambucusing ::tgamma; 16044684ddb6SLionel Sambucusing ::tgammaf; 16054684ddb6SLionel Sambuc 1606*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float tgamma(float __lcpp_x) _NOEXCEPT {return tgammaf(__lcpp_x);} 1607*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double tgamma(long double __lcpp_x) _NOEXCEPT {return tgammal(__lcpp_x);} 16084684ddb6SLionel Sambuc 16094684ddb6SLionel Sambuctemplate <class _A1> 16104684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 16114684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1612*0a6a1f1dSLionel Sambuctgamma(_A1 __lcpp_x) _NOEXCEPT {return tgamma((double)__lcpp_x);} 16134684ddb6SLionel Sambuc 16144684ddb6SLionel Sambuc// trunc 16154684ddb6SLionel Sambuc 16164684ddb6SLionel Sambucusing ::trunc; 16174684ddb6SLionel Sambucusing ::truncf; 16184684ddb6SLionel Sambuc 1619*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY float trunc(float __lcpp_x) _NOEXCEPT {return truncf(__lcpp_x);} 1620*0a6a1f1dSLionel Sambucinline _LIBCPP_INLINE_VISIBILITY long double trunc(long double __lcpp_x) _NOEXCEPT {return truncl(__lcpp_x);} 16214684ddb6SLionel Sambuc 16224684ddb6SLionel Sambuctemplate <class _A1> 16234684ddb6SLionel Sambucinline _LIBCPP_INLINE_VISIBILITY 16244684ddb6SLionel Sambuctypename enable_if<is_integral<_A1>::value, double>::type 1625*0a6a1f1dSLionel Sambuctrunc(_A1 __lcpp_x) _NOEXCEPT {return trunc((double)__lcpp_x);} 16264684ddb6SLionel Sambuc 16274684ddb6SLionel Sambuc#endif // !_LIBCPP_MSVCRT 16284684ddb6SLionel Sambuc 16294684ddb6SLionel Sambucusing ::acosl; 16304684ddb6SLionel Sambucusing ::asinl; 16314684ddb6SLionel Sambucusing ::atanl; 16324684ddb6SLionel Sambucusing ::atan2l; 16334684ddb6SLionel Sambucusing ::ceill; 16344684ddb6SLionel Sambucusing ::cosl; 16354684ddb6SLionel Sambucusing ::coshl; 16364684ddb6SLionel Sambucusing ::expl; 16374684ddb6SLionel Sambucusing ::fabsl; 16384684ddb6SLionel Sambucusing ::floorl; 16394684ddb6SLionel Sambucusing ::fmodl; 16404684ddb6SLionel Sambucusing ::frexpl; 16414684ddb6SLionel Sambucusing ::ldexpl; 16424684ddb6SLionel Sambucusing ::logl; 16434684ddb6SLionel Sambucusing ::log10l; 16444684ddb6SLionel Sambucusing ::modfl; 16454684ddb6SLionel Sambucusing ::powl; 16464684ddb6SLionel Sambucusing ::sinl; 16474684ddb6SLionel Sambucusing ::sinhl; 16484684ddb6SLionel Sambucusing ::sqrtl; 16494684ddb6SLionel Sambucusing ::tanl; 16504684ddb6SLionel Sambuc#ifndef _LIBCPP_MSVCRT 16514684ddb6SLionel Sambucusing ::tanhl; 16524684ddb6SLionel Sambucusing ::acoshl; 16534684ddb6SLionel Sambucusing ::asinhl; 16544684ddb6SLionel Sambucusing ::atanhl; 16554684ddb6SLionel Sambucusing ::cbrtl; 16564684ddb6SLionel Sambuc#endif // !_LIBCPP_MSVCRT 16574684ddb6SLionel Sambucusing ::copysignl; 16584684ddb6SLionel Sambuc#ifndef _LIBCPP_MSVCRT 16594684ddb6SLionel Sambucusing ::erfl; 16604684ddb6SLionel Sambucusing ::erfcl; 16614684ddb6SLionel Sambucusing ::exp2l; 16624684ddb6SLionel Sambucusing ::expm1l; 16634684ddb6SLionel Sambucusing ::fdiml; 16644684ddb6SLionel Sambucusing ::fmal; 16654684ddb6SLionel Sambucusing ::fmaxl; 16664684ddb6SLionel Sambucusing ::fminl; 16674684ddb6SLionel Sambucusing ::hypotl; 16684684ddb6SLionel Sambucusing ::ilogbl; 16694684ddb6SLionel Sambucusing ::lgammal; 16704684ddb6SLionel Sambucusing ::llrintl; 16714684ddb6SLionel Sambucusing ::llroundl; 16724684ddb6SLionel Sambucusing ::log1pl; 16734684ddb6SLionel Sambucusing ::log2l; 16744684ddb6SLionel Sambucusing ::logbl; 16754684ddb6SLionel Sambucusing ::lrintl; 16764684ddb6SLionel Sambucusing ::lroundl; 16774684ddb6SLionel Sambucusing ::nanl; 16784684ddb6SLionel Sambucusing ::nearbyintl; 16794684ddb6SLionel Sambucusing ::nextafterl; 16804684ddb6SLionel Sambucusing ::nexttowardl; 16814684ddb6SLionel Sambucusing ::remainderl; 16824684ddb6SLionel Sambucusing ::remquol; 16834684ddb6SLionel Sambucusing ::rintl; 16844684ddb6SLionel Sambucusing ::roundl; 16854684ddb6SLionel Sambucusing ::scalblnl; 16864684ddb6SLionel Sambucusing ::scalbnl; 16874684ddb6SLionel Sambucusing ::tgammal; 16884684ddb6SLionel Sambucusing ::truncl; 16894684ddb6SLionel Sambuc#endif // !_LIBCPP_MSVCRT 16904684ddb6SLionel Sambuc 16914684ddb6SLionel Sambuc#else 16924684ddb6SLionel Sambucusing ::lgamma; 16934684ddb6SLionel Sambucusing ::lgammaf; 16944684ddb6SLionel Sambuc#endif // __sun__ 16954684ddb6SLionel Sambuc_LIBCPP_END_NAMESPACE_STD 16964684ddb6SLionel Sambuc 16974684ddb6SLionel Sambuc#endif // _LIBCPP_CMATH 1698