software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape3 / ATAN.SB
CommitLineData
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
49ATAN, 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
58L4, 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
74LSTN45, 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
85SQT3, ARG SQRT3
86 CLA CMA
87LSTN15, 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#
94ATLOOP, 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
98L3, 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
110NOPI6, ISZ L4#
111 JMP NOPI2
112 CALL 0,CHS /SUBTRACT FROM PI/2 IF NECESSARY
113 CALL 1,FAD
114 ARG PIOVR2
115NOPI2, TAD SIGN
116 TAD ACH /SET SIGN OF RESULT = SIGN OF ARGUMENT
117 DCA ACH
118EXIT, RETRN ATAN
119
120INVRS, 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
131FMPT, 0 /SUBROUTINE TO MULTIPLY BY T
132 CALL 1,FMP /SAVES A FEW MEASLY LOCATIONS
133 ARG T
134 JMP I FMPT
135
136SIGN, 0 /CELL FOR HOLDING SIGN OF ARG
137T, BLOCK 3 /FLOATING TEMPORARY
138
139 PAGE
140
141PIOVR6, 2004;1405;2216 /PI/6
142PIOVR2, 2016;2207;7325
143SQRT3, 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