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