Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /ARCTANGENT ROUTINE OS8 FORTRAN II LIBRARY |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,1977 BY DIGITAL EQUIPMENT CORPORATION | |
12 | / | |
13 | / | |
14 | / | |
15 | / | |
16 | / | |
17 | / | |
18 | / | |
19 | / | |
20 | / | |
21 | / | |
22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE | |
23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT | |
24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY | |
25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS MANUAL. | |
26 | / | |
27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER | |
28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED | |
29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH | |
30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. | |
31 | / | |
32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE | |
33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY | |
34 | /DIGITAL. | |
35 | / | |
36 | / | |
37 | / | |
38 | / | |
39 | / | |
40 | / | |
41 | / | |
42 | / | |
43 | / | |
44 | / | |
45 | \f/ VERSION 11A | |
46 | / VERSION NUMBER IS AVAILABLE AT ENTRY POINTS | |
47 | ENTRY ATAN | |
48 | ||
49 | ATAN, BLOCK 1 | |
50 | 11 | |
51 | TAD ATAN | |
52 | DCA L4 | |
53 | TAD ATAN# | |
54 | DCA L4# | |
55 | INC ATAN# | |
56 | INC ATAN# | |
57 | CALL 1,IFAD | |
58 | L4, ARG 0 | |
59 | CLL | |
60 | TAD ACH | |
61 | SNA | |
62 | JMP EXIT | |
63 | SPA | |
64 | TAD (4000 | |
65 | DCA ACH /TAKE ABSVAL OF ARGUMENT | |
66 | RAR | |
67 | DCA SIGN /AND REMEMBER SIGN | |
68 | TAD ACH | |
69 | TAD (-2014 | |
70 | SPA CLA | |
71 | JMP LSTN45 /IF ARG>1, | |
72 | JMS INVRS /INVERT ARG - SUBTRACT RESULT FROM PI/2 | |
73 | CLA CMA | |
74 | LSTN45, DCA L4# /L4# IS THE "PI/2-RESULT" SWITCH | |
75 | TAD ACH | |
76 | TAD (-1774 /THIS IS AN APPROXIMATE TEST TO SEE | |
77 | SPA CLA /IF THE NEW ARG IS <2-SQRT(3) | |
78 | JMP LSTN15 /IF IT IS, | |
79 | CALL 1,FAD /PERFORM A "DIFFERENCE OF TANGENTS" | |
80 | ARG SQRT3 /TRANSFORMATION TO SUBTRACT PI/6 | |
81 | TAD (20 | |
82 | JMS INVRS /FROM THE RESULT. THE ARG IS TRANSFORMED | |
83 | CALL 0,CHS /INTO SQRT(3)-4/(ARG+SQRT(3)) | |
84 | CALL 1,FAD | |
85 | SQT3, ARG SQRT3 | |
86 | CLA CMA | |
87 | LSTN15, DCA INVRS /USE INVRS AS A SWITCH TO INDICATE THIS | |
88 | CALL 1,STO /TRANSFORMATION OCCURRED | |
89 | ARG T | |
90 | TAD (-4 | |
91 | DCA L4 | |
92 | TAD SQT3# | |
93 | DCA L3# | |
94 | ATLOOP, INC L3# /NOW PERFORM A STANDARD TAYLOR SERIES | |
95 | INC L3# /EXPANSION (WITH TRUNCATED COEFFICIENTS) | |
96 | INC L3# | |
97 | CALL 1,FAD /CONVERGENCE WILL BE GOOD SINCE WE | |
98 | L3, ARG SQRT3 /HAVE MADE THE ARGUMENT BE <.3 | |
99 | JMS FMPT | |
100 | JMS FMPT | |
101 | ISZ L4 | |
102 | JMP ATLOOP | |
103 | JMS FMPT | |
104 | CALL 1,FAD | |
105 | ARG T /FINISH UP THE SERIES | |
106 | ISZ INVRS | |
107 | JMP NOPI6 | |
108 | CALL 1,FAD /ADD PI/6 IF NECESSARY | |
109 | ARG PIOVR6 | |
110 | NOPI6, ISZ L4# | |
111 | JMP NOPI2 | |
112 | CALL 0,CHS /SUBTRACT FROM PI/2 IF NECESSARY | |
113 | CALL 1,FAD | |
114 | ARG PIOVR2 | |
115 | NOPI2, TAD SIGN | |
116 | TAD ACH /SET SIGN OF RESULT = SIGN OF ARGUMENT | |
117 | DCA ACH | |
118 | EXIT, RETRN ATAN | |
119 | ||
120 | INVRS, 0 /INVERSION SUBROUTINE | |
121 | TAD (2014 /ENTERED WITH AC=0 OR 20 | |
122 | DCA L4 /AC=0 MEANS 1/FAC, AC=20 MEANS 4/FAC | |
123 | CALL 1,STO | |
124 | ARG T | |
125 | TAD L4 | |
126 | DCA ACH /ACM AND ACL WERE CLEARED BY STORE | |
127 | CALL 1,FDV | |
128 | ARG T | |
129 | JMP I INVRS | |
130 | ||
131 | FMPT, 0 /SUBROUTINE TO MULTIPLY BY T | |
132 | CALL 1,FMP /SAVES A FEW MEASLY LOCATIONS | |
133 | ARG T | |
134 | JMP I FMPT | |
135 | ||
136 | SIGN, 0 /CELL FOR HOLDING SIGN OF ARG | |
137 | T, BLOCK 3 /FLOATING TEMPORARY | |
138 | ||
139 | PAGE | |
140 | ||
141 | PIOVR6, 2004;1405;2216 /PI/6 | |
142 | PIOVR2, 2016;2207;7325 | |
143 | SQRT3, 2016;7331;7272 /SQRT(3) | |
144 | /THE NEXT 4 NUMBERS MUST IMMEDIATELY FOLLOW SQRT3 | |
145 | 1756;0462;4562 /APPROXIMATELY 1/9 | |
146 | 5764;4221;3403 /APPROXIMATELY -1/7 | |
147 | 1766;3141;6672 /APPROXIMATELY 1/5 | |
148 | 5775;2525;2337 /APPROXIMATELY -1/3 | |
149 | ||
150 | END | |
151 | \f |