home *** CD-ROM | disk | FTP | other *** search
/ Total Destruction / Total_Destruction.iso / addons / Lccwin32.exe / Lccwin32 / lccpub / include / MATH.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-14  |  3.1 KB  |  119 lines

  1. /* math.h -- Definitions for the math floating point package.  */
  2.  
  3. #ifndef  _MATH_H_INCLUDED
  4. #define  _MATH_H_INCLUDED
  5. #ifndef HUGE_VAL
  6.  
  7. #define HUGE_VAL (*HUGE_dll)
  8. extern double *HUGE_dll;
  9.  
  10. #endif /* ! defined (HUGE_VAL) */
  11. struct _complex {
  12.     double x,y;
  13. };
  14. #define complex _complex
  15.  
  16. /* Reentrant ANSI C functions.  */
  17.  
  18. extern double atan(double);
  19. extern double cos(double);
  20. extern double sin(double);
  21. extern double tan(double);
  22. extern double tanh(double);
  23. extern double frexp(double, int *);
  24. extern double modf(double, double *);
  25. extern double ceil(double);
  26. extern double fabs(double);
  27. extern double floor(double);
  28.  
  29. extern double acos (double);
  30. extern double asin (double);
  31. extern double atan2 (double, double);
  32. extern double cosh (double);
  33. extern double sinh (double);
  34. extern double exp(double);
  35. extern double ldexp(double, int);
  36. extern double log(double);
  37. extern double log10(double);
  38. extern double pow(double, double);
  39. extern double sqrt(double);
  40. extern double fmod(double, double);
  41.  
  42.  
  43. /* Non ANSI double precision functions.  */
  44.  
  45. extern double infinity(void);
  46. extern int isnan (double);
  47. extern int finite (double);
  48. extern double copysign(double, double);
  49.  
  50. extern double asinh (double);
  51. extern double nextafter (double, double);
  52.  
  53. extern double acosh (double);
  54. extern double atanh(double);
  55. extern double lgamma (double);
  56. extern double y0 (double);
  57. extern double y1 (double);
  58. extern double yn(int, double);
  59. extern double j0(double);
  60. extern double j1 (double);
  61. extern double jn (int, double);
  62. #define log2(x) (log (x) / M_LOG2_E)
  63.  
  64. extern double hypot (double, double);
  65. #define _hypot hypot
  66.  
  67. extern double cabs(struct complex);
  68.  
  69.  
  70. /* The exception structure passed to the matherr routine.  */
  71.  
  72. struct exception 
  73. {
  74.   int type;
  75.   char *name;
  76.   double arg1;
  77.   double arg2;
  78.   double retval;
  79.   int err;
  80. };
  81.  
  82. extern int matherr (struct exception *e);
  83.  
  84. /* Values for the type field of struct exception.  */
  85.  
  86. #define DOMAIN 1
  87. #define SING 2
  88. #define OVERFLOW 3
  89. #define UNDERFLOW 4
  90. #define TLOSS 5
  91. #define PLOSS 6
  92.  
  93. /* Useful constants.  */
  94.  
  95. #define M_E        2.7182818284590452354
  96. #define M_LOG2E        1.4426950408889634074
  97. #define M_LOG10E    0.43429448190325182765
  98. #define M_LN2        0.69314718055994530942
  99. #define M_LN10        2.30258509299404568402
  100. #define M_PI        3.14159265358979323846
  101. #define M_TWOPI         (M_PI * 2.0)
  102. #define M_PI_2        1.57079632679489661923
  103. #define M_PI_4        0.78539816339744830962
  104. #define M_3PI_4        2.3561944901923448370E0
  105. #define M_SQRTPI        1.77245385090551602792981
  106. #define M_1_PI        0.31830988618379067154
  107. #define M_2_PI        0.63661977236758134308
  108. #define M_2_SQRTPI    1.12837916709551257390
  109. #define M_SQRT2        1.41421356237309504880
  110. #define M_SQRT1_2    0.70710678118654752440
  111. #define M_LN2LO         1.9082149292705877000E-10
  112. #define M_LN2HI         6.9314718036912381649E-1
  113. #define M_SQRT3       1.73205080756887719000
  114. #define M_IVLN10        0.43429448190325182765 /* 1 / log(10) */
  115. #define M_LOG2_E        0.693147180559945309417
  116. #define M_INVLN2        1.4426950408889633870E0  /* 1 / log(2) */
  117.  
  118. #endif /* _MATH_H_ */
  119.