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


RALF V50A    8-APR-92    PAGE 1

            /C=CSQRT(C) COMPLEX SQUARE ROOT
            /
            /
            / VERSION 50A 27-MAY-80 WVDM
            /
            /
            /ENTER+ EXIT IN COMPLEX: Z=X+IY
            /
            /SQRT(Z)=SQRT(R)*(COS(THETA)+I*SIN(THETA))
            /
            /R=SQRT(X*X+Y*Y), THETA=ATAN2(Y/X)/2
            /
            /CALLS SQRT,ATAN2,SIN,COS
            /
                    SECT    CSQRT
00000 1030          JA      #CSQRT
00001 0051  
                    DPCHK
00002 0323          TEXT    +CSQRT +
00003 2122  
00004 2440  
00005 1100  CSQRTX, SETX    XR
00006 0016  
00007 1110          SETB    BP
00010 0013  
00011 1030          JA      .+3
00012 0014  
00013 0000  BP,     F 0.0
00014 0000  
00015 0000  
00016 0000  XR,     F 0.0
00017 0000  
00020 0000  
00021 0000  ARG,    F 0.0
00022 0000  
00023 0000  
00024 0000          F 0.0
00025 0000  
00026 0000  
00027 0000  THETA,  F 0.0
00030 0000  
00031 0000  
00032 0002  FP2,    F 2.0
00033 2000  
00034 0000  
                    ORG 10*3+BP
00043 0040          FNOP
00044 1030          JA      CSQRTX
00045 0005  
00046 0000          0
00047 1030  RT,     JA      .
00050 0047  
            /
                    BASE    0
00051 0006  #CSQRT, STARTD
00052 0210          FLDA    10*3
RALF V50A    8-APR-92    PAGE 1-1

00053 6400          FSTA    RT
00054 0047  
00055 0200          FLDA    0
00056 1110          SETB    BP
00057 0013  
00060 1100          SETX    XR
00061 0016  
                    BASE    BP
00062 0101          LDX     1,1
00063 0001  
00064 6200          FSTA    BP
00065 0610          FLDA%   BP,1
00066 6200          FSTA    BP
00067 0050          STARTE
00070 0600          FLDA%   BP
00071 6202          FSTA    ARG
00072 0005          STARTF
                    EXTERN  ATAN2
00073 1130          JSR     ATAN2           /ATAN(Y/X)
00074 0000  
00075 1030          JA      CSA
00076 0103  
00077 1030          JA      ARG+3
00100 0024  
00101 1030          JA      ARG
00102 0021  
00103 3205  CSA,    FDIV    FP2             /ATAN/2
00104 6204          FSTA    THETA
00105 0202          FLDA    ARG
00106 4202          FMUL    ARG             /X*X
00107 6202          FSTA    ARG
00110 0203          FLDA    ARG+3
00111 4203          FMUL    ARG+3           /Y*Y
00112 1202          FADD    ARG             /X*X+Y*Y
00113 6202          FSTA    ARG
                    EXTERN  SQRT            /SQRT(X*X+Y*Y)
00114 1130          JSR     SQRT
00115 0000  
00116 1030          JA      CSB
00117 0122  
00120 1030          JA      ARG
00121 0021  
00122 6202  CSB,    FSTA    ARG             /R
                    EXTERN  SQRT
00123 1130          JSR     SQRT
00124 0000  
00125 1030          JA      CSC
00126 0131  
00127 1030          JA      ARG             /SQRT(R)
00130 0021  
00131 6202  CSC,    FSTA    ARG             /SQRT(R)
                    EXTERN  SIN
00132 1130          JSR     SIN             /SIN(THETA/2)
00133 0000  
00134 1030          JA      CSD
00135 0140  
RALF V50A    8-APR-92    PAGE 1-2

00136 1030          JA      THETA
00137 0027  
00140 4202  CSD,    FMUL    ARG             /*SQRT(X)
00141 6203          FSTA    ARG+3
                    EXTERN  COS
00142 1130          JSR     COS             /COS(THETA/2)*SQRT(R)
00143 0000  
00144 1030          JA      CSE
00145 0150  
00146 1030          JA      THETA
00147 0027  
00150 4202  CSE,    FMUL    ARG
00151 6202          FSTA    ARG
00152 0050          STARTE
00153 0202          FLDA    ARG
00154 6400          FSTA    #CAC
00155 0000  
00156 1030          JA      RT
00157 0047  
                    EXTERN  #CAC
RALF V50A    8-APR-92    PAGE 2

            
RALF V50A    8-APR-92    PAGE 2-1

NO ERRORS 
19 SYMBOLS, NO ABS REFS 

 #      C 00000   #CAC   X 00000   #CSQRT   00051   #MAIN  S 00000  
 ARG      00021   ATAN2  X 00000   BP       00013   COS    X 00000  
 CSA      00103   CSB      00122   CSC      00131   CSD      00140  
 CSE      00150   CSQRT  S 00160   CSQRTX   00005   FP2      00032  
 RT       00047   SIN    X 00000   SQRT   X 00000   THETA    00027  
 XR       00016