--- /dev/null
+/
+/ C S Q R T
+/ - - - - -
+/
+/ VERSION 5A 4-27-77 PT
+/
+/COMPLEX SQUARE ROOT ROUTINE
+/ENTER+ EXIT IN COMPLEX
+/Z=X+IX
+/
+/SQRT(Z)=SQRT(R)*COS(THETA)+SIN(THETA))
+/
+/R=SQRT(X*X+Y*Y)
+/THETA=ATAN2(Y/X)/2
+/
+/CALLS SQRT,ATAN2,SIN,COS
+/
+ SECT CSQRT
+ JA #CSQRT
+ DPCHK
+ TEXT +CSQRT +
+CSQRTX, SETX XR
+ SETB BP
+ JA .+3
+BP, F 0.0
+XR, F 0.0
+ARG, F 0.0
+ F 0.0
+THETA, F 0.0
+FP2, F 2.0
+ ORG 10*3+BP
+ FNOP
+ JA CSQRTX
+ 0
+RT, JA .
+ BASE 0
+#CSQRT, STARTD
+ FLDA 10*3
+ FSTA RT
+ FLDA 0
+ SETB BP
+ SETX XR
+ BASE BP
+ LDX 1,1
+ FSTA BP
+ FLDA% BP,1
+ FSTA BP
+ STARTE
+ FLDA% BP
+ FSTA ARG
+ STARTF
+ EXTERN ATAN2
+ JSR ATAN2 /ATAN(Y/X)
+ JA CSA
+ JA ARG+3
+ JA ARG
+CSA, FDIV FP2 /ATAN/2
+ FSTA THETA
+ FLDA ARG
+ FMULM ARG /X*X
+ FLDA ARG+3
+ FMUL ARG+3 /Y*Y
+ FADD ARG /X*X+Y*Y
+ FSTA ARG
+ EXTERN SQRT /SQRT(X*X+Y*Y)
+ JSR SQRT
+ JA CSB
+ JA ARG
+CSB, FSTA ARG /R
+ EXTERN SQRT
+ JSR SQRT
+ JA CSC
+ JA ARG /SQRT(R)
+CSC, FSTA ARG /SQRT(R)
+ EXTERN SIN
+ JSR SIN /SIN(THETA/2)
+ JA CSD
+ JA THETA
+CSD, FMUL ARG /*SQRT(X)
+ FSTA ARG+3
+ EXTERN COS
+ JSR COS /COS(THETA/2)*SQRT(R)
+ JA CSE
+ JA THETA
+CSE, FMUL ARG
+ FSTA ARG
+ STARTE
+ FLDA ARG
+ FSTA #CAC
+ JA RT
+ EXTERN #CAC
+\f