📄 std_cmath.h
字号:
frexp(float __x, int* __exp) { return ::frexp(__x, __exp); }#endif#if _GLIBCPP_HAVE_FREXPL inline long double frexp(long double __x, int* __exp) { return ::frexpl(__x, __exp); }#else inline long double frexp(long double __x, int* __exp) { return ::frexp(static_cast<double>(__x), __exp); }#endif using ::ldexp;#if _GLIBCPP_HAVE_LDEXPF inline float ldexp(float __x, int __exp) { return __gnu_cxx::__c99_binding::ldexpf(__x, __exp); }#else inline float ldexp(float __x, int __exp) { return ::ldexp(static_cast<double>(__x), __exp); }#endif#if _GLIBCPP_HAVE_LDEXPL inline long double ldexp(long double __x, int __exp) { return ::ldexpl(__x, __exp); }#else inline long double ldexp(long double __x, int __exp) { return ::ldexp(static_cast<double>(__x), __exp); }#endif using ::log;#if _GLIBCPP_HAVE_LOGF inline float log(float __x) { return __gnu_cxx::__c99_binding::logf(__x); }#else inline float log(float __x) { return ::log(static_cast<double>(__x)); }#endif#if _GLIBCPP_HAVE_LOGL inline long double log(long double __x) { return ::logl(__x); }#else inline long double log(long double __x) { return ::log(static_cast<double>(__x)); }#endif using ::log10;#if _GLIBCPP_HAVE_LOG10F inline float log10(float __x) { return __gnu_cxx::__c99_binding::log10f(__x); }#else inline float log10(float __x) { return ::log10(static_cast<double>(__x)); }#endif#if _GLIBCPP_HAVE_LOG10L inline long double log10(long double __x) { return ::log10l(__x); }#else inline long double log10(long double __x) { return ::log10(static_cast<double>(__x)); }#endif using ::modf;#if _GLIBCPP_HAVE_MODFF inline float modf(float __x, float* __iptr) { return __gnu_cxx::__c99_binding::modff(__x, __iptr); }#else inline float modf(float __x, float* __iptr) { double __tmp; double __res = ::modf(static_cast<double>(__x), &__tmp); *__iptr = static_cast<float>(__tmp); return __res; }#endif#if _GLIBCPP_HAVE_MODFL inline long double modf(long double __x, long double* __iptr) { return ::modfl(__x, __iptr); }#else inline long double modf(long double __x, long double* __iptr) { double __tmp; double __res = ::modf(static_cast<double>(__x), &__tmp); * __iptr = static_cast<long double>(__tmp); return __res; }#endif template<typename _Tp> inline _Tp __pow_helper(_Tp __x, int __n) { return __n < 0 ? _Tp(1)/__cmath_power(__x, -__n) : __cmath_power(__x, __n); } using ::pow;#if _GLIBCPP_HAVE_POWF inline float pow(float __x, float __y) { return __gnu_cxx::__c99_binding::powf(__x, __y); }#else inline float pow(float __x, float __y) { return ::pow(static_cast<double>(__x), static_cast<double>(__y)); }#endif#if _GLIBCPP_HAVE_POWL inline long double pow(long double __x, long double __y) { return ::powl(__x, __y); }#else inline long double pow(long double __x, long double __y) { return ::pow(static_cast<double>(__x), static_cast<double>(__y)); }#endif inline double pow(double __x, int __i) { return __pow_helper(__x, __i); } inline float pow(float __x, int __n) { return __pow_helper(__x, __n); } inline long double pow(long double __x, int __n) { return __pow_helper(__x, __n); } using ::sin; inline float sin(float __x) { return __builtin_sinf(__x); } inline long double sin(long double __x) { return __builtin_sinl(__x); } using ::sinh;#if _GLIBCPP_HAVE_SINHF inline float sinh(float __x) { return __gnu_cxx::__c99_binding::sinhf(__x); }#else inline float sinh(float __x) { return ::sinh(static_cast<double>(__x)); }#endif#if _GLIBCPP_HAVE_SINHL inline long double sinh(long double __x) { return ::sinhl(__x); }#else inline long double sinh(long double __x) { return ::sinh(static_cast<double>(__x)); }#endif using ::sqrt; inline float sqrt(float __x) { return __builtin_sqrtf(__x); } inline long double sqrt(long double __x) { return __builtin_sqrtl(__x); } using ::tan;#if _GLIBCPP_HAVE_TANF inline float tan(float __x) { return __gnu_cxx::__c99_binding::tanf(__x); }#else inline float tan(float __x) { return ::tan(static_cast<double>(__x)); }#endif#if _GLIBCPP_HAVE_TANL inline long double tan(long double __x) { return ::tanl(__x); }#else inline long double tan(long double __x) { return ::tan(static_cast<double>(__x)); }#endif using ::tanh;#if _GLIBCPP_HAVE_TANHF inline float tanh(float __x) { return __gnu_cxx::__c99_binding::tanhf(__x); }#else inline float tanh(float __x) { return ::tanh(static_cast<double>(__x)); }#endif#if _GLIBCPP_HAVE_TANHL inline long double tanh(long double __x) { return ::tanhl(__x); }#else inline long double tanh(long double __x) { return ::tanh(static_cast<double>(__x)); }#endif} #if _GLIBCPP_USE_C99#if !_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC// These are possible macros imported from C99-land. For strict// conformance, remove possible C99-injected names from the global// namespace, and sequester them in the __gnu_cxx extension namespace. namespace __gnu_cxx{ template<typename _Tp> int __capture_fpclassify(_Tp __f) { return fpclassify(__f); } template<typename _Tp> int __capture_isfinite(_Tp __f) { return isfinite(__f); } template<typename _Tp> int __capture_isinf(_Tp __f) { return isinf(__f); } template<typename _Tp> int __capture_isnan(_Tp __f) { return isnan(__f); } template<typename _Tp> int __capture_isnormal(_Tp __f) { return isnormal(__f); } template<typename _Tp> int __capture_signbit(_Tp __f) { return signbit(__f); } template<typename _Tp> int __capture_isgreater(_Tp __f1, _Tp __f2) { return isgreater(__f1, __f2); } template<typename _Tp> int __capture_isgreaterequal(_Tp __f1, _Tp __f2) { return isgreaterequal(__f1, __f2); } template<typename _Tp> int __capture_isless(_Tp __f1, _Tp __f2) { return isless(__f1, __f2); } template<typename _Tp> int __capture_islessequal(_Tp __f1, _Tp __f2) { return islessequal(__f1, __f2); } template<typename _Tp> int __capture_islessgreater(_Tp __f1, _Tp __f2) { return islessgreater(__f1, __f2); } template<typename _Tp> int __capture_isunordered(_Tp __f1, _Tp __f2) { return isunordered(__f1, __f2); }} #endif /* _GLIBCPP_USE_C99_FP_MACROS_DYNAMIC */#endif#undef fpclassify#undef isfinite#undef isinf#undef isnan#undef isnormal#undef signbit#undef isgreater#undef isgreaterequal#undef isless#undef islessequal#undef islessgreater#undef isunordered#if _GLIBCPP_USE_C99#if !_GLIBCPP_USE_C99_FP_MACROS_DYNAMICnamespace __gnu_cxx{ template<typename _Tp> int fpclassify(_Tp __f) { return __capture_fpclassify(__f); } template<typename _Tp> int isfinite(_Tp __f) { return __capture_isfinite(__f); } template<typename _Tp> int isinf(_Tp __f) { return __capture_isinf(__f); } template<typename _Tp> int isnan(_Tp __f) { return __capture_isnan(__f); } template<typename _Tp> int isnormal(_Tp __f) { return __capture_isnormal(__f); } template<typename _Tp> int signbit(_Tp __f) { return __capture_signbit(__f); } template<typename _Tp> int isgreater(_Tp __f1, _Tp __f2) { return __capture_isgreater(__f1, __f2); } template<typename _Tp> int isgreaterequal(_Tp __f1, _Tp __f2) { return __capture_isgreaterequal(__f1, __f2); } template<typename _Tp> int isless(_Tp __f1, _Tp __f2) { return __capture_isless(__f1, __f2); } template<typename _Tp> int islessequal(_Tp __f1, _Tp __f2) { return __capture_islessequal(__f1, __f2); } template<typename _Tp> int islessgreater(_Tp __f1, _Tp __f2) { return __capture_islessgreater(__f1, __f2); } template<typename _Tp> int isunordered(_Tp __f1, _Tp __f2) { return __capture_isunordered(__f1, __f2); }}namespace std{ using __gnu_cxx::fpclassify; using __gnu_cxx::isfinite; using __gnu_cxx::isinf; using __gnu_cxx::isnan; using __gnu_cxx::isnormal; using __gnu_cxx::signbit; using __gnu_cxx::isgreater; using __gnu_cxx::isgreaterequal; using __gnu_cxx::isless; using __gnu_cxx::islessequal; using __gnu_cxx::islessgreater; using __gnu_cxx::isunordered;}#endif /* _GLIBCPP_USE_C99_FP_MACROS_DYNAMIC */#endif #ifdef _GLIBCPP_NO_TEMPLATE_EXPORT# define export# include <bits/cmath.tcc>#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -