Pristine Ack-5.5
[Ack-5.5.git] / include / _tail_cc / math.h
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
6 /* $Id: math.h,v 1.9 1994/06/24 11:05:23 ceriel Exp $ */
7
8 #ifndef _MATH_H
9 #define _MATH_H
10
11 /* some constants (Hart & Cheney) */
12
13 #define M_PI             3.14159265358979323846264338327950288
14 #define M_2PI            6.28318530717958647692528676655900576
15 #define M_3PI_4          2.35619449019234492884698253745962716
16 #define M_PI_2           1.57079632679489661923132169163975144
17 #define M_3PI_8          1.17809724509617246442349126872981358
18 #define M_PI_4           0.78539816339744830961566084581987572
19 #define M_PI_8           0.39269908169872415480783042290993786
20 #define M_1_PI           0.31830988618379067153776752674502872
21 #define M_2_PI           0.63661977236758134307553505349005744
22 #define M_4_PI           1.27323954473516268615107010698011488
23 #define M_E              2.71828182845904523536028747135266250
24 #define M_LOG2E          1.44269504088896340735992468100189213
25 #define M_LOG10E         0.43429448190325182765112891891660508
26 #define M_LN2            0.69314718055994530941723212145817657
27 #define M_LN10           2.30258509299404568401799145468436421
28 #define M_SQRT2          1.41421356237309504880168872420969808
29 #define M_1_SQRT2        0.70710678118654752440084436210484904
30 #define M_EULER          0.57721566490153286060651209008240243
31
32 #ifndef __NO_DEFS
33 extern double exp(), log(), log10(), pow(), sqrt();
34 extern double fabs(), ceil(), floor();
35 extern double gamma();
36 extern double hypot(), cabs();
37 extern double j0(), y0(), j1(), y1(), jn(), yn();
38 extern double sin(), asin(), tan(), atan(), atan2(), cos(), acos();
39 extern double sinh(), tanh(), cosh();
40 #endif
41
42 #define POLYNOM1(x, a)  ((a)[1]*(x)+(a)[0])
43 #define POLYNOM2(x, a)  (POLYNOM1((x),(a)+1)*(x)+(a)[0])
44 #define POLYNOM3(x, a)  (POLYNOM2((x),(a)+1)*(x)+(a)[0])
45 #define POLYNOM4(x, a)  (POLYNOM3((x),(a)+1)*(x)+(a)[0])
46 #define POLYNOM5(x, a)  (POLYNOM4((x),(a)+1)*(x)+(a)[0])
47 #define POLYNOM6(x, a)  (POLYNOM5((x),(a)+1)*(x)+(a)[0])
48 #define POLYNOM7(x, a)  (POLYNOM6((x),(a)+1)*(x)+(a)[0])
49 #define POLYNOM8(x, a)  (POLYNOM7((x),(a)+1)*(x)+(a)[0])
50 #define POLYNOM9(x, a)  (POLYNOM8((x),(a)+1)*(x)+(a)[0])
51 #define POLYNOM10(x, a) (POLYNOM9((x),(a)+1)*(x)+(a)[0])
52 #define POLYNOM11(x, a) (POLYNOM10((x),(a)+1)*(x)+(a)[0])
53 #define POLYNOM12(x, a) (POLYNOM11((x),(a)+1)*(x)+(a)[0])
54 #define POLYNOM13(x, a) (POLYNOM12((x),(a)+1)*(x)+(a)[0])
55
56 #ifdef __vax
57 #define M_MAX_D          1.701411834604692293e+38
58 #define M_MIN_D          2.938735877055718770e-39
59 #define M_DEXPLEN        8
60 #endif
61
62 #ifdef __pdp
63 #define M_MAX_D          1.701411834604692293e+38
64 #define M_MIN_D          2.938735877055718770e-39
65 #define M_DEXPLEN        8
66 #endif
67
68 #ifndef M_MAX_D
69 #define M_MAX_D          1.7976931348623157e+308
70 #define M_MIN_D          2.2250738585072014e-308
71 #define M_DEXPLEN        11
72 #endif
73 #define M_DMAXEXP        ((1 << (M_DEXPLEN - 1)) - 1)
74 #define M_DMINEXP        (-M_DMAXEXP)
75 #define M_LN_MAX_D       (M_LN2 * M_DMAXEXP)
76 #define M_LN_MIN_D       (M_LN2 * (M_DMINEXP - 1))
77
78 #define HUGE            M_MAX_D
79 #define MAXDOUBLE       M_MAX_D
80
81 #endif /* _MATH_H */