math.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
  3. * See the copyright notice in the ACK home directory, in the file "Copyright".
  4. */
  5. /* $Header$ */
  6. /* some constants (Hart & Cheney) */
  7. #define M_PI 3.14159265358979323846264338327950288
  8. #define M_2PI 6.28318530717958647692528676655900576
  9. #define M_3PI_4 2.35619449019234492884698253745962716
  10. #define M_PI_2 1.57079632679489661923132169163975144
  11. #define M_3PI_8 1.17809724509617246442349126872981358
  12. #define M_PI_4 0.78539816339744830961566084581987572
  13. #define M_PI_8 0.39269908169872415480783042290993786
  14. #define M_1_PI 0.31830988618379067153776752674502872
  15. #define M_2_PI 0.63661977236758134307553505349005744
  16. #define M_4_PI 1.27323954473516268615107010698011488
  17. #define M_E 2.71828182845904523536028747135266250
  18. #define M_LOG2E 1.44269504088896340735992468100189213
  19. #define M_LOG10E 0.43429448190325182765112891891660508
  20. #define M_LN2 0.69314718055994530941723212145817657
  21. #define M_LN10 2.30258509299404568401799145468436421
  22. #define M_SQRT2 1.41421356237309504880168872420969808
  23. #define M_1_SQRT2 0.70710678118654752440084436210484904
  24. #define M_EULER 0.57721566490153286060651209008240243
  25. #ifndef __NO_DEFS
  26. extern double exp(), log(), log10(), pow(), sqrt();
  27. extern double fabs(), ceil(), floor();
  28. extern double gamma();
  29. extern double hypot(), cabs();
  30. extern double j0(), y0(), j1(), y1(), jn(), yn();
  31. extern double sin(), asin(), tan(), atan(), atan2(), cos(), acos();
  32. extern double sinh(), tanh(), cosh();
  33. #endif
  34. #define POLYNOM1(x, a) ((a)[1]*(x)+(a)[0])
  35. #define POLYNOM2(x, a) (POLYNOM1((x),(a)+1)*(x)+(a)[0])
  36. #define POLYNOM3(x, a) (POLYNOM2((x),(a)+1)*(x)+(a)[0])
  37. #define POLYNOM4(x, a) (POLYNOM3((x),(a)+1)*(x)+(a)[0])
  38. #define POLYNOM5(x, a) (POLYNOM4((x),(a)+1)*(x)+(a)[0])
  39. #define POLYNOM6(x, a) (POLYNOM5((x),(a)+1)*(x)+(a)[0])
  40. #define POLYNOM7(x, a) (POLYNOM6((x),(a)+1)*(x)+(a)[0])
  41. #define POLYNOM8(x, a) (POLYNOM7((x),(a)+1)*(x)+(a)[0])
  42. #define POLYNOM9(x, a) (POLYNOM8((x),(a)+1)*(x)+(a)[0])
  43. #define POLYNOM10(x, a) (POLYNOM9((x),(a)+1)*(x)+(a)[0])
  44. #define POLYNOM11(x, a) (POLYNOM10((x),(a)+1)*(x)+(a)[0])
  45. #define POLYNOM12(x, a) (POLYNOM11((x),(a)+1)*(x)+(a)[0])
  46. #define POLYNOM13(x, a) (POLYNOM12((x),(a)+1)*(x)+(a)[0])
  47. #ifdef vax
  48. #define M_MAX_D 1.701411834604692293e+38
  49. #define M_MIN_D 2.938735877055718770e-39
  50. #define M_DEXPLEN 8
  51. #endif
  52. #ifdef pdp
  53. #define M_MAX_D 1.701411834604692293e+38
  54. #define M_MIN_D 2.938735877055718770e-39
  55. #define M_DEXPLEN 8
  56. #endif
  57. #ifndef M_MAX_D
  58. #define M_MAX_D 8.988465674311578540e+307
  59. #define M_MIN_D 5.562684646268003458e-309
  60. #define M_DEXPLEN 11
  61. #endif
  62. #define M_DMAXEXP (1 << (M_DEXPLEN - 1) - 1)
  63. #define M_DMINEXP (-M_DMAXEXP)
  64. #define M_LN_MAX_D (M_LN2 * M_DMAXEXP)
  65. #define M_LN_MIN_D (M_LN2 * (M_DMINEXP - 1))
  66. #define HUGE M_MAX_D
  67. #define MAXDOUBLE M_MAX_D