Add README.md
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape3 / ATAN.SB
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