       .TITLE .EF    COMPUTE NATURAL EXPONENTIAL (**ARG) (SINGLE PREC)
/COPYRIGHT 1970, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
       .GLOBL .EF,.AB,.AK,.AH,.AX,.AW,.AM,.AG,.AI,.ER,.AN
/             CALLING SEQUENCE
/      JMS*   (.EF)           SUBR CALL (ARG IN FLOATING ACC)
/      NEXT   INSTRUCTION     SUBR RETURN (RESULT IN FLOATING ACC)
/
.EF    CAL    0              /ENTRY-EXIT
       LAC*   .AB            /GET SIGN WORD (.AB)
       DAC    EF09           /SAVE SIGN OF ARG
       AND    (377777)       /MAKE FAC POSITIVE
       DAC*   .AB
       JMS*   .AK            /MULTIPLY REAL (.AK)
       .DSA   EF02           / (ARG * LOG2(E))
       JMS*   .AH            /STORE REAL (.AH)
       .DSA   EF04           / (TEMP)
       JMS*   .AX            /FIX (.AX)
       DAC    EF06           /STORE INTEGER AS ANSWER EXP
       ISZ    EF06           /BUMP EXPONENT FOR .5 SCALING
       JMS*   .AW            /FLOAT INTEGER (.AW)
       JMS*   .AM            /REVERSE SUBTRACT REAL (.AM)
       .DSA   EF04           / (TEMP-ACC) FRACTION ONLY (F)
       JMS*   .AH            /STORE REAL (.AH)
       .DSA   EF04           / (F) INTO TEMP
       LAW    -6             /SET ITERATION COUNT FOR 7 TERMS
       DAC    EF11           /STORE COUNTER
       LAC    EF21           /GET ADDR OF C7
       DAC    EF14           /STORE INTO POINTER
       JMS*   .AG            /LOAD REAL (.AG)
       .DSA   EF20           / (C7 AS TERM)
EF12   JMS*   .AK            /MULTIPLY REAL (.AK)
       .DSA   EF04           / ((F) * TERM)
EF13   ISZ    EF14           /BUMP POINTER TO NEXT C
       ISZ    EF14
       JMS*   .AI            /ADD REAL
       .DSA   EF14+400000    / (C + (F + TERM) AS TERM
       ISZ    EF11           /CNTR = CNTR + 1
       JMP    EF12           /CYCLE
       JMS*   .AH            /DONE-STORE REAL (.AH)
       .DSA   EF04           / (RESULT TO TEMP)
       JMS*   .AK            /MULTIPLY REAL (.AK)
       .DSA   EF04           / (RESULT * RESULT = RESULT**2)
       JMS*   .AK            /MULTIPLY REAL
       .DSA   EF06           /(EXPONENT * FINAL RESULT)
       LAC    EF09           /IF ARG WAS NEGATIVE,
       SMA                   /TAKE RECIPROCAL OF
       JMP*   .EF            /ANSWER BEFORE EXIT
       JMS*   .AN
       .DSA   EF21-2
       JMP*   .EF
EF09   .DSA   0
EF04   CAL    0              /TEMP (1)
       CAL    0              /     (2)
EF06   CAL    0              /ANS EXP
              200000         /EXP STORAGE (2)
EF11   CAL    0              /CNTR
EF14   CAL    0              /PTR
EF02   .DSA   355001	/LOG2(E) (1) (+1.442695041E0)
       .DSA   270524	/ (2)
EF20          760756         /C7 (1)  ( 0.241E-5)
              241566         /   (2)
              512762         /C6 (1)  ( 0.4167E-4)
              256615         /   (2)
              233766         /C5 (1)  ( 0.60113E-3)
              235452         /   (2)
              374771         /C4 (1)  ( 0.693801E-2)
              343260         /   (2)
              703774         /C3 (1)  ( 0.06005663)
              365773         /   (2)
              140777         /C2 (1)  ( 0.34657359)
              261344         /   (2)
              1              /C1 (1)  ( 1.0)
              200000         /   (2)
EF21   .DSA   EF20           /ADDR OF C7
       .END
