math.h
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:7k
源码类别:

DVD

开发平台:

C/C++

  1. /* $Id$ */
  2. /* math.h: ANSI X3.159 1989 library header, section 4.5 */
  3. /* Copyright (C) Codemist Ltd. */
  4. /* Copyright (C) SGS-THOMSON Microelectronics Ltd. 1996 */
  5. #ifndef __math_h
  6. #define __math_h
  7. #ifdef __cplusplus
  8.   extern "C" {
  9. #endif
  10. #include <float.h>
  11. #define HUGE_VAL DBL_MAX
  12. extern double acos(double /*x*/);
  13. extern double asin(double /*x*/);
  14. extern double atan(double /*x*/);
  15. extern double atan2(double /*y*/, double /*x*/);
  16. extern double cos(double /*x*/);
  17. extern double sin(double /*x*/);
  18. extern double tan(double /*x*/);
  19. extern double cosh(double /*x*/);
  20. extern double sinh(double /*x*/);
  21. extern double tanh(double /*x*/);
  22. extern double exp(double /*x*/);
  23. extern double frexp(double /*value*/, int * /*exp*/);
  24. extern double ldexp(double /*x*/, int /*exp*/);
  25. extern double log(double /*x*/);
  26. extern double log10(double /*x*/);
  27. extern double modf(double /*value*/, double * /*iptr*/);
  28. extern double pow(double /*x*/, double /*y*/);
  29. extern double sqrt(double /*x*/);
  30. extern double ceil(double /*x*/);
  31. extern double fabs(double /*x*/);
  32. extern double floor(double /*d*/);
  33. extern double fmod(double /*x*/, double /*y*/);
  34. #ifdef __cplusplus
  35.   }
  36. #endif
  37. #ifdef __cplusplus
  38. extern "C++" {
  39.   inline long double acosl(long double _X)
  40.           {return (acos((double)_X)); }
  41.   inline long double asinl(long double _X)
  42.           {return (asin((double)_X)); }
  43.   inline long double atanl(long double _X)
  44.           {return (atan((double)_X)); }
  45.   inline long double atan2l(long double _X, long double _Y)
  46.           {return (atan2((double)_X, (double)_Y)); }
  47.   inline long double ceill(long double _X)
  48.           {return (ceil((double)_X)); }
  49.   inline long double cosl(long double _X)
  50.           {return (cos((double)_X)); }
  51.   inline long double coshl(long double _X)
  52.           {return (cosh((double)_X)); }
  53.   inline long double expl(long double _X)
  54.           {return (exp((double)_X)); }
  55.   inline long double fabsl(long double _X)
  56.           {return (fabs((double)_X)); }
  57.   inline long double floorl(long double _X)
  58.           {return (floor((double)_X)); }
  59.   inline long double fmodl(long double _X, long double _Y)
  60.           {return (fmod((double)_X, (double)_Y)); }
  61.   inline long double frexpl(long double _X, int *_Y)
  62.           {return (frexp((double)_X, _Y)); }
  63.   inline long double ldexpl(long double _X, int _Y)
  64.           {return (ldexp((double)_X, _Y)); }
  65.   inline long double logl(long double _X)
  66.           {return (log((double)_X)); }
  67.   inline long double log10l(long double _X)
  68.           {return (log10((double)_X)); }
  69.   inline long double modfl(long double _X, long double *_Y)
  70.           {double _Di, _Df = modf((double)_X, &_Di);
  71.           *_Y = (long double)_Di;
  72.           return (_Df); }
  73.   inline long double powl(long double _X, long double _Y)
  74.           {return (pow((double)_X, (double)_Y)); }
  75.   inline long double sinl(long double _X)
  76.           {return (sin((double)_X)); }
  77.   inline long double sinhl(long double _X)
  78.           {return (sinh((double)_X)); }
  79.   inline long double sqrtl(long double _X)
  80.           {return (sqrt((double)_X)); }
  81.   inline long double tanl(long double _X)
  82.           {return (tan((double)_X)); }
  83.   inline long double tanhl(long double _X)
  84.           {return (tanh((double)_X)); }
  85. }
  86. /* For C++, the user should not have to include mathf.h, so include it now */
  87. #include <mathf.h>
  88. extern "C++" {
  89.   inline float acos(float _X)
  90.           {return (acosf(_X)); }
  91.   inline float asin(float _X)
  92.           {return (asinf(_X)); }
  93.   inline float atan(float _X)
  94.           {return (atanf(_X)); }
  95.   inline float atan2(float _X, float _Y)
  96.           {return (atan2f(_X, _Y)); }
  97.   inline float ceil(float _X)
  98.           {return (ceilf(_X)); }
  99.   inline float cos(float _X)
  100.           {return (cosf(_X)); }
  101.   inline float cosh(float _X)
  102.           {return (coshf(_X)); }
  103.   inline float exp(float _X)
  104.           {return (expf(_X)); }
  105.   inline float fabs(float _X)
  106.           {return (fabsf(_X)); }
  107.   inline float floor(float _X)
  108.           {return (floorf(_X)); }
  109.   inline float fmod(float _X, float _Y)
  110.           {return (fmodf(_X, _Y)); }
  111.   inline float frexp(float _X, int *_Y)
  112.           {return (frexpf(_X, _Y)); }
  113.   inline float ldexp(float _X, int _Y)
  114.           {return (ldexpf(_X, _Y)); }
  115.   inline float log(float _X)
  116.           {return (logf(_X)); }
  117.   inline float log10(float _X)
  118.           {return (log10f(_X)); }
  119.   inline float modf(float _X, float *_Y)
  120.           {float _Di, _Df = modff(_X, &_Di);
  121.           *_Y = _Di;
  122.           return (_Df); }
  123.   inline float pow(float _X, int _Y)
  124.           {return (powf(_X, (float)_Y)); }
  125.   inline float pow(float _X, float _Y)
  126.           {return (powf(_X, _Y)); }
  127.   inline float sin(float _X)
  128.           {return (sinf(_X)); }
  129.   inline float sinh(float _X)
  130.           {return (sinhf(_X)); }
  131.   inline float sqrt(float _X)
  132.           {return (sqrtf(_X)); }
  133.   inline float tan(float _X)
  134.           {return (tanf(_X)); }
  135.   inline float tanh(float _X)
  136.           {return (tanhf(_X)); }
  137.   
  138.   inline double pow(double _X, int _Y)
  139.           {return pow(_X, double(_Y));}
  140.   inline float abs(float _X)
  141.           {return (float) fabsf(_X); }
  142.   inline double abs(double _X) 
  143.           {return fabs(_X); }
  144.   inline long double abs(long double _X)
  145.           {return fabsl(_X); }
  146.   
  147.   inline long double acos(long double _X)
  148.           {return (acosl(_X)); }
  149.   inline long double asin(long double _X)
  150.           {return (asinl(_X)); }
  151.   inline long double atan(long double _X)
  152.           {return (atanl(_X)); }
  153.   inline long double atan2(long double _X, long double _Y)
  154.           {return (atan2l(_X, _Y)); }
  155.   inline long double ceil(long double _X)
  156.           {return (ceill(_X)); }
  157.   inline long double cos(long double _X)
  158.           {return (cosl(_X)); }
  159.   inline long double cosh(long double _X)
  160.           {return (coshl(_X)); }
  161.   inline long double exp(long double _X)
  162.           {return (expl(_X)); }
  163.   inline long double fabs(long double _X)
  164.           {return (fabsl(_X)); }
  165.   inline long double floor(long double _X)
  166.           {return (floorl(_X)); }
  167.   inline long double fmod(long double _X, long double _Y)
  168.           {return (fmodl(_X, _Y)); }
  169.   inline long double frexp(long double _X, int *_Y)
  170.           {return (frexpl(_X, _Y)); }
  171.   inline long double ldexp(long double _X, int _Y)
  172.           {return (ldexpl(_X, _Y)); }
  173.   inline long double log(long double _X)
  174.           {return (logl(_X)); }
  175.   inline long double log10(long double _X)
  176.           {return (log10l(_X)); }
  177.   inline long double modf(long double _X, long double *_Y)
  178.           {long double _Di, _Df = modfl(_X, &_Di);
  179.           *_Y = _Di;
  180.           return (_Df); }
  181.   inline long double pow(long double _X, int _Y)
  182.           {return (powl(_X, (long double)_Y)); }
  183.   inline long double pow(long double _X, long double _Y)
  184.           {return (powl(_X, _Y)); }
  185.   inline long double sin(long double _X)
  186.           {return (sinl(_X)); }
  187.   inline long double sinh(long double _X)
  188.           {return (sinhl(_X)); }
  189.   inline long double sqrt(long double _X)
  190.           {return (sqrtl(_X)); }
  191.   inline long double tan(long double _X)
  192.           {return (tanl(_X)); }
  193.   inline long double tanh(long double _X)
  194.           {return (tanhl(_X)); }
  195. }
  196. #endif
  197. #endif
  198. /* end of math.h */