ðXSyntax10.Scn.Fnt4óÿÿÿ09 ÀÔStampElemsAlloc2002-Aug-16¡ÖMODULE Math; (* Derived from Windows Version by RLI  , MH 30.8.93; uses C library calls *) IMPORT S := SYSTEM, Kernel; CONST pi* = 3.1415928; e* = 2.7182818; VAR sqrt0: PROCEDURE (x: LONGREAL): LONGREAL; exp0: PROCEDURE (x: LONGREAL): LONGREAL; ln0: PROCEDURE (x: LONGREAL): LONGREAL; sin0: PROCEDURE (x: LONGREAL): LONGREAL; cos0: PROCEDURE (x: LONGREAL): LONGREAL; arctan0: PROCEDURE (x: LONGREAL): LONGREAL; PROCEDURE sqrt* (x: REAL): REAL; BEGIN RETURN SHORT(sqrt0(x)) END sqrt; PROCEDURE exp* (x: REAL): REAL; VAR long: LONGREAL; BEGIN RETURN SHORT(exp0(x)) END exp; PROCEDURE ln* (x: REAL): REAL; BEGIN RETURN SHORT(ln0(x)) END ln; PROCEDURE sin* (x: REAL): REAL; BEGIN RETURN SHORT(sin0(x)) END sin; PROCEDURE cos* (x: REAL): REAL; BEGIN RETURN SHORT(cos0(x)) END cos; PROCEDURE arctan* (x: REAL): REAL; BEGIN RETURN SHORT(arctan0(x)) END arctan; BEGIN Kernel.dlsym(Kernel.libc, "sqrt", S.VAL(LONGINT, sqrt0)); Kernel.dlsym(Kernel.libc, "exp", S.VAL(LONGINT, exp0)); Kernel.dlsym(Kernel.libc, "log", S.VAL(LONGINT, ln0)); Kernel.dlsym(Kernel.libc, "atan", S.VAL(LONGINT, arctan0)); Kernel.dlsym(Kernel.libc, "sin", S.VAL(LONGINT, sin0)); Kernel.dlsym(Kernel.libc, "cos", S.VAL(LONGINT, cos0)) END Math.