/ ALOG -- NATURAL LOG / FOR 23 BIT F. P. FORMAT / WRITTEN BY / PHILLIP SIEMENS / LAWRENCE LIVERMORE LABS / FEBRUARY 5, 1975 / ENTRY ALOG OPDEF TADI 1400 OPDEF DCAI 3400 OPDEF JMPI 5400 ABSYM NMI 7411 ABSYM MQL 7421 ABSYM MQA 7501 ABSYM SCA 7441 LAP X, BLOCK 1 X1, BLOCK 1 X2, BLOCK 1 LGER, 0114 /"ALOG" ERROR AT LOC XXXX 1707 ALOG, 6101 /VERSION # -- ENTRY 0003 /EDIT # TAD ALOG DCA ALOG1 /GET CDF ALOG1, HLT /CHANGE DF TO CALLING FIELD TADI ALOG# /GET DF OF ARG DCA ALOG2 INC ALOG# /BUMP POINTER CLA CMA TADI ALOG# /GET ADDRESS OF ARG DCA 10 INC ALOG# /BUMP POINTER TAD (17 DCA 11 CLA CMA CLL RTL /-3 DCA ALOG1 POL2, ALOG2, HLT /CHANGE DF TO ARG TADI 10 /GET ARG 6211 /CHANGE DF TO FAC DCAI 11 /PUT IN FAC ISZ ALOG1 /MOVED ALL 3 WORDS? JMP ALOG2 /NOT YET / ARG IS NOW IN FAC TADI (20 SPA SNA /IS ARG 0 OR -? JMP LGERR /YES -- ERROR CLA CMA TADI (22 DCA TEM /SAVE EXP-1 TADI (21 /MAKE 2*M-1 MQL TADI (20 AND (1777 /THIS HAS EFFECT OF SUBRACTING 1 NMI /NORMALIZE THE RESULT DCA X MQA DCA X1 SCA CIA IAC /THIS MULTIPLIES BY 2 DCA X2 DCAI (20 /CLEAR FAC / NOW EVALUATE THE SERIES EXPANSION TAD (-10 /8 TERMS DCA POL2 TAD ACOF ARG2, DCA ARG1# /SET UP ADDR TO COEF. CALL 1, FAD ARG1, ARG COF CALL 1, FMP ARG X TAD (3 /GET A 3 TAD ARG1# ISZ POL2 JMP ARG2 /MORE TERMS TO DO CLA TAD ACH /PUT ALOG(M) IN X DCA X TAD ACM DCA X1 TAD ACL DCA X2 DCA ACH /CLEAR FAC DCA ACM DCA ACL TAD TEM /GET EXP CALL 0, FLOT /FLOAT IT CALL 1, FMP /EXP * ALOG(2) ARG LN2 CALL 1, FAD ARG X /EXP * ALOG(2) + ALOG(M) = ALOG(X) CLA CLL CML RTL /2 TAD ALOG DCA ALOG3 TEM, ALOG3, HLT JMPI ALOG# LGERR, CALL 1, ERROR /FATAL ERROR ARG LGER ACOF, COF COF, 4544 / -6.4535442E-3 1730 7771 2236 / +3.6088494E-2 4304 7774 4746 / -9.5329390E-2 0771 7775 2535 / +1.6765407E-1 3301 7776 4113 / -2.4073380E-1 7212 7776 2517 / +3.3179902E-1 0310 7777 4000 / -4.9987412E-1 4100 7777 3777 / +9.9999644E-1 7742 0000 LN2, 2613 / LN 2.0000 4414 0000 END