.TITLE .DF COMPUTE NATURAL EXPONENTIAL (E**ARG) (DOUBLE PREC) /COPYRIGHT 1970, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. .GLOBL .DF,.AS,.AP,.AX,.AW,.AU,.AO,.AB,.AQ,.ER,.AV / CALLING SEQUENCE / JMS* (.DF) SUBR CALL (ARG IN FLOATING ACC) / NEXT INSTRUCTION SUBR RETURN (RESULT IN FLOATING ACC) / .DF CAL 0 /ENTRY-EXIT LAC* .AB /GET SIGN WORD (.AB) DAC EXPF09 /SAVE SIGN OF ARG AND (377777) /MAKE FAC POSITIVE DAC* .AB JMS* .AS /MULTIPLY DOUBLE (.AS) .DSA EXPF02 / (ARG*LOG2(E)) JMS* .AP /STORE DOUBLE (.AP) .DSA EXPF04 / (TEMP) JMS* .AX /FIX (.AX) DAC EXPF06 /STORE INTEGER AS ANSWER EXPONENT ISZ EXPF06 / BUMP EXPONENT FOR .5 SCALING JMS* .AW /FLOAT INTEGER (.AW) JMS* .AU /REVERSE SUBTRACT DOUBLE (.AU) .DSA EXPF04 / (TEMP-ACC) FRACTION ONLY (F) JMS* .AP /STORE DOUBLE (.AP) .DSA EXPF04 /(F INTO TEMP) LAW -10 / SET ITERATION COUNT FOR 9 PASSES DAC EXPF11 /STORE CNTR LAC EXPF21 /GET ADDR OF C9 DAC EXPF14 / INTO PTR JMS* .AO /LOAD DOUBLE (.AO) .DSA EXPF20 / (C9) AS TERM EXPF12 JMS* .AS /MULTIPLY DOUBLE (.AS) .DSA EXPF04 / (F * TERM) EXPF13 ISZ EXPF14 /PTR = PTR +3 ISZ EXPF14 ISZ EXPF14 JMS* .AQ /ADD DOUBLE (.AQ) .DSA EXPF14+400000 / C(PTR) AS NEW TERM ISZ EXPF11 /CNTR = CNTR +1 JMP EXPF12 /CYCLE JMS* .AP /DONE-STORE DOUBLE (.AP) .DSA EXPF04 / (RESULT TO TEMP) JMS* .AS /MULTIPLY DOUBLE (.AS) .DSA EXPF04 / (RESULT * RESULT =(RESULT)**2) JMS* .AS / MULTIPLY DOUBLE .DSA EXPF06 / (EXPONENT * FINAL RESULT) LAC EXPF09 /IF ARG WAS NEGATIVE, TAKE SMA /RECIPROCAL OF ANSWER BEFORE EXIT JMP* .DF JMS* .AV .DSA EXPF21-3 JMP* .DF EXPF09 .DSA 0 EXPF02 .DSA 000001 /LOG2(E) (1) (1.442695041D0) .DSA 270524 / (2) .DSA 354514 / (3) EXPF04 CAL 0 /TEMP (1) CAL 0 / (2) CAL 0 / (3) EXPF06 CAL 0 /ANS EXP 200000 / EXPONENT STORAGE (2) 0 /EXPONENT STORAGE (3) EXPF11 CAL 0 /CNTR EXPF14 CAL 0 /PTR EXPF20 777745; 261767; 414110 /0.5180D-8 777752; 200334; 225756 /0.119610D-6 777756; 241410; 444530 /0.2406787D-5 777762; 256607; 213216 /0.41667033D-4 777766; 235452; 556272 /0.601133075D-3 777771; 343260; 433536 /0.6938013677D-2 777774; 365773; 677740 /0.6005662674D-1 777777; 261344; 137700 /0.3465735903D0 000001; 200000; 000000 /1.0D0 EXPF21 .DSA EXPF20 /ADDR OF C9 .END