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


RALF V50A    8-APR-92    PAGE 1

            /C=C**R COMPLEX RAISED TO INTEGER OR REAL INT. FUNC.
            /
            /
            / VERSION 50A 27-MAY-80 WVDM
            /
            /
            /C=A+I*B
            /C^D=R^D*EXP(D*I*THETA)
            /
            /C IS IN #BASE
            /D IS IN AC
            /
            /ENTER IN STARTF,EXIT IN STARTE
            /
                    SECT    #EXPCI
                    ENTRY   #EXPCR
                    DPCHK
                    EXTERN  SQRT
                    EXTERN  ATAN2
                    EXTERN  SIN
                    EXTERN  COS
                    EXTERN  EXP3
                    EXTERN  #CAC
            /
                    BASE    0
00000 1030  #EXPCR, JA      .
00001 0000  
00002 6400          FSTA    EXPON,0
00003 0141  
00004 0200          FLDA    0               /REAL
00005 6400          FSTA    A,0
00006 0133  
00007 0201          FLDA    3               /IMAG
00010 6400          FSTA    B,0
00011 0136  
            /
                    BASE    .+2000          /SET DUMMY BASE PAGE
            /
00012 0400          FLDA    A               /R=SQRT(A*A+B*B)
00013 0133  
00014 4400          FMUL    A
00015 0133  
00016 6400          FSTA    R
00017 0144  
00020 0400          FLDA    B
00021 0136  
00022 4400          FMUL    B
00023 0136  
00024 1400          FADD    R
00025 0144  
00026 6400          FSTA    R
00027 0144  
00030 1130          JSR     SQRT
00031 0000  
00032 1030          JA      .+4
00033 0036  
RALF V50A    8-APR-92    PAGE 1-1

00034 1030          JA      R
00035 0144  
00036 6400          FSTA    R
00037 0144  
00040 1130          JSR     EXP3            /R^EXPON
00041 0000  
00042 1030          JA      .+6
00043 0050  
00044 1030          JA      R
00045 0144  
00046 1030          JA      EXPON
00047 0141  
00050 6400          FSTA    R
00051 0144  
00052 1130          JSR     ATAN2           /THETA=ATAN(B/A)
00053 0000  
00054 1030          JA      .+6
00055 0062  
00056 1030          JA      B
00057 0136  
00060 1030          JA      A
00061 0133  
00062 4400          FMUL    EXPON           /THETA*EXPON
00063 0141  
00064 6400          FSTA    A               /PHASE ANGLE
00065 0133  
00066 1130          JSR     SIN             /IMAG=R*SIN(PHASE)
00067 0000  
00070 1030          JA      .+4
00071 0074  
00072 1030          JA      A
00073 0133  
00074 4400          FMUL    R
00075 0144  
00076 6400          FSTA    B
00077 0136  
00100 1130          JSR     COS             /REAL=R*COS(PHASE)
00101 0000  
00102 1030          JA      .+4
00103 0106  
00104 1030          JA      A
00105 0133  
00106 4400          FMUL    R
00107 0144  
00110 6400          FSTA    A
00111 0133  
00112 1010          JGE     .+3             /SKIP IF RESULT IS POS
00113 0115  
00114 0003          FNEG                    /IF NOT,MAKE IT POS
00115 2400          FSUB    LOWLIM          /TEST FOR ZERO
00116 0147  
00117 1010          JGE     .+5             /JUMP IF NOT 0
00120 0124  
00121 0002          FCLA                    /ASSUME RESULT SHOULD BE 0
00122 6400          FSTA    A               /AND STORE A 0
00123 0133  
RALF V50A    8-APR-92    PAGE 1-2

00124 0050          STARTE                  /RETURN RESULT IN #CAC AND STARTE
00125 0400          FLDA    A
00126 0133  
00127 6400          FSTA    #CAC
00130 0000  
00131 1030          JA      #EXPCR
00132 0000  
            /
00133 0000  A,      F 0.0
00134 0000  
00135 0000  
00136 0000  B,      F 0.0
00137 0000  
00140 0000  
00141 0000  EXPON,  F 0.0
00142 0000  
00143 0000  
00144 0000  R,      F 0.0
00145 0000  
00146 0000  
00147 7760  LOWLIM, F 0.000009      /NUMBERS >= 1.E-5 OK
00150 2267  
00151 7532  
RALF V50A    8-APR-92    PAGE 2

            
RALF V50A    8-APR-92    PAGE 2-1

NO ERRORS 
13 SYMBOLS, NO ABS REFS 

 #      C 00000   #CAC   X 00000   #EXPCI S 00152   #EXPCR   00000  
 #MAIN  S 00000   A        00133   ATAN2  X 00000   B        00136  
 COS    X 00000   EXPON    00141   EXP3   X 00000   LOWLIM   00147  
 R        00144   SIN    X 00000   SQRT   X 00000