[C++]
[reactos.git] / reactos / include / c++ / cmath
index b631fe4..18a90de 100644 (file)
@@ -1,6 +1,7 @@
 //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