File: DEXP.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text)
RALF V50A 8-APR-92 PAGE 1 /D=DEXP(D) DOUBLE PREC. EXPONENTIAL / / / VERSION 50A 28-MAY-80 WVDM / / /E^X=2^(X*LOG2(E)) /E^X=2^(M+F) /M=INTEGER; F=FRACTION / /2^(M+F)=2^(M+N+R) /WHERE 0<R<1/8 /AND M+N+R=M+F=X*LOG2(E) / /(2^M)*(2^N)*(2^R)=E^X / /2^M IS CALCULATED BY SUCCESSIVE MULTIPLIES /2^N IS CALCULATED BY LOOK UP /2^R=1+<A4/((B4/R)-C4+(D4*R)+(H4/(R+(B4/R))))> / /RESTRICTIONS: /X=0 IMPLIES E^X=1 / / SECT DEXP 00000 1030 JA #DEXP 00001 0223 DPCHK 00002 0405 TEXT +DEXP + 00003 3020 00004 4040 00005 1100 DEXPXR, SETX XRDEXP 00006 0014 00007 1110 SETB BPDEXP 00010 0011 00011 0000 BPDEXP, F 0.0 00012 0000 00013 0000 00014 0000 XRDEXP, F 0.0 00015 0000 00016 0000 00017 0000 X, F 0.0 00020 0000 00021 0000 00022 0000 F 0.0 00023 0000 00024 0000 00025 0000 DTEMP1, F 0.0 00026 0000 00027 0000 00030 0000 F 0.0 00031 0000 00032 0000 00033 0002 DFP2, F 2.0 00034 2000 00035 0000 RALF V50A 8-APR-92 PAGE 1-1 00036 0000 F 0.0 00037 0000 00040 0000 ORG 10*3+BPDEXP 00041 0040 FNOP 00042 1030 JA DEXPXR 00043 0005 00044 0000 0 00045 1030 DEXRTN, JA . 00046 0045 / 00047 0000 M, F 0.0 00050 0000 00051 0000 00052 0000 F 0.0 00053 0000 00054 0000 00055 0000 N, F 0.0 00056 0000 00057 0000 00060 0000 F 0.0 00061 0000 00062 0000 00063 0000 R, F 0.0 00064 0000 00065 0000 00066 0000 F 0.0 00067 0000 00070 0000 / 00071 0001 LOG2E, 0001 /1.4426950408889634 00072 2705 2705 00073 2435 2435 00074 4512 4512 00075 7013 7013 00076 7603 7603 / 00077 7775 DFP125, 7775 /.125 00100 3777 3777 00101 7777 7777 00102 7777 7777 00103 7777 7777 00104 7776 7776 / 00105 0001 DEXFP1, F 1.0 /2^0/8 00106 2000 00107 0000 00110 0000 F 0.0 00111 0000 00112 0000 / 00113 0001 DFR1S8, 0001 /2^1/8 00114 2134 2134 00115 5340 5340 00116 7437 7437 00117 2505 2505 RALF V50A 8-APR-92 PAGE 1-2 00120 7302 7302 / 00121 0001 DFP2S8, 0001 /2^2/8 00122 2301 2301 00123 5770 5770 00124 1214 1214 00125 3334 3334 00126 2524 2524 / 00127 0001 DFP3S8, 0001 /2^3/8 00130 2457 2457 00131 7553 7553 00132 2515 2515 00133 4250 4250 00134 4720 4720 / 00135 0001 DFP4S8, 0001 /2^4/8 00136 2650 2650 00137 1171 1171 00140 4637 4637 00141 6357 6357 00142 1425 1425 / 00143 0001 DFP5S8, 0001 /2^5/8 00144 3053 3053 00145 1625 1625 00146 0212 0212 00147 5174 5174 00150 3070 3070 / 00151 0001 DFP6S8, 0001 /2^6/8 00152 3272 3272 00153 1176 1176 00154 3126 3126 00155 5516 5516 00156 5532 5532 / 00157 0001 DFP7S8, 0001 /2^7/8 00160 3526 3526 00161 0143 0143 00162 3476 3476 00163 7222 7222 00164 0722 0722 / 00165 0006 DEXA4, 0006 /60.593191717336463 00166 3622 3622 00167 7666 7666 00170 6462 6462 00171 2157 2157 00172 5534 5534 / 00173 0007 DEXB4, 0007 /87.417497202235527 00174 2566 2566 00175 5341 5341 00176 0613 0613 00177 6705 6705 RALF V50A 8-APR-92 PAGE 1-3 00200 7214 7214 / 00201 0005 DEXC4, 0005 /30.296595858668232 00202 3622 3622 00203 7666 7666 00204 6462 6462 00205 2157 2157 00206 5546 5546 / 00207 0001 DEXD4, 0001 /1.0500 00210 2063 2063 00211 1463 1463 00212 1463 1463 00213 1463 1463 00214 1462 1462 / 00215 0010 DEXH4, 0010 /214.17286814547704 00216 3261 3261 00217 3040 3040 00220 4261 4261 00221 5654 5654 00222 0240 0240 / BASE 0 00223 0006 #DEXP, STARTD 00224 0210 FLDA 10*3 00225 6400 FSTA DEXRTN 00226 0045 00227 0200 FLDA 0 00230 1100 SETX XRDEXP 00231 0014 00232 1110 SETB BPDEXP 00233 0011 BASE BPDEXP 00234 0101 LDX 1,1 00235 0001 00236 0102 LDX 73,2 /FOR ALIGNING 00237 0073 00240 6200 FSTA BPDEXP 00241 0610 FLDA% BPDEXP,1 /ADDRESS OF X 00242 6200 FSTA BPDEXP 00243 0050 STARTE 00244 0600 FLDA% BPDEXP /GET X 00245 0100 LDX 0,0 00246 0000 00247 1060 JGT DEX1 /CHECK SIGN 00250 0254 00251 0003 FNEG 00252 0100 LDX -1,0 /SET FLAG 00253 7777 00254 1040 DEX1, JNE DEX2 /X=0 00255 0261 00256 0224 FLDA DEXFP1 /E^0=1 00257 1030 JA DEXRTN 00260 0045 00261 6202 DEX2, FSTA X RALF V50A 8-APR-92 PAGE 1-4 00262 1030 JA DEX4 00263 0267 00264 0002 DEX3, FCLA 00265 1030 JA DEXRTN /RETURN 0 FOR TOO SMALL 00266 0045 / /SET UP M+N+R=X*LOG2(E) 00267 0220 DEX4, FLDA LOG2E 00270 4202 FMUL X 00271 6202 FSTA X 00272 0202 FLDA X 00273 0012 ALN 2 /FIX 00274 0004 FNORM /FLOAT 00275 6212 FSTA M /INTEGER PART 00276 0202 FLDA X 00277 2212 FSUB M 00300 6214 FSTA N /FRACTION 00301 1040 JNE DEX50 /0 IS SPECIAL CASE 00302 0310 00303 0224 FLDA DEXFP1 /1.0 00304 6214 FSTA N /N 00305 6216 FSTA R /R 00306 1030 JA DEX20 /SKIP 00307 0361 / /CALCULATE N+R 00310 0101 DEX50, LDX 0,1 00311 0000 00312 0214 FLDA N 00313 6216 FSTA R /IF < .125 ALREADY 00314 2222 DEX5, FSUB DFP125 /-.125 00315 1050 JLT DEX6 /DONE IF .LT. 00316 0324 00317 6216 FSTA R /STORE REMAINDER 00320 0111 ADDX 1,1 /NEXT POWER OF 2 00321 0001 00322 1030 JA DEX5 /AND AGAIN 00323 0314 / /GET N FROM TABLE 00324 0410 DEX6, FLDA DEXFP1,1 00325 0105 00326 6214 FSTA N / /NOW CALCULATE R 00327 0216 FLDA R /IF R=0 00330 1040 JNE DEX7 00331 0336 00332 0224 FLDA DEXFP1 /2^R=1 00333 6216 FSTA R 00334 1030 JA DEX20 /NO CALCULATION 00335 0361 / / 00336 0246 DEX7, FLDA DEXB4 00337 3216 FDIV R /(B4/R) RALF V50A 8-APR-92 PAGE 1-5 00340 6202 FSTA X 00341 0252 FLDA DEXD4 /D4*R 00342 4216 FMUL R 00343 1202 FADD X /+(B4/R) 00344 2250 FSUB DEXC4 /-C4 00345 6204 FSTA DTEMP1 00346 0216 FLDA R 00347 1202 FADD X /R+(B4/R) 00350 6216 FSTA R 00351 0254 FLDA DEXH4 00352 3216 FDIV R /H4/(R+B4/R) 00353 1204 FADD DTEMP1 00354 6204 FSTA DTEMP1 00355 0244 FLDA DEXA4 00356 3204 FDIV DTEMP1 00357 1224 FADD DEXFP1 00360 6216 FSTA R / /CALCULATE 2^M / 00361 0212 DEX20, FLDA M 00362 1040 JNE DEX21 00363 0367 00364 0224 FLDA DEXFP1 00365 1030 JA DEX23 00366 0375 00367 0003 DEX21, FNEG 00370 0021 ATX 1 00371 0224 FLDA DEXFP1 00372 4206 DEX22, FMUL DFP2 00373 2110 JXN DEX22,1+ 00374 0372 00375 6212 DEX23, FSTA M /M*2 / /CALCULATE M*N*R / 00376 0212 DEX30, FLDA M 00377 4214 FMUL N 00400 4216 FMUL R 00401 6202 FSTA X 00402 2000 JXN DEX31,0 /WAS X MINUS 00403 0406 00404 1030 JA DEXRTN 00405 0045 00406 0224 DEX31, FLDA DEXFP1 /.1/X IF -X 00407 3202 FDIV X 00410 1030 JA DEXRTN 00411 0045 RALF V50A 8-APR-92 PAGE 2 RALF V50A 8-APR-92 PAGE 2-1 NO ERRORS 41 SYMBOLS, NO ABS REFS # C 00000 #DEXP 00223 #MAIN S 00000 BPDEXP 00011 DEXA4 00165 DEXB4 00173 DEXC4 00201 DEXD4 00207 DEXFP1 00105 DEXH4 00215 DEXP S 00412 DEXPXR 00005 DEXRTN 00045 DEX1 00254 DEX2 00261 DEX20 00361 DEX21 00367 DEX22 00372 DEX23 00375 DEX3 00264 DEX30 00376 DEX31 00406 DEX4 00267 DEX5 00314 DEX50 00310 DEX6 00324 DEX7 00336 DFP125 00077 DFP2 00033 DFP2S8 00121 DFP3S8 00127 DFP4S8 00135 DFP5S8 00143 DFP6S8 00151 DFP7S8 00157 DFR1S8 00113 DTEMP1 00025 LOG2E 00071 M 00047 N 00055 R 00063 X 00017 XRDEXP 00014