Pristine Ack-5.5
[Ack-5.5.git] / lang / m2 / libm2 / Mathlib.def
1 DEFINITION MODULE Mathlib;
2 (*
3   Module:       Mathematical functions
4   Author:       Ceriel J.H. Jacobs
5   Version:      $Id: Mathlib.def,v 1.5 1994/06/24 12:49:01 ceriel Exp $
6 *)
7
8   (* Some mathematical constants: *)
9
10   CONST
11         (* From:        Computer Approximations
12                         Hart, Cheney, e.a.
13                         The SIAM Series in Applied Mathematics
14                         John Wiley & Sons, INC. New York London Sydney, 1968
15         *)
16
17         pi      = 3.14159265358979323846264338327950288;
18         twicepi = 6.28318530717958647692528676655900576;
19         halfpi  = 1.57079632679489661923132169163975144;
20         quartpi = 0.78539816339744830961566084581987572;
21         e       = 2.71828182845904523536028747135266250;
22         ln2     = 0.69314718055994530941723212145817657;
23         ln10    = 2.30258509299404568401799145468436421;
24
25         longpi          = 3.14159265358979323846264338327950288D;
26         longtwicepi     = 6.28318530717958647692528676655900576D;
27         longhalfpi      = 1.57079632679489661923132169163975144D;
28         longquartpi     = 0.78539816339744830961566084581987572D;
29         longe           = 2.71828182845904523536028747135266250D;
30         longln2         = 0.69314718055994530941723212145817657D;
31         longln10        = 2.30258509299404568401799145468436421D;
32
33   (* basic functions *)
34
35   PROCEDURE pow(x: REAL; i: INTEGER): REAL;
36
37   PROCEDURE longpow(x: LONGREAL; i: INTEGER): LONGREAL;
38
39   PROCEDURE sqrt(x: REAL): REAL;
40
41   PROCEDURE longsqrt(x: LONGREAL): LONGREAL;
42
43   PROCEDURE exp(x: REAL): REAL;
44
45   PROCEDURE longexp(x: LONGREAL): LONGREAL;
46
47   PROCEDURE ln(x: REAL): REAL;  (* natural log *)
48
49   PROCEDURE longln(x: LONGREAL): LONGREAL;      (* natural log *)
50
51   PROCEDURE log(x: REAL): REAL; (* log with base 10 *)
52
53   PROCEDURE longlog(x: LONGREAL): LONGREAL;     (* log with base 10 *)
54
55   (* trigonometric functions; arguments in radians *)
56
57   PROCEDURE sin(x: REAL): REAL;
58
59   PROCEDURE longsin(x: LONGREAL): LONGREAL;
60
61   PROCEDURE cos(x: REAL): REAL;
62
63   PROCEDURE longcos(x: LONGREAL): LONGREAL;
64
65   PROCEDURE tan(x: REAL): REAL;
66
67   PROCEDURE longtan(x: LONGREAL): LONGREAL;
68
69   PROCEDURE arcsin(x: REAL): REAL;
70
71   PROCEDURE longarcsin(x: LONGREAL): LONGREAL;
72
73   PROCEDURE arccos(x: REAL): REAL;
74
75   PROCEDURE longarccos(x: LONGREAL): LONGREAL;
76
77   PROCEDURE arctan(x: REAL): REAL;
78
79   PROCEDURE longarctan(x: LONGREAL): LONGREAL;
80
81   (* hyperbolic functions *)
82
83   PROCEDURE sinh(x: REAL): REAL;
84
85   PROCEDURE longsinh(x: LONGREAL): LONGREAL;
86
87   PROCEDURE cosh(x: REAL): REAL;
88
89   PROCEDURE longcosh(x: LONGREAL): LONGREAL;
90
91   PROCEDURE tanh(x: REAL): REAL;
92
93   PROCEDURE longtanh(x: LONGREAL): LONGREAL;
94
95   PROCEDURE arcsinh(x: REAL): REAL;
96
97   PROCEDURE longarcsinh(x: LONGREAL): LONGREAL;
98
99   PROCEDURE arccosh(x: REAL): REAL;
100
101   PROCEDURE longarccosh(x: LONGREAL): LONGREAL;
102
103   PROCEDURE arctanh(x: REAL): REAL;
104
105   PROCEDURE longarctanh(x: LONGREAL): LONGREAL;
106
107   (* conversions *)
108
109   PROCEDURE RadianToDegree(x: REAL): REAL;
110
111   PROCEDURE longRadianToDegree(x: LONGREAL): LONGREAL;
112
113   PROCEDURE DegreeToRadian(x: REAL): REAL;
114
115   PROCEDURE longDegreeToRadian(x: LONGREAL): LONGREAL;
116
117 END Mathlib.