software: Added more and more
[pdp8.git] / sw / f4 / FRTSRC / dsin.ra
1 /
2 /
3 / D S I N
4 / - - -
5 /
6 /SUBROUTINE DSIN(X)
7 /
8 / VERSION 5A 4-27-77 PT
9 /
10 SECT DSIN
11 JA #DSIN
12 DPCHK
13 TEXT +DSIN +
14 SINXR, SETX XRSIN
15 SETB BPSIN
16 FPI2SN, 1 /PI DIVIDED BY 2
17 3110
18 3755
19 2421
20 0264
21 3016
22 FPISIN, 2 /PI
23 3110
24 3755
25 2421
26 0264
27 3016
28 F2PISN, 3 /TWO PI
29 3110
30 3755
31 2421
32 0264
33 3016
34 BPSIN, F 0.0
35 XRSIN, F 0.0
36 X, F 0.0
37 F 0.0
38 ORG 10*3+BPSIN
39 FNOP
40 JA SINXR
41 0
42 SINRTN, JA .
43 SIN1, F 0.0
44 F 0.0
45 F3PIB2, 0003 /4.71238898038468986
46 2266
47 2761
48 7714
49 6207
50 2212
51 F1SIN, F 1.0
52 F 0.0
53 /
54 SINC17, 7720 /1/17!
55 3124
56 5435
57 6014
58 1265
59 1236
60 SINC15, 7730 /-1/15!
61 4506
62 0060
63 3063
64 0437
65 4133
66 SINC13, 7740 /1/13!
67 2604
68 4430
69 2352
70 0664
71 1151
72 SINC11, 7747 /-1/11!
73 4506
74 3352
75 3002
76 5354
77 3710
78 SINC9, 7756 /1/9!
79 2707
80 3616
81 4525
82 5434
83 6350
84 /
85 SINC7, 7764 /-1/7!
86 4577
87 4577
88 4577
89 4577
90 4636
91 /
92 SINC5, 7772 /1/5!
93 2104
94 2104
95 2104
96 2104
97 2104
98 /
99 SINC3, 7776 /-1/3!
100 5252
101 5252
102 5252
103 5252
104 5244
105 /
106 SINTST, 7770
107 2000
108 0000
109 0000
110 0000
111 0000
112 SEVTHR, 0007
113 2217
114 7777
115 7777
116 7777
117 7777
118 BASE 0
119 #DSIN, STARTD
120 FLDA 10*3
121 FSTA SINRTN
122 FLDA 0
123 SETX XRSIN
124 SETB BPSIN
125 BASE BPSIN
126 LDX 1,1
127 LDX 73,2
128 FSTA BPSIN
129 FLDA% BPSIN,1 /ADDR OF X
130 FSTA BPSIN
131 STARTE
132 FLDA% BPSIN /GET X
133 LDX -1,0 /SET SIGN TO POSITIVE.
134 JGT SINMOD /IF POSITIVE BYPASS FUDGE.
135 JEQ SINRTN /IF ZERO EXIT.
136 FNEG /NEGATIVE. NEGATE AC. SIN(-X)=-SIN(X)
137 LDX 0,0 /SET SIGN TO MINUS.
138 SINMOD, FSTA X
139 FDIV F2PISN /X/2PI
140 ALN 2
141 FNORM
142 FMUL F2PISN /*2PI
143 FSTA SIN1
144 FLDA X
145 FSUB SIN1
146 FSTA SIN1
147 FSTA X
148 /CHECK FOR QUADRANT
149 /1 0-PI/2 SIN(PI/2)=1
150 /2 PI/2-PI SIN(PI)=0
151 /3 PI-3PI/2 SIN(3PI/2)=-1
152 /4 3PI/2-2PI SIN(2PI)=0
153 /
154 FLDA FPI2SN /PI/2
155 FSUB SIN1
156 JGT TAYLOR
157 JEQ SPIB2 /=PI/2
158 FLDA FPISIN /PI
159 FSUB SIN1
160 JLT S1
161 JEQ SPI /=PI
162 FLDA FPISIN
163 FSUB SIN1 /SIN(X)=SIN(PI-X)
164 FSTA X
165 JA TAYLOR
166 S1, FLDA F3PIB2 /3PI/2
167 FSUB SIN1
168 JLT S2
169 JEQ S3PIB2 /=3PI/2
170 FLDA SIN1
171 FSUB FPISIN
172 FNEG
173 FSTA X /SIN(X)=-SIN(X-PI)
174 JA TAYLOR
175 S2, FLDA F2PISN /2PI
176 FSUB SIN1
177 JLT DSNER /ERROR
178 JEQ SPI
179 FNEG
180 FSTA X
181 /CALCULATE SIN VIA TAYLOR SERIES
182 TAYLOR, FLDA X /RECALL NUMBER TO BE WORKED ON.
183 FMUL X /MULTIPLY OUT.
184 FSTA SIN1
185 FMUL SINC17 /NOW DO THE STANDARD ITERATION.
186 FADD SINC15
187 FMUL SIN1
188 FADD SINC13
189 FMUL SIN1
190 FADD SINC11
191 FMUL SIN1
192 FADD SINC9
193 FMUL SIN1
194 FADD SINC7
195 FMUL SIN1
196 FADD SINC5
197 FMUL SIN1
198 FADD SINC3
199 FMUL SIN1
200 FADD F1SIN /ADD IN 1 FOR SERIES
201 FMUL X /DO THE FINAL MULTIPLY.
202 SING, JXN SINRTN,0 /SHALL WE NEGATE
203 FNEG /YEP
204 JA SINRTN /AND RETURN.
205 SPIB2, FLDA F1SIN
206 JA SING
207 SPI, FCLA
208 JA SINRTN
209 S3PIB2, FLDA F1SIN
210 FNEG
211 JA SING
212 EXTERN #ARGER
213 DSNER, TRAP4 #ARGER
214 \f