home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / c / adev1120.lha / include / math.h < prev    next >
C/C++ Source or Header  |  1993-05-15  |  2KB  |  88 lines

  1. #ifndef FPEUND
  2. /*
  3.  *
  4.  * Error codes generated by basic arithmetic operations (+ - * /)
  5.  *
  6.  */
  7.  
  8. #define FPEUND 1    /* underflow */
  9. #define FPEOVF 2    /* overflow */
  10. #define FPEZDV 3    /* zero divisor */
  11. #define FPENAN 4    /* not a number (invalid operation) */
  12. #define FPECOM 5    /* not comparable */
  13.  
  14. #define FPEFMT 6    /* floating point format error in ASCFLT */
  15. #define FPEINT 7    /* number too large or small to convert to int. */
  16. #define FPESQRT 8    /* tried to take the square root of negative # */
  17. #define FPETAN 9    /* TANgent of 90 degrees attempted */
  18.  
  19. /*
  20.  *
  21.  * Constants
  22.  *
  23.  */
  24.  
  25. #define PI   3.14159265358979323846
  26. #define PID2 1.57079632679489661923    /* PI divided by 2 */
  27. #define PID4 0.78539816339744830962    /* PI divided by 4 */
  28. #define I_PI 0.31830988618379067154    /* Inverse of PI */
  29. #define I_PID2 0.63661977236758134308    /* Inverse of PID2 */
  30.  
  31. #define HUGE 1.797693e308        /* huge value */
  32. #ifndef HUGE_VAL
  33. #define HUGE_VAL 1.797693e308        /* huge value */
  34. #endif
  35. #define TINY 2.2e-308            /* tiny value */
  36. #define LOGHUGE 709.778            /* natural log of huge value */
  37. #define LOGTINY -708.396        /* natural log of tiny value */
  38.  
  39. /*
  40.  *
  41.  * External declarations
  42.  *
  43.  */
  44.  
  45. extern int _FPERR;    /* floating point arithmetic error */
  46. extern int errno;    /* UNIX error code */
  47.  
  48. extern double acos (double);
  49. extern double asin (double);
  50. extern double atan (double);
  51. extern double atan2 (double, double);
  52. extern double atof (char *);
  53. extern double ceil (double);
  54. extern double cos (double);
  55. extern double cot (double);
  56. extern char *ecvt (double, int, int *, int *);
  57. extern double except (int, char *, double, double, double);
  58. extern double exp (double);
  59. extern double fabs (double);
  60. extern char *fcvt (double, int, int *, int *);
  61. extern double floor (double);
  62. extern double fmod (double, double);
  63. extern double frexp (double, int *);
  64. extern double ldexp (double, int);
  65. extern double log (double);
  66. extern double log10 (double);
  67. extern double modf (double, double *);
  68. extern int rand (void);
  69. extern double sin (double);
  70. extern double sqrt (double);
  71. extern void srand (unsigned);
  72. extern double tan (double);
  73.  
  74. /*
  75.  *
  76.  * Macros
  77.  *
  78.  */
  79.  
  80. #ifndef abs
  81. #define abs(x) ((x)<0?-(x):(x))
  82. #endif
  83. #ifndef max
  84. #define max(a,b) ((a)>(b)?(a):(b))
  85. #define min(a,b) ((a)<=(b)?(a):(b))
  86. #endif
  87. #endif
  88.