-- Copyright (C) 1986 by Xerox Corporation. All rights reserved.
-- Libm.mesa
-- NFS 11-Feb-86 9:31:43
-- C library math functions
DIRECTORY
DoubleReal USING [Double];
Libm: DEFINITIONS = {
Double: TYPE = DoubleReal.Double;
Complex: TYPE = MACHINE DEPENDENT RECORD [x, y: Double];
sin: PROCEDURE [x: Double] RETURNS [Double];
cos: PROCEDURE [x: Double] RETURNS [Double];
tan: PROCEDURE [x: Double] RETURNS [Double];
log: PROCEDURE [x: Double] RETURNS [Double];
log1p: PROCEDURE [x: Double] RETURNS [Double]; -- log(x+1)
log10: PROCEDURE [x: Double] RETURNS [Double]; -- base 10 log
lgamma: PROCEDURE [arg: Double] RETURNS [Double];
exp: PROCEDURE [x: Double] RETURNS [Double];
frexp: PROCEDURE [x: Double, i: LONG POINTER TO INTEGER] RETURNS [Double];
ldexp: PROCEDURE [x: Double, exp: INTEGER] RETURNS [Double];
asin: PROCEDURE [x: Double] RETURNS [Double];
acos: PROCEDURE [x: Double] RETURNS [Double];
atan: PROCEDURE [x: Double] RETURNS [Double];
atan2: PROCEDURE [y, x: Double] RETURNS [Double];
sinh: PROCEDURE [x: Double] RETURNS [Double];
cosh: PROCEDURE [x: Double] RETURNS [Double];
tanh: PROCEDURE [x: Double] RETURNS [Double];
asinh: PROCEDURE [x: Double] RETURNS [Double];
acosh: PROCEDURE [x: Double] RETURNS [Double];
atanh: PROCEDURE [x: Double] RETURNS [Double];
cabs: PROCEDURE [z: Complex] RETURNS [Double];
hypot: PROCEDURE [x, y: Double] RETURNS [Double];
sqrt: PROCEDURE [x: Double] RETURNS [Double];
cbrt: PROCEDURE [x: Double] RETURNS [Double]; -- cube root
expm1: PROCEDURE [x: Double] RETURNS [Double];
pow: PROCEDURE [x, y: Double] RETURNS [Double];
fmod: PROCEDURE [x, y: Double] RETURNS [Double];
abs: PROCEDURE [i: INTEGER] RETURNS [INTEGER];
fabs: PROCEDURE [d: Double] RETURNS [Double];
modf: PROCEDURE [d: Double, iptr: LONG POINTER TO Double] RETURNS [Double];
floor: PROCEDURE [d: Double] RETURNS [Double];
ceil: PROCEDURE [d: Double] RETURNS [Double];
rint: PROCEDURE [x: Double] RETURNS [Double];
-- Bessel's function of the 1st and 2nd kinds.
j0: PROCEDURE [arg: Double] RETURNS [Double]; -- order 0
j1: PROCEDURE [arg: Double] RETURNS [Double]; -- order 1
jn: PROCEDURE [n: INTEGER, x: Double] RETURNS [Double]; -- integer order
y0: PROCEDURE [arg: Double] RETURNS [Double];
y1: PROCEDURE [arg: Double] RETURNS [Double];
yn: PROCEDURE [n: INTEGER, x: Double] RETURNS [Double];
}.