--- /dev/null
+/
+/ C L O G
+/ - - - -
+/
+/ VERSION 5A 4-27-77 PT
+/
+/COMPLEX LOG ROUTINE
+/
+/ENTER + EXIT IN COMPLEX
+/
+/Z=X+IY
+/LOG(Z)=LOG(ABS(Z))+I*THETA
+/ABS(Z)=SQRT(X*X+Y*Y)
+/THETA=ATAN(Y/X)
+/
+/CALLS REAL SQRT,LOG,ATAN2
+/
+ SECT CLOG
+ JA #CLOG
+ DPCHK
+ TEXT +CLOG +
+CLOGXR, SETX XR
+ SETB BP
+ JA .+3
+BP, F 0.0
+XR, F 0.0
+ F 0.0
+ARG, F 0.0
+ F 0.0
+ ORG 10*3+BP
+ FNOP
+ JA CLOGXR
+ 0
+RT, JA .
+ BASE 0
+#CLOG, 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
+ JA CL1
+ JA ARG+3 /ATAN(Y/X)
+ JA ARG
+CL1, FSTA ETEMP
+ FLDA ARG
+ FMULM ARG
+ FLDA ARG+3
+ FMUL ARG+3 /X*X+Y*Y
+ FADD ARG
+ FSTA ARG
+ EXTERN SQRT
+ JSR SQRT /TAKE SQRT
+ JA CL2
+ JA ARG
+CL2, FSTA ARG
+ EXTERN ALOG /ALOG(ABS(Z))
+ JSR ALOG
+ JA CL3
+ JA ARG
+CL3, FSTA ARG /REAL PART
+ FLDA ETEMP /IMAGINARY PART
+ FSTA ARG+3
+ STARTE
+ FLDA ARG
+ FSTA #CAC
+ JA RT
+ EXTERN #CAC
+ETEMP, F 0.0
+\f