software: Added more and more
[pdp8.git] / sw / f4 / FRTSRC / clog.ra
diff --git a/sw/f4/FRTSRC/clog.ra b/sw/f4/FRTSRC/clog.ra
new file mode 100644 (file)
index 0000000..995e613
--- /dev/null
@@ -0,0 +1,81 @@
+/
+/   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