ack/lang/a68s/liba68s/trig.p
1988-10-04 13:41:01 +00:00

35 lines
942 B
OpenEdge ABL

66300 #include "rundecs.h"
66310 (* COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER *)
66320 (**)
66330 (**)
66340 FUNCTION TAN(X: REAL): REAL;
66350 BEGIN TAN := SIN(X)/COS(X) END;
66360 (**)
66370 (**)
66380 FUNCTION ARCCOS(X: REAL): REAL;
66390 BEGIN
66400 IF ABS(X)>0.5 THEN
66410 ARCCOS := ARCTAN(SQRT(1-SQR(X))/X)+ORD(X<0)*(HALFPI.ACTUALPI+HALFPI.ACTUALPI)
66420 ELSE
66430 ARCCOS := HALFPI.ACTUALPI-ARCTAN(X/SQRT(1-SQR(X)));
66440 END;
66450 (**)
66460 (**)
66470 FUNCTION ARCSIN(X: REAL): REAL;
66480 BEGIN
66490 IF ABS(X)<0.5 THEN
66500 ARCSIN := ARCTAN(X/SQRT(1-SQR(X)))
66510 ELSE
66520 ARCSIN := (1-2*ORD(X<0))*HALFPI.ACTUALPI-ARCTAN(SQRT(1-SQR(X))/X);
66530 END;
66540 (**)
66550 (**)
66560 (*-02()
66570 BEGIN (* OF A68 *)
66580 END (* OF A68 *);
66590 ()-02*)
66600 (*+01()
66610 BEGIN (* OF MAIN PROGRAM *)
66620 END (* OF MAIN PROGRAM *).
66630 ()+01*)