Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | / |
2 | / | |
3 | / A C O S | |
4 | / - - - - | |
5 | / | |
6 | /SUBROUTINE ACOS(X) | |
7 | / | |
8 | / VERSION 5A 4-27-77 PT | |
9 | / | |
10 | SECT ACOS | |
11 | JA #ACOS | |
12 | TEXT +ACOS + | |
13 | ACOSXR, SETX XRACOS | |
14 | SETB BPACOS | |
15 | BPACOS, FNOP | |
16 | 0 | |
17 | 0 | |
18 | XRACOS, F 0.0 | |
19 | ACOS8, F 0.0 | |
20 | ACOS7, F 0.0 | |
21 | FPI2AC, 1 /PI OVER 2 | |
22 | 3110 | |
23 | 3755 | |
24 | F1ACOS, F 1. | |
25 | FPIACS, 2 /PI | |
26 | 3110 | |
27 | 3755 | |
28 | ORG 10*3+BPACOS | |
29 | FNOP | |
30 | JA ACOSXR | |
31 | 0 | |
32 | ACSRTN, JA . | |
33 | BASE 0 | |
34 | #ACOS, STARTD | |
35 | FLDA 10*3 | |
36 | FSTA ACSRTN | |
37 | FLDA 0 | |
38 | SETX XRACOS | |
39 | SETB BPACOS | |
40 | BASE BPACOS | |
41 | LDX 1,1 | |
42 | FSTA BPACOS | |
43 | FLDA% BPACOS,1 /ADDR OF X | |
44 | FSTA BPACOS | |
45 | STARTF | |
46 | FLDA% BPACOS /GET X | |
47 | FSTA ACOS8 /SAVE IT | |
48 | JEQ ACOSEQ /IF 0 RTN PI OVER 2 | |
49 | LDX -1,0 /JUMP TIME | |
50 | JGE .+5 | |
51 | LDX 0,0 | |
52 | FNEG | |
53 | FSUB F1ACOS /1-!X! | |
54 | JLE ACOSOK /IS IT <1.? | |
55 | EXTERN #ARGER | |
56 | TRAP4 #ARGER | |
57 | JA ACSRTN /AND RETURN | |
58 | ACOSOK, FLDA ACOS8 /X | |
59 | FMUL ACOS8 /X^2 | |
60 | FNEG /-X^2 | |
61 | FADD F1ACOS /1-X^2 | |
62 | FSTA ACOS7 | |
63 | EXTERN SQRT | |
64 | JSR SQRT /CALL SQRT | |
65 | JA .+4 /SQRT (1-X^2) | |
66 | JA ACOS7 | |
67 | FDIV ACOS8 /SQRT (1-X^2)/X | |
68 | FSTA ACOS7 | |
69 | EXTERN ATAN | |
70 | JSR ATAN /CALL ATAN | |
71 | JA .+4 /ATAN (SQRT(1-X^2)/X) | |
72 | JA ACOS7 | |
73 | JXN ACSRTN,0 /NO SIGN CHG NECESSARY | |
74 | FADD FPIACS /ADD PI IF MINUE | |
75 | JA ACSRTN | |
76 | ACOSEQ, FLDA FPI2AC /RTN PI OVER 2 IF 0 | |
77 | JA ACSRTN | |
78 | \f |