home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug083.ark / COMDISK.DOC < prev    next >
Encoding:
Text File  |  1984-04-29  |  5.6 KB  |  162 lines

  1. Documentation on complex math routines in CBASIC by E.R. Le Clear.
  2.  
  3. Files:
  4.  
  5. APPENDIX.DOC    CMATH.DOC    COMCALC.BAS    COMCALC.INT
  6. COMDISK.DOC    DIVCOM.SRT    LPFILTAN.BAS    LPFILTAN.INT
  7. MPYCOM.SRT    MTXMPY.SRT    PAR/SER.SRT    POL/REC.SRT
  8. REC/POL.SRT    REFC/Z.SRT    SER/PAR.SRT    SMATX.SRT
  9. XMATS.SRT    YZZY.SRT    Z/REFC.SRT    ZXXZ.SRT
  10.  
  11. The programs on this disk include several  "subroutine" (.SRT) program
  12. files.  The "subroutine" program files each contain  a  numeric  "line
  13. number" at the  beginning of the routine.  The normal method for using
  14. these subroutines is to generate the  CBASIC  program  with  the  text
  15. editor  and  then  generate a new XXXXX.BAS file by concantinating the
  16. program file and desired subroutines as follows:
  17.  
  18. PIP END$PROG.BAS=INIT$PROG.ASC,SER/PAR.SRT,PAR/SER.SRT 
  19.  
  20. Upon  compiling, the intermediate code file END$PROG.INT contains  the
  21. combined  code  for  the  three concantanated files. Since CBASIC only
  22. requires line identification  for  control  transfer  statements,  the
  23. subroutines  will  be  called  by  any  control  statement  with   the
  24. approriate "line number" suffix.  
  25.  
  26.  
  27.            ***** SUBROUTINES *****
  28.  
  29.                * POL/REC.SRT *
  30. "LINE NUMBER"=100.000
  31. THIS SUBROUTINE IS USED TO CONVERT POLAR MAGNITUDE
  32. (TEMP.MAG) AND PHASE (TEMP.PHA) INTO RECTANGULAR
  33. UNITS (TEMP.REAL)+J(TEMP.IMAG). PHASE IS IN DEGREES.
  34.  
  35.                * REC/POL.SRT *
  36. "LINE NUMBER"=100.100
  37. THIS SUBROUTINE IS USED TO CONVERT COMPLEX QUANTITY
  38. (TEMP.REAL)+J(TEMP.IMAG) INTO POLAR MAGNITUDE (TEMP.MAG)
  39. AND PHASE (TEMP.PHA). PHASE IS IN DEGREES.
  40.  
  41.                * SER/PAR.SRT *
  42. "LINE NUMBER"=101.100
  43. THIS SUBROUTINE IS USED TO CONVERT SERIES IMPEDANCE
  44. (TEMP.REAL)+J(TEMP.IMAG) INTO PARALLEL COMPONENTS
  45. (TEMP.REAL) AND J(TEMP.IMAG).
  46.  
  47.                * PAR/SER.SRT *
  48. "LINE NUMBER"=102.100
  49. THIS SUBROUTINE IS USED TO CONVERT A PARALLEL IMPEDANCE
  50. CONSISTING OF (TEMP.REAL) AND (TEMP.IMAG) INTO A SERIES
  51. IMPEDANCE (TEMP.REAL)+J(TEMP.IMAG).
  52.  
  53.                * MPYCOM.SRT *
  54. "LINE NUMBER"=103.100
  55. THIS SUBROUTINE IS USED TO MULTIPLY TWO COMPLEX NUMBERS
  56. AND RETURN THE RESULTANT COMPLEX NUMBER.
  57.  
  58. (TEMP.REAL)+J(TEMP.IMAG)=((TEMP.REAL)+J(TEMP.IMAG))*
  59.                         ((TEMP1.REAL)+J(TEMP1.IMAG))
  60.  
  61.                * DIVCOM.SRT *
  62. "LINE NUMBER"=104.100
  63. THIS SUBROUTINE DIVIDES ONE COMPLEX QUANTITY BY ANOTHER
  64. AND RETURNS THE RESULTANT COMPLEX QUANTITY.
  65.  
  66. (TEMP.REAL)+J(TEMP.IMAG)=((TEMP.REAL)+J(TEMP.IMAG))/
  67.                         ((TEMP1.REAL)+J(TEMP1.IMAG))
  68.  
  69.  
  70.                * REFC/Z.SRT *
  71. "LINE NUMBER"=105.100
  72. THIS SUBROUTINE IS USED TO CONVERT A COMPLEX REFLECTION
  73. COEFFICIENT (TEMP.MAG) AT (TEMP.PHA) INTO AN EQUIVALENT
  74. SERIES IMPEDANCE IN A 50 OHM TRANSMISSION SYSTEM
  75. (TEMP.REAL)+J(TEMP.IMAG). PHASE (TEMP.PHA) IS IN DEGREES.
  76. REQUIRES DIVCOM.SRT TO RUN.
  77.  
  78.                * Z/REFC.SRT *
  79. "LINE NUMBER"=106.100
  80. THIS SUBROUTINE IS USED TO CONVERT A COMPLEX IMPEDANCE
  81. (TEMP.REAL)+J(TEMP.IMAG) INTO A REFLECTION COEFFICIENT
  82. (TEMP.MAG) AT PHASE (TEMP.PHA). PHASE IS IN DEGREES.
  83. REQUIRES DIVCOM.SRT TO RUN.
  84.  
  85.                * SMATX.SRT *
  86. "LINE NUMBER"=107.100
  87. THIS SUBROUTINE IS USED TO CONVERT A COMPLEX 2X2 "S"
  88. MATRIX INTO A COMPLEX 2X2 "X" MATRIX (A,B,C,D). CON-
  89. VERSION IS BASED ON A 50 OHM SYSTEM AND THE X MATRIX
  90. IS DENORMALIZED TO ALLOW DIRECT CONVERSION TO A "Z"
  91. MATRIX. REQUIRES MPYCOM.SRT AND DIVCOM.SRT TO RUN.
  92.  
  93. INPUTS:        (S11.REAL)+J(S11.IMAG)
  94.        (S12.REAL)+J(S12.IMAG)
  95.        (S21.REAL)+J(S21.IMAG)
  96.        (S22.REAL)+J(S22.IMAG)
  97. RETURNS:(A.REAL)+J(A.IMAG)
  98.        (B.REAL)+J(B.IMAG)
  99.        (C.REAL)+J(C.IMAG)
  100.        (D.REAL)+J(D.IMAG)
  101.  
  102.                * XMATS.SRT *
  103. "LINE NUMBER"=108.100
  104. THIS SUBROUTINE IS USED TO CONVERT A COMPLEX 2X2
  105. "X" (A,B,C,D) MATRIX INTO A COMPLEX 2X2 "S" MATRIX.
  106. CONVERSION IS BASED ON A 50 OHM SYSTEM AND THE "X"
  107. MATRIX DOES NOT HAVE TO BE NORMALIZED. THIS IS BUILT
  108. INTO THE PROGRAM. REQUIRES MPYCOM.SRT AND DIVCOM.SRT TO RUN.
  109.  
  110. INPUTS:        (A.REAL)+J(A.IMAG)
  111.        (B.REAL)+J(B.IMAG)
  112.        (C.REAL)+J(C.IMAG)
  113.        (D.REAL)+J(D.IMAG)
  114. RETURNS:(S11.REAL)+J(S11.IMAG)
  115.        (S12.REAL)+J(S12.IMAG)
  116.        (S21.REAL)+J(S21.IMAG
  117.        (S22.REAL)+J(S22.IMAG)
  118.  
  119.                * ZXXZ.SRT *
  120. "LINE NUMBER"=109.100
  121. THIS SUBROUTINE IS USED TO CONVERT A COMPLEX 2X2
  122. IMPEDANCE MATRIX (Z11,Z12,Z21,Z22) TO A COMPLEX
  123. 2X2 X MATRIX (A,B,C,D) OR VISA VERSA. REQUIRES
  124. MPYCOM.SRT AND DIVCOM.SRT TO RUN.
  125.  
  126. INPUTS:        (TEMPA.REAL)+J(TEMPA.IMAG)
  127.        (TEMPB.REAL)+J(TEMPB.IMAG)
  128.        (TEMPC.REAL)+J(TEMPC.IMAG)
  129.        (TEMPD.REAL)+J(TEMPD.IMAG)
  130. RETURNS:SAME FORMAT AS INPUTS
  131.  
  132.                * YZZY.SRT *
  133. "LINE NUMBER"=110.100
  134. THIS SUBROUTINE IS USED TO CONVERT A COMPLEX 2X2
  135. ADMITTANCE MATRIX (Y11,Y12,Y21,Y22) INTO A COMPLEX
  136. 2X2 IMPEDANCE MATRIX (Z11,Z12,Z21,Z22) AND VICA
  137. VERSA. REQUIRES MPYCOM.SRT AND DIVCOM.SRT TO RUN.
  138.  
  139. INPUTS:        (TEMPA.REAL)+J(TEMPA.IMAG)
  140.        (TEMPB.REAL)+J(TEMPB.IMAG)
  141.        (TEMPC.REAL)+J(TEMPC.IMAG)
  142.        (TEMPD.REAL)+J(TEMPD.IMAG)
  143. RETURNS:SAME FORMAT AS INPUTS
  144.  
  145.                * MTXMPY.SRT *
  146. "LINE NUMBER"=111.100
  147. THIS SUBROUTINE IS USED TO MULTIPLY A COMPLEX 2X2
  148. MATRIX (A11,A12,A21,A22) BY ANOTHER COMPLEX 2X2 MATRIX
  149. (B11,B12,B21,B22) AND RETURN COMPLEX 2X2 MATRIX
  150. (C11,C12,C21,C22).
  151.  
  152. INPUTS:                1                       2
  153.        (A11.REAL)+J(A11.IMAG)  (B11.REAL)+J(B11.IMAG)
  154.        (A12.REAL)+J(A12.IMAG)  (B12.REAL)+J(B12.IMAG)
  155.        (A21.REAL)+J(A21.IMAG)  (B21.REAL)+J(B21.IMAG)
  156.        (A22.REAL)+J(A22.IMAG)  (B22.REAL)+J(B22.IMAG)
  157.  
  158. RETURNS:(C11.REAL)+J(C11.IMAG)
  159.        (C12.REAL)+J(C12.IMAG)
  160.        (C21.REAL)+J(C21.IMAG)
  161.        (C22.REAL)+J(C22.IMAG)
  162.