File: EXP.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text) 


RALF V50A    8-APR-92    PAGE 1

            /R=EXP(R) SINGLE PREC. EXPONENTIAL FUNCTION
            /
            /
            / VERSION 50A 07.04.20 WVDM
            /
            /
                    SECT    EXP
00000 1030          JA      #EXP
00001 0074  
00002 0000          0
00003 0000  EXPFUD, 0
00004 0000          0
00005 0000          0
            /
                    EXTERN  #ARGER
00006 4000  EXPER,  TRAP4   #ARGER
00007 0000  
00010 0530          TEXT    +EXP   +
00011 2040  
00012 4040  
00013 1100  EXPXR,  SETX    XREXP
00014 0022  
00015 1110          SETB    BPEXP
00016 0017  
00017 0000  BPEXP,  F 0.0
00020 0000  
00021 0000  
00022 0000  XREXP,  F 0.0
00023 0000  
00024 0000  
00025 0000  EXP1,   F 0.0
00026 0000  
00027 0000  
00030 0000  EXP2,   F 0.0
00031 0000  
00032 0000  
00033 0000  EXP33,  F 0.0
00034 0000  
00035 0000  
00036 0000  EXP4,   F 0.0
00037 0000  
00040 0000  
00041 0001  F1EXP,  F       1.
00042 2000  
00043 0000  
00044 0002  F2EXP,  F       2.
00045 2000  
00046 0000  
                    ORG     10*3+BPEXP
00047 0040          FNOP
00050 1030          JA      EXPXR
00051 0013  
00052 0000          0
00053 1030  EXPRTN, JA      .
00054 0053  
            /
RALF V50A    8-APR-92    PAGE 1-1

00055 0004  EXPAF,  4                       /9.95459
00056 2372          2372
00057 1402          1402
            /
00060 7774  EXPBF,  7774                    /.03465735
00061 2157          2157
00062 5157          5157
            /
00063 0012  EXPCF,  12                      /-617.9723
00064 5454          5454
00065 0343          0343
            /
00066 0007  EXPDF,  7                       /87.417496
00067 2566          2566
00070 5341          5341
            /
00071 0001  EXP2E,  1                       /1.4426949 = 1/LN(2)
00072 2705          2705
00073 2435          2435
            /
                    BASE    0
00074 0006  #EXP,   STARTD
00075 0210          FLDA    10*3
00076 6400          FSTA    EXPRTN
00077 0053  
00100 0200          FLDA    0
00101 1100          SETX    XREXP
00102 0022  
00103 1110          SETB    BPEXP
00104 0017  
                    BASE    BPEXP
00105 0101          LDX     1,1     
00106 0001  
00107 6200          FSTA    BPEXP
00110 0610          FLDA%   BPEXP,1         /ADDR OF X
00111 6200          FSTA    BPEXP
00112 0005          STARTF
00113 0600          FLDA%   BPEXP           /GET X
00114 0100          LDX     -1,0            /PRESERVE SIGN.
00115 7777  
00116 1010          JGE     .+5
00117 0123  
00120 0003          FNEG                    /IF NEGATIVE NEGATE IT.
00121 0100          LDX     0,0             /AND REMEMBER IT,BUBBY.
00122 0000  
00123 4216          FMUL    EXP2E           /MULTIPLY TO BINARY TYPE.
00124 6202          FSTA    EXP1            /AND SAVE IT AWAY.
00125 1070          JAL     EXPER           /CAN'T FIX IT, ERROR.
00126 0006  
00127 0010          ALN     0               /FIX IT UP.
00130 6204          FSTA    EXP33           /AND SAVE IT.
00131 0004          FNORM                   /NOW NORMALIZE FOR OUR COMPUTATIONS.
00132 0003          FNEG                    /NEGATE THE FAC
00133 1202          FADD    EXP1            /ADD IN BEFORE NORMAL.
00134 6202          FSTA    EXP1            /AND STORE BACK.
00135 4202          FMUL    EXP1            /NOW SQUARE IT.
RALF V50A    8-APR-92    PAGE 1-2

00136 6203          FSTA    EXP2            /AND SAVE IT.
00137 1215          FADD    EXPDF           /START THE ITERATION.
00140 6205          FSTA    EXP4            /X^2+D
00141 0214          FLDA    EXPCF           /NEXT CONSTANT.
00142 3205          FDIV    EXP4            /C/(X^2+D)
00143 2202          FSUB    EXP1            /(C/(X^2+D))-X
00144 1212          FADD    EXPAF           /NEXT CONSTANT.
00145 6205          FSTA    EXP4            /(C/(X^2+D))-X+A
00146 0213          FLDA    EXPBF           /NEXT CONSTANT
00147 4203          FMUL    EXP2            /B*X^2
00150 1205          FADD    EXP4
00151 6205          FSTA    EXP4            /A-X+B*X^2+C/(X^2+D)
00152 0202          FLDA    EXP1
00153 3205          FDIV    EXP4            /X/[A-X+B*X^2+C/(X^2+D)]
00154 4207          FMUL    F2EXP
00155 1206          FADD    F1EXP           /1+2*X/[A-X+B*X^2+C/(X^2+D)]
00156 6400          FSTA    EXPFUD          /NOW FIDDLE THE EXPONENT.
00157 0003  
00160 0006          STARTD
00161 0204          FLDA    EXP33
00162 5400          FADDM   EXPFUD-1        /EXPONENT UPDATE.
00163 0002  
00164 0005          STARTF
00165 2000          JXN     EXPP,0          /NO INVERSION NECESSARY. RETURN.
00166 0174  
00167 0206          FLDA    F1EXP           /INVERT IT
00170 3400          FDIV    EXPFUD
00171 0003  
00172 1030          JA      EXPRTN
00173 0053  
00174 0400  EXPP,   FLDA    EXPFUD          /AN EXIT.
00175 0003  
00176 1030          JA      EXPRTN
00177 0053  
RALF V50A    8-APR-92    PAGE 2

            
RALF V50A    8-APR-92    PAGE 2-1

NO ERRORS 
21 SYMBOLS, NO ABS REFS 

 #      C 00000   #ARGER X 00000   #EXP     00074   #MAIN  S 00000  
 BPEXP    00017   EXP    S 00200   EXPAF    00055   EXPBF    00060  
 EXPCF    00063   EXPDF    00066   EXPER    00006   EXPFUD   00003  
 EXPP     00174   EXPRTN   00053   EXPXR    00013   EXP1     00025  
 EXP2     00030   EXP2E    00071   EXP33    00033   EXP4     00036  
 F1EXP    00041   F2EXP    00044   XREXP    00022