//Standard C++ math declarations\r
\r
#pragma once\r
+#define _CMATH_\r
\r
#include <math.h>\r
\r
#undef tan\r
#undef tanh\r
\r
-namespace std\r
-{\r
- // Forward declaration of a helper function. This really should be\r
- // an `exported' forward declaration.\r
- template<typename _Tp>\r
- _Tp __cmath_power(_Tp, unsigned int);\r
-\r
- template<typename _Tp>\r
- inline _Tp\r
- __pow_helper(_Tp __x, int __n)\r
- {\r
- return __n < 0\r
- ? _Tp(1)/__cmath_power(__x, -__n)\r
- : __cmath_power(__x, __n);\r
- }\r
-\r
- inline double\r
- abs(double __x)\r
- { return fabs(__x); }\r
-\r
- inline float\r
- abs(float __x)\r
- { return fabsf(__x); }\r
-\r
- inline long double\r
- abs(long double __x)\r
- { return fabsl(__x); }\r
+inline double\r
+abs(double __x)\r
+{ return fabs(__x); }\r
\r
- using ::acos;\r
+inline float\r
+abs(float __x)\r
+{ return fabsf(__x); }\r
\r
- inline float\r
- acos(float __x)\r
- { return acosf(__x); }\r
+inline long double\r
+abs(long double __x)\r
+{ return fabsl(__x); }\r
\r
- inline long double\r
- acos(long double __x)\r
- { return acosl(__x); }\r
+inline float\r
+acos(float __x)\r
+{ return acosf(__x); }\r
\r
- using ::asin;\r
+inline long double\r
+acos(long double __x)\r
+{ return acosl(__x); }\r
\r
- inline float\r
- asin(float __x)\r
- { return asinf(__x); }\r
+inline float\r
+asin(float __x)\r
+{ return asinf(__x); }\r
\r
- inline long double\r
- asin(long double __x)\r
- { return asinl(__x); }\r
+inline long double\r
+asin(long double __x)\r
+{ return asinl(__x); }\r
\r
- using ::atan;\r
+inline float\r
+atan(float __x)\r
+{ return atanf(__x); }\r
\r
- inline float\r
- atan(float __x)\r
- { return atanf(__x); }\r
+inline long double\r
+atan(long double __x)\r
+{ return atanl(__x); }\r
\r
- inline long double\r
- atan(long double __x)\r
- { return atanl(__x); }\r
+inline float\r
+atan2(float __y, float __x)\r
+{ return atan2f(__y, __x); }\r
\r
- using ::atan2;\r
+inline long double\r
+atan2(long double __y, long double __x)\r
+{ return atan2l(__y, __x); }\r
\r
- inline float\r
- atan2(float __y, float __x)\r
- { return atan2f(__y, __x); }\r
+inline float\r
+ceil(float __x)\r
+{ return ceilf(__x); }\r
\r
- inline long double\r
- atan2(long double __y, long double __x)\r
- { return atan2l(__y, __x); }\r
+inline long double\r
+ceil(long double __x)\r
+{ return ceill(__x); }\r
\r
- using ::ceil;\r
+inline float\r
+cos(float __x)\r
+{ return cosf(__x); }\r
\r
- inline float\r
- ceil(float __x)\r
- { return ceilf(__x); }\r
+inline long double\r
+cos(long double __x)\r
+{ return cosl(__x); }\r
\r
- inline long double\r
- ceil(long double __x)\r
- { return ceill(__x); }\r
+inline float\r
+cosh(float __x)\r
+{ return coshf(__x); }\r
\r
- using ::cos;\r
+inline long double\r
+cosh(long double __x)\r
+{ return coshl(__x); }\r
\r
- inline float\r
- cos(float __x)\r
- { return cosf(__x); }\r
+inline float\r
+exp(float __x)\r
+{ return expf(__x); }\r
\r
- inline long double\r
- cos(long double __x)\r
- { return cosl(__x); }\r
+inline long double\r
+exp(long double __x)\r
+{ return expl(__x); }\r
\r
- using ::cosh;\r
+inline float\r
+fabs(float __x)\r
+{ return fabsf(__x); }\r
\r
- inline float\r
- cosh(float __x)\r
- { return coshf(__x); }\r
+inline long double\r
+fabs(long double __x)\r
+{ return fabsl(__x); }\r
\r
- inline long double\r
- cosh(long double __x)\r
- { return coshl(__x); }\r
+inline float\r
+floor(float __x)\r
+{ return floorf(__x); }\r
\r
- using ::exp;\r
+inline long double\r
+floor(long double __x)\r
+{ return floorl(__x); }\r
\r
- inline float\r
- exp(float __x)\r
- { return expf(__x); }\r
+inline float\r
+fmod(float __x, float __y)\r
+{ return fmodf(__x, __y); }\r
\r
- inline long double\r
- exp(long double __x)\r
- { return expl(__x); }\r
+inline long double\r
+fmod(long double __x, long double __y)\r
+{ return fmodl(__x, __y); }\r
\r
- using ::fabs;\r
+inline float\r
+frexp(float __x, int* __exp)\r
+{ return frexpf(__x, __exp); }\r
\r
- inline float\r
- fabs(float __x)\r
- { return fabsf(__x); }\r
+inline long double\r
+frexp(long double __x, int* __exp)\r
+{ return frexpl(__x, __exp); }\r
\r
- inline long double\r
- fabs(long double __x)\r
- { return fabsl(__x); }\r
+inline float\r
+ldexp(float __x, int __exp)\r
+{ return ldexpf(__x, __exp); }\r
\r
- using ::floor;\r
+inline long double\r
+ldexp(long double __x, int __exp)\r
+{ return ldexpl(__x, __exp); }\r
\r
- inline float\r
- floor(float __x)\r
- { return floorf(__x); }\r
+inline float\r
+log(float __x)\r
+{ return logf(__x); }\r
\r
- inline long double\r
- floor(long double __x)\r
- { return floorl(__x); }\r
+inline long double\r
+log(long double __x)\r
+{ return logl(__x); }\r
\r
- using ::fmod;\r
+inline float\r
+log10(float __x)\r
+{ return log10f(__x); }\r
\r
- inline float\r
- fmod(float __x, float __y)\r
- { return fmodf(__x, __y); }\r
+inline long double\r
+log10(long double __x)\r
+{ return log10l(__x); }\r
\r
- inline long double\r
- fmod(long double __x, long double __y)\r
- { return fmodl(__x, __y); }\r
+inline float\r
+modf(float __x, float* __iptr)\r
+{ return modff(__x, __iptr); }\r
\r
- using ::frexp;\r
+inline long double\r
+modf(long double __x, long double* __iptr)\r
+{ return modfl(__x, __iptr); }\r
\r
- inline float\r
- frexp(float __x, int* __exp)\r
- { return frexpf(__x, __exp); }\r
+inline float\r
+pow(float __x, float __y)\r
+{ return powf(__x, __y); }\r
\r
- inline long double\r
- frexp(long double __x, int* __exp)\r
- { return frexpl(__x, __exp); }\r
+inline long double\r
+pow(long double __x, long double __y)\r
+{ return powl(__x, __y); }\r
\r
- using ::ldexp;\r
+inline double\r
+pow(double __x, int __i)\r
+{ return pow(__x, static_cast<double>(__i)); }\r
\r
- inline float\r
- ldexp(float __x, int __exp)\r
- { return ldexpf(__x, __exp); }\r
+inline float\r
+pow(float __x, int __n)\r
+{ return powf(__x, static_cast<float>(__n)); }\r
\r
- inline long double\r
- ldexp(long double __x, int __exp)\r
- { return ldexpl(__x, __exp); }\r
+inline long double\r
+pow(long double __x, int __n)\r
+{ return powl(__x, static_cast<long double>(__n)); }\r
\r
- using ::log;\r
-\r
- inline float\r
- log(float __x)\r
- { return logf(__x); }\r
-\r
- inline long double\r
- log(long double __x)\r
- { return logl(__x); }\r
-\r
- using ::log10;\r
-\r
- inline float\r
- log10(float __x)\r
- { return log10f(__x); }\r
-\r
- inline long double\r
- log10(long double __x)\r
- { return log10l(__x); }\r
+inline float\r
+sin(float __x)\r
+{ return sinf(__x); }\r
\r
- using ::modf;\r
+inline long double\r
+sin(long double __x)\r
+{ return sinl(__x); }\r
\r
- inline float\r
- modf(float __x, float* __iptr)\r
- { return modff(__x, __iptr); }\r
+inline float\r
+sinh(float __x)\r
+{ return sinhf(__x); }\r
\r
- inline long double\r
- modf(long double __x, long double* __iptr)\r
- { return modfl(__x, __iptr); }\r
+inline long double\r
+sinh(long double __x)\r
+{ return sinhl(__x); }\r
\r
- using ::pow;\r
+inline float\r
+sqrt(float __x)\r
+{ return sqrtf(__x); }\r
\r
- inline float\r
- pow(float __x, float __y)\r
- { return powf(__x, __y); }\r
+inline long double\r
+sqrt(long double __x)\r
+{ return sqrtl(__x); }\r
\r
- inline long double\r
- pow(long double __x, long double __y)\r
- { return powl(__x, __y); }\r
+inline float\r
+tan(float __x)\r
+{ return tanf(__x); }\r
\r
- inline double\r
- pow(double __x, int __i)\r
- { return pow(__x, static_cast<double>(__i)); }\r
+inline long double\r
+tan(long double __x)\r
+{ return tanl(__x); }\r
\r
- inline float\r
- pow(float __x, int __n)\r
- { return powf(__x, static_cast<float>(__n)); }\r
+inline float\r
+tanh(float __x)\r
+{ return tanhf(__x); }\r
\r
- inline long double\r
- pow(long double __x, int __n)\r
- { return powl(__x, static_cast<long double>(__n)); }\r
+inline long double\r
+tanh(long double __x)\r
+{ return tanhl(__x); }\r
\r
+namespace std\r
+{\r
+ using ::abs;\r
+ using ::acos;\r
+ using ::asin;\r
+ using ::atan;\r
+ using ::atan2;\r
+ using ::ceil;\r
+ using ::cos;\r
+ using ::cosh;\r
+ using ::exp;\r
+ using ::fabs;\r
+ using ::floor;\r
+ using ::fmod;\r
+ using ::frexp;\r
+ using ::ldexp;\r
+ using ::log;\r
+ using ::log10;\r
+ using ::modf;\r
+ using ::pow;\r
using ::sin;\r
-\r
- inline float\r
- sin(float __x)\r
- { return sinf(__x); }\r
-\r
- inline long double\r
- sin(long double __x)\r
- { return sinl(__x); }\r
-\r
using ::sinh;\r
-\r
- inline float\r
- sinh(float __x)\r
- { return sinhf(__x); }\r
-\r
- inline long double\r
- sinh(long double __x)\r
- { return sinhl(__x); }\r
-\r
using ::sqrt;\r
-\r
- inline float\r
- sqrt(float __x)\r
- { return sqrtf(__x); }\r
-\r
- inline long double\r
- sqrt(long double __x)\r
- { return sqrtl(__x); }\r
-\r
using ::tan;\r
-\r
- inline float\r
- tan(float __x)\r
- { return tanf(__x); }\r
-\r
- inline long double\r
- tan(long double __x)\r
- { return tanl(__x); }\r
-\r
using ::tanh;\r
-\r
- inline float\r
- tanh(float __x)\r
- { return tanhf(__x); }\r
-\r
- inline long double\r
- tanh(long double __x)\r
- { return tanhl(__x); }\r
}\r