Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /INTEGER POWERS OF NUMBERS ...INTEGER AND FLOATING POINT |
2 | / | |
3 | /OS8 FORTRAN II LIBRARY | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | / | |
12 | /COPYRIGHT (C) 1974,1977 BY DIGITAL EQUIPMENT CORPORATION | |
13 | / | |
14 | / | |
15 | / | |
16 | / | |
17 | / | |
18 | / | |
19 | / | |
20 | / | |
21 | / | |
22 | / | |
23 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE | |
24 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT | |
25 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY | |
26 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS MANUAL. | |
27 | / | |
28 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER | |
29 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED | |
30 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH | |
31 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. | |
32 | / | |
33 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE | |
34 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY | |
35 | /DIGITAL. | |
36 | / | |
37 | / | |
38 | / | |
39 | / | |
40 | / | |
41 | / | |
42 | / | |
43 | / | |
44 | / | |
45 | / | |
46 | \f/ VERSION 2A | |
47 | / VERSION NUMBER IS AVAILABLE AT ENTRY POINTS | |
48 | ||
49 | ENTRY IIPOW | |
50 | ENTRY FIPOW | |
51 | OPDEF TADI 1400 | |
52 | ||
53 | LAP | |
54 | ||
55 | FIPOW, BLOCK 1 | |
56 | 2 | |
57 | TAD FIPOW | |
58 | DCA IIPOW | |
59 | TAD FIPOW# | |
60 | DCA IIPOW# | |
61 | CALL 1,STO | |
62 | ARG X /SAVE BASE | |
63 | JMP FIFI | |
64 | ||
65 | X, BLOCK 3 | |
66 | RSLT, BLOCK 3 | |
67 | N, 0 | |
68 | FISW, 0 | |
69 | IIPOW, BLOCK 1 | |
70 | 2 | |
71 | DCA X /SAVE BASE | |
72 | IAC | |
73 | FIFI, DCA FISW | |
74 | TAD IIPOW | |
75 | DCA II | |
76 | II, NOP | |
77 | TADI IIPOW# | |
78 | DCA NCDF | |
79 | INC IIPOW# | |
80 | TADI IIPOW# | |
81 | DCA N | |
82 | INC IIPOW# | |
83 | NCDF, NOP /GET FIELD OF EXPONENT | |
84 | TADI N /GET EXPONENT | |
85 | CLL | |
86 | SPA | |
87 | CIA CML | |
88 | DCA N /SAVE ABS VALUE | |
89 | TAD X | |
90 | /********* THE FOLLOWING CODE MAY BE REPLACED BY JUST "SNA CLA" | |
91 | /********* IF THE RULES ARE THAT 0**ANYTHING=0 FOR FLOATING | |
92 | /********* POINT TOO. (REMEMBER 0**0 AND 0**-1!) | |
93 | SNA CLA | |
94 | TAD FISW | |
95 | SZA CLA | |
96 | /********* | |
97 | JMP IPRTRN /BASE=0 MEANS RESULT=0 | |
98 | TAD FISW | |
99 | SZA | |
100 | JMP DCARSL | |
101 | ACHONE, TAD (2014 | |
102 | DCA ACH /INITIALIZE FPAC TO 1.0 | |
103 | DCARSL, DCA RSLT /INITIALIZE RSLT TO FISW | |
104 | SNL /THE LINK SHOULD CONTAIN THE EXPONENT SIGN | |
105 | JMP BACK /POSITIVE - ALLS WELL | |
106 | TAD FISW | |
107 | SZA CLA | |
108 | JMP IPRTRN /I**-N = 0 | |
109 | CALL 1,FDV | |
110 | ARG X /THERE'S A 1.0 IN THE AC, REMEMBER? | |
111 | CALL 1,STO | |
112 | ARG X | |
113 | CLL /FAKE A POSITIVE SIGN | |
114 | JMP ACHONE /GO BACK AND RESTORE FPAC TO 1.0 | |
115 | ||
116 | BACK, TAD N /USE STANDARD POWER-OF-2 ALGORITHM FOR POWERS | |
117 | SNA | |
118 | JMP DONE | |
119 | CLL RAR | |
120 | DCA N | |
121 | SNL | |
122 | JMP LOOP | |
123 | TAD RSLT | |
124 | SNA | |
125 | JMP FPMULT /RSLT=0 MEANS FLOATING POINT | |
126 | CALL 1,MPY | |
127 | ARG X | |
128 | STRSLT, DCA RSLT | |
129 | LOOP, TAD N | |
130 | SNA CLA | |
131 | JMP DONE | |
132 | TAD FISW | |
133 | SNA CLA | |
134 | JMP FPSQR | |
135 | TAD X | |
136 | CALL 1,MPY | |
137 | ARG X | |
138 | DCA X | |
139 | JMP BACK | |
140 | ||
141 | FPMULT, CALL 1,FMP /DO THE SAME STUFF IN FLOATING POINT | |
142 | ARG X /THAT WE DID ABOVE IN INTEGERS | |
143 | JMP STRSLT | |
144 | ||
145 | FPSQR, CALL 1,STO | |
146 | ARG RSLT /SAVE FLTG AC | |
147 | CALL 1,FAD | |
148 | ARG X | |
149 | CALL 1,FMP | |
150 | ARG X | |
151 | CALL 1,STO | |
152 | ARG X /SQUARE X | |
153 | CALL 1,FAD | |
154 | ARG RSLT | |
155 | DCA RSLT /KEEP RSLT ZERO! | |
156 | JMP BACK | |
157 | ||
158 | DONE, TAD RSLT | |
159 | IPRTRN, RETRN IIPOW | |
160 | ||
161 | ||
162 | END | |
163 | \f |