/ EXP -- EXPONENTIATION / FOR 23 BIT F. P. FORMAT / WRITTEN BY / PHILLIP SIEMENS / LAWRENCE LIVERMORE LABS / FEBRUARY 7, 1975 / USES A 7 TERM CHEBYCHEV POLYNOMIAL APPROX. ENTRY EXP OXlEV-TkLiM;vx/^{_?ww{?w7I_wo /WPE - XX -NPETEOTINNIA/ OF O 2RTB3. I. FO PARF TM / IW ETRBNT Y P/ LH PLII IEES NM SWL/NRA CEVLEMEIEORA R BL SBF/ARE RU 7Y SIGN, EXP1, HLT /CHANGE DF TO CALLING FIELD TADI EXP# /GET DF OF ARG DCA EXP2 INC EXP# /BUMP POINTER CLA CMA TADI EXP# /GET ADDRESS OF ARG DCA 10 INC EXP# /BUMP POINTER CLA CLL CML RTL /GET A 2 TAD EXP /SET UP RETURN CIF DCA EXIT1 TAD (17 DCA 11 CLA CMA CLL RTL /-3 DCA EXP1 PWTW, EXP2, HLT /CHANGE DF TO ARG TADI 10 /GET ARG 6211 /CHANGE DF TO FAC DCAI 11 /PUT IN FAC ISZ EXP1 /MOVED ALL 3 WORDS? JMP EXP2 /NOT YET / ARG IS NOW IN FAC /NOTE -- SIGN=EXP1=0 ALREADY TADI (20 SMA CLA /NEGATIVE? JMP EXP3 /NO CLA CMA DCA SIGN /SIGN INDICATES NEGATIVE CALL 0, CHS /MAKE POSITIVE EXP3, CALL 1, FMP /X*1./ALOG(2.) ARG LG2E JMS STOX /X = FAC CALL 0, FIX /GET PART TO LEFT OF DECIMAL DCA PWTW /SAVE IT FOR LATER TAD PWTW CIA /NEGATE IT CALL 0, FLOT /FLOAT IT CALL 1, FAD /NOW GET THE FRACTION PART ARG X JMS STOX /MOVE FAC TO X DCAI (20 /CLEAR FAC /DEPENDS ON FAD ONLY CHECKING /ACH TO SEE IF ZERO. / NOW EVALUATE THE SERIES EXPANSION FOR F*ALOG(2.) TAD MK6 DCA POL2 /6 TERMS TAD ACOF ARG2, DCA ARG1# /SET UP ADDR TO COEF. CALL 1, FAD ARG1, ARG COF CALL 1, FMP ARG X CLA CMA CLL RTL /-3 TAD ARG1# ISZ POL2 /MORE TERMS? JMP ARG2 /YES CALL 1, FAD /NOTE THAT ENTRY HERE IS WITH /AC NONZERO. FAD MUST HANDLE IT. ARG ONE TAD ACL TAD PWTW /MULTIPLY BY 2^(INTEGER PART) DCA ACL ISZ SIGN /WAS IT NEGATIVE? JMP EXIT1 /NO JMS STOX /YES -- STORE FAC IN X CLA CLL CML RTR /LOAD AC WITH 1 DCAI (20 DCAI (21 IAC DCAI (22 CALL 1, FDV /GET RECIPROCAL ARG X EXIT1, HLT /GETS A CIF CDF JMPI EXP# /FAST RETURN POL2, STOX, 0 /STORE FAC TO X SUB TAD ACH DCA X TAD ACM DCA X1 TAD ACL DCA X2 JMPI STOX / COEFFICIENTS FOR EXP(X) ACOF, COF 2613 /.99999622*(LN 2)^1 = .693144560 4366 0000 3660 /.50005992*(LN 2)^2 = .240255296 1276 7776 3426 /.16631354*(LN 2)^3 = .055386509 7173 7774 2412 /.04264947*(LN 2)^4 = .009844995 3163 MK6, 7772 2216 /.00695345*(LN 2)^5 = .001112571 4730 7767 COF, 2062 /.00231014*(LN 2)^6 = .000256207 4703 7765 LG2E, 2705 / 1/ALOG(2) 2435 0001 ONE, 2000 /1 0000 0001 END