A large commit.
[pdp8.git] / sw / os8 / v3d / sources / fortran / all / cexp.ra
diff --git a/sw/os8/v3d/sources/fortran/all/cexp.ra b/sw/os8/v3d/sources/fortran/all/cexp.ra
new file mode 100644 (file)
index 0000000..7a9dbd0
--- /dev/null
@@ -0,0 +1,71 @@
+/
+/   C E X P
+/   - - - -
+/
+/  COMPLEX EXPONENT ROUTINE
+/Z=X+IY
+/
+/ VERSION 5A 4-25-77 MH
+/
+/
+/CEXP(Z)=EXP(X)*(COS(Y)+I*SIN(Y))
+/ENTER+EXIT IN COMPLEX
+/EXTERNAL EXP,SIN,COS
+/
+       SECT    CEXP
+       JA      #CEXP
+       DPCHK
+       TEXT    +CEXP  +
+CEXPXR,        SETX    XR
+       SETB    BP
+       JA      .+3
+BP,    F 0.0
+XR,    F 0.0
+ARG,   F 0.0
+       F 0.0
+       ORG     10*3+BP
+       FNOP
+       JA      CEXPXR
+       0
+RT,    JA      .
+       BASE    0
+#CEXP, 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  EXP
+       JSR     EXP             /EXP(X)
+       JA      CEX1
+       JA      ARG
+CEX1,  FSTA    ETEMP
+       EXTERN  COS
+       JSR     COS             /COS(Y)
+       JA      CEX2
+       JA      ARG+3
+CEX2,  FSTA    ARG
+       EXTERN  SIN
+       JSR     SIN             /SIN(Y)
+       JA      CEX3
+       JA      ARG+3
+CEX3,  FSTA    ARG+3
+       FLDA    ETEMP
+       FMULM   ARG
+       FMULM   ARG+3
+       STARTE
+       FLDA    ARG
+       FSTA    #CAC
+       JA      RT
+       EXTERN  #CAC
+ETEMP, F 0.0
+\f