Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /COMPLEX ARITHMETIC ROUTINES |
2 | / (A+BI)+-*/(C+DI) | |
3 | / | |
4 | / VERSION 5A 4-26-77 MH | |
5 | / | |
6 | DPCHK | |
7 | SECT #CAD | |
8 | JA . | |
9 | FSTA #CARG /SAVE SECOND ARG | |
10 | STARTF | |
11 | FLDA #CARG /STARTF ROUNDS | |
12 | FADDM #CAC /A+C | |
13 | FLDA #CARG+3 | |
14 | FADDM #CAC+3 /B+D | |
15 | STARTE | |
16 | JA #CAD | |
17 | ENTRY #CSB | |
18 | #CSB, JA . | |
19 | FSTA #CARG | |
20 | STARTF | |
21 | FLDA #CARG /STARTF ROUNDS | |
22 | FNEG | |
23 | FADDM #CAC /A-C | |
24 | FLDA #CAC+3 | |
25 | FSUB #CARG+3 /B-D | |
26 | FSTA #CAC+3 | |
27 | STARTE | |
28 | JA #CSB | |
29 | ENTRY #CNG | |
30 | #CNG, JA . | |
31 | STARTF | |
32 | FLDA #CAC | |
33 | FNEG | |
34 | FSTA #CAC | |
35 | FLDA #CAC+3 | |
36 | FNEG | |
37 | FSTA #CAC+3 | |
38 | STARTE | |
39 | JA #CNG | |
40 | ENTRY #CEQ | |
41 | #CEQ, JA . | |
42 | JSA #CSB | |
43 | STARTF | |
44 | FLDA #CAC | |
45 | JNE NOTEQ | |
46 | FLDA #CAC+3 | |
47 | JNE NOTEQ | |
48 | FLDA ONE | |
49 | JA #CEQ | |
50 | NOTEQ, FCLA | |
51 | JA #CEQ | |
52 | ONE, F 1.0 | |
53 | ENTRY #CML | |
54 | #CML, JA . | |
55 | FSTA #CARG | |
56 | STARTF | |
57 | FLDA #CARG /STARTF ROUNDS | |
58 | FMUL #CAC /A*C | |
59 | FSTA TEMP | |
60 | FLDA #CARG+3 | |
61 | FMUL #CAC+3 /B*D | |
62 | FSTA TEMP2 | |
63 | FLDA #CARG | |
64 | FMULM #CAC+3 /B*C | |
65 | FLDA #CAC | |
66 | FMUL #CARG+3 /A*D | |
67 | FADDM #CAC+3 /A*D+B*C | |
68 | FLDA TEMP | |
69 | FSUB TEMP2 /A*C-B*D | |
70 | FSTA #CAC | |
71 | STARTE | |
72 | JA #CML | |
73 | ENTRY #CDV | |
74 | #CDV, JA . | |
75 | FSTA #CARG | |
76 | STARTF | |
77 | FLDA #CARG /STARTF ROUNDS | |
78 | FMUL #CAC+3 /B*C | |
79 | FSTA TEMP | |
80 | FLDA #CARG+3 | |
81 | FMUL #CAC /A*D | |
82 | FSTA TEMP2 | |
83 | FLDA #CARG | |
84 | FMULM #CAC /A*C | |
85 | FLDA #CAC+3 | |
86 | FMUL #CARG+3 /B*D | |
87 | FADDM #CAC /A*C+B*D | |
88 | FLDA #CARG | |
89 | FMULM #CARG /C*C | |
90 | FLDA #CARG+3 | |
91 | FMUL #CARG+3 /D*D | |
92 | FADDM #CARG /C*C+D*D | |
93 | FLDA TEMP | |
94 | FSUB TEMP2 /B*C-A*D | |
95 | FDIV #CARG /(B*C-A*D)/(C*C+D*D) | |
96 | FSTA #CAC+3 | |
97 | FLDA #CAC | |
98 | FDIV #CARG /(A*C+B*D)/(C*C+D*D) | |
99 | FSTA #CAC | |
100 | STARTE | |
101 | JA #CDV | |
102 | TEMP, 0;0;0 | |
103 | TEMP2, 0;0;0 | |
104 | #CARG, 0;0;0 | |
105 | 0;0;0 | |
106 | ENTRY #CAC | |
107 | #CAC, 0;0;0 | |
108 | 0;0;0 | |
109 | END | |
110 | \f |