Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | / |
2 | / | |
3 | / | |
4 | / A T A N 2 | |
5 | / - - - - - | |
6 | / | |
7 | /SUBROUTINE ATAN2(Y,X) | |
8 | / | |
9 | / VERSION 5A 4-27-77 PT | |
10 | / | |
11 | SECT ATAN2 | |
12 | JA #ATAN2 | |
13 | TEXT +ATAN2 + | |
14 | ATN2XR, SETX XRATN2 | |
15 | SETB BPATN2 | |
16 | BPATN2, FNOP | |
17 | 0 | |
18 | 0 | |
19 | XRATN2, F 0.0 | |
20 | YCOR, F 0.0 | |
21 | XCOR, F 0.0 | |
22 | FPIAT2, 2 /PI | |
23 | 3110 | |
24 | 3755 | |
25 | ATPI, F 1.570796 /PI/2 | |
26 | ORG 10*3+BPATN2 | |
27 | FNOP | |
28 | JA ATN2XR | |
29 | 0 | |
30 | AT2RTN, JA . | |
31 | BASE 0 | |
32 | #ATAN2, STARTD | |
33 | FLDA 10*3 | |
34 | FSTA AT2RTN | |
35 | FLDA 0 | |
36 | SETX XRATN2 | |
37 | SETB BPATN2 | |
38 | BASE BPATN2 | |
39 | LDX 1,1 | |
40 | FSTA BPATN2 | |
41 | FLDA% BPATN2,1 /ADDR OF Y | |
42 | FSTA YCOR | |
43 | FLDA% BPATN2,1+ /ADDR OF X | |
44 | FSTA XCOR | |
45 | STARTF | |
46 | FLDA% YCOR /GET Y - THE TAN | |
47 | FSTA YCOR /SAV FOR A SECOND | |
48 | LDX 1,2 /POSITIVE X | |
49 | JEQ ATN0 | |
50 | JGT ATN1 | |
51 | LDX 0,2 | |
52 | ATN1, FLDA% XCOR /GET X - THE QUADRAND | |
53 | FSTA XCOR /+MOVE IT TO A SAFE PLACE | |
54 | JEQ ATASP | |
55 | FLDA YCOR /Y/X | |
56 | FDIV XCOR | |
57 | FSTA YCOR | |
58 | EXTERN ATAN | |
59 | JSR ATAN /CALL ATAN | |
60 | JA .+4 /TAKE ARCTAN OF Y/X | |
61 | JA YCOR | |
62 | FSTA YCOR /SAVE IT AWAY | |
63 | JGE A2 /SKIP IF 1 OR 3 Q | |
64 | FADD FPIAT2 /ADD PI FOR 4TH Q | |
65 | FSTA YCOR | |
66 | A2, JXN AT2RTN,2 | |
67 | FLDA YCOR | |
68 | FSUB FPIAT2 /SUB PI FOR 2ND+3RD QUADS | |
69 | JA AT2RTN | |
70 | ATASP, FLDA ATPI /X=0 MEANS +-PI/2 | |
71 | JXN ATNG,2 | |
72 | FNEG | |
73 | ATNG, JA AT2RTN | |
74 | ATN0, FLDA% XCOR | |
75 | JLT POSX /IF X POS,ANS IS 0 | |
76 | FCLA | |
77 | JA AT2RTN | |
78 | POSX, FLDA FPIAT2 /OTHERWISE,ANS IS PI | |
79 | JA AT2RTN | |
80 | \f |