(* Release 3.10 *) (*-------------------------------------------------------------------------* * * * MATH.DEF - Modula-2 interface to MATH.H * * * * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. * * All Rights Reserved * * * *--------------------------------------------------------------------------*) (*# project("#set tsc='on'") *) (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *) (*# module(implementation=>off, init_code=>off) *) (*# name(prefix=>c) *) DEFINITION MODULE math; CONST EDOM = 33; (* Math argument *) ERANGE = 34; (* Result too large *) DOMAIN = 1; (* parameter not in valid domain *) SING = 2; (* function is incalculable at this place *) OVERFLOW = 3; (* result exceeds representable range *) UNDERFLOW = 4; (* result too close to zero to be represented *) TLOSS = 5; (* total loss of precision (eg. Sine (2**65)) *) PLOSS = 6; (* partial precision loss *) (* Constants rounded for 18 decimals. *) MA_E = 2.71828182845904524; MA_LOG2E = 1.44269504088896341; MA_LOG10E = 0.434294481903251828; MA_LN2 = 0.693147180559945309; MA_LN10 = 2.30258509299404568; MA_PI = 3.14159265358979324; MA_PI_2 = 1.57079632679489662; MA_PI_4 = 0.785398163397448310; MA_1_PI = 0.318309886183790672; MA_2_PI = 0.636619772367581343; MA_1_SQRTPI = 0.564189583547756287; MA_2_SQRTPI = 1.12837916709551257; MA_SQRT2 = 1.41421356237309505; MA_SQRT_2 = 0.707106781186547524; TYPE exception = RECORD type : INTEGER; name : ARRAY[0..9] OF CHAR; arg1, arg2, retval : LONGREAL; END; complex = RECORD (* as used by cabs function *) x,y : LONGREAL; END; VAR doserrno : INTEGER; (* global DOS error variable *) errno : INTEGER; (* global error variable *) (* **** This procedure returns a pointer to an integer *) PROCEDURE _errno__():ADDRESS; PROCEDURE abs(x:INTEGER):CARDINAL; PROCEDURE acos(x:LONGREAL):LONGREAL; PROCEDURE asin(x:LONGREAL):LONGREAL; PROCEDURE atan(x:LONGREAL):LONGREAL; PROCEDURE atan2(y,x:LONGREAL):LONGREAL; PROCEDURE atof(s:ARRAY OF CHAR):LONGREAL; PROCEDURE ceil(x:LONGREAL):LONGREAL; PROCEDURE cos(x:LONGREAL):LONGREAL; PROCEDURE cosh(x:LONGREAL):LONGREAL; PROCEDURE exp(x:LONGREAL):LONGREAL; PROCEDURE fabs(x:LONGREAL):LONGREAL; PROCEDURE floor(x:LONGREAL):LONGREAL; PROCEDURE fmod(x,y:LONGREAL):LONGREAL; PROCEDURE frexp(x:LONGREAL;VAR exp:INTEGER):LONGREAL; PROCEDURE labs(x:LONGINT):LONGCARD; PROCEDURE ldexp(x:LONGREAL;exp:INTEGER):LONGREAL; PROCEDURE log(x:LONGREAL):LONGREAL; PROCEDURE log10(x:LONGREAL):LONGREAL; PROCEDURE modf(x:LONGREAL;VAR ipart:LONGREAL):LONGREAL; PROCEDURE poly(x:LONGREAL;degree:INTEGER;coeffs:ARRAY OF LONGREAL):LONGREAL; PROCEDURE pow(x,y:LONGREAL):LONGREAL; PROCEDURE sin(x:LONGREAL):LONGREAL; PROCEDURE sinh(x:LONGREAL):LONGREAL; PROCEDURE sqrt(x:LONGREAL):LONGREAL; PROCEDURE tan(x:LONGREAL):LONGREAL; PROCEDURE tanh(x:LONGREAL):LONGREAL; PROCEDURE hypot(x,y:LONGREAL):LONGREAL; PROCEDURE pow10(p:INTEGER):LONGREAL; PROCEDURE _fpreset; TYPE CharPtr = POINTER TO CHAR; PROCEDURE acosl(x: TEMPREAL): TEMPREAL; PROCEDURE asinl(x: TEMPREAL): TEMPREAL; PROCEDURE atanl(x: TEMPREAL): TEMPREAL; PROCEDURE atan2l(y: TEMPREAL; x: TEMPREAL): TEMPREAL; PROCEDURE atofl(s: ADDRESS): TEMPREAL; PROCEDURE ceill(x: TEMPREAL): TEMPREAL; PROCEDURE cosl(x: TEMPREAL): TEMPREAL; PROCEDURE coshl(x: TEMPREAL): TEMPREAL; PROCEDURE expl(x: TEMPREAL): TEMPREAL; PROCEDURE fabsl(x: TEMPREAL): TEMPREAL; PROCEDURE floorl(x: TEMPREAL): TEMPREAL; PROCEDURE fmodl(x: TEMPREAL; y: TEMPREAL): TEMPREAL; PROCEDURE frexpl(x: TEMPREAL; VAR exp: CARDINAL): TEMPREAL; PROCEDURE ldexpl(x: TEMPREAL; exp: CARDINAL): TEMPREAL; PROCEDURE logl(x: TEMPREAL): TEMPREAL; PROCEDURE log10l(x: TEMPREAL): TEMPREAL; PROCEDURE modfl(x: TEMPREAL; VAR ipart: TEMPREAL): TEMPREAL; PROCEDURE polyl(x: TEMPREAL; degree: CARDINAL; coeffs: ARRAY OF TEMPREAL): TEMPREAL; PROCEDURE powl(x: TEMPREAL; y: TEMPREAL): TEMPREAL; PROCEDURE sinl(x: TEMPREAL): TEMPREAL; PROCEDURE sinhl(x: TEMPREAL): TEMPREAL; PROCEDURE sqrtl(x: TEMPREAL): TEMPREAL; PROCEDURE strtodl(s: ARRAY OF CHAR; VAR eptr: CharPtr): TEMPREAL; PROCEDURE tanl(x: TEMPREAL): TEMPREAL; PROCEDURE tanhl(x: TEMPREAL): TEMPREAL; PROCEDURE hypotl(x: TEMPREAL; y: TEMPREAL): TEMPREAL; END math.