home *** CD-ROM | disk | FTP | other *** search
- Documentation on complex math routines in CBASIC by E.R. Le Clear.
-
- Files:
-
- APPENDIX.DOC CMATH.DOC COMCALC.BAS COMCALC.INT
- COMDISK.DOC DIVCOM.SRT LPFILTAN.BAS LPFILTAN.INT
- MPYCOM.SRT MTXMPY.SRT PAR/SER.SRT POL/REC.SRT
- REC/POL.SRT REFC/Z.SRT SER/PAR.SRT SMATX.SRT
- XMATS.SRT YZZY.SRT Z/REFC.SRT ZXXZ.SRT
-
- The programs on this disk include several "subroutine" (.SRT) program
- files. The "subroutine" program files each contain a numeric "line
- number" at the beginning of the routine. The normal method for using
- these subroutines is to generate the CBASIC program with the text
- editor and then generate a new XXXXX.BAS file by concantinating the
- program file and desired subroutines as follows:
-
- PIP END$PROG.BAS=INIT$PROG.ASC,SER/PAR.SRT,PAR/SER.SRT
-
- Upon compiling, the intermediate code file END$PROG.INT contains the
- combined code for the three concantanated files. Since CBASIC only
- requires line identification for control transfer statements, the
- subroutines will be called by any control statement with the
- approriate "line number" suffix.
-
-
- ***** SUBROUTINES *****
-
- * POL/REC.SRT *
- "LINE NUMBER"=100.000
- THIS SUBROUTINE IS USED TO CONVERT POLAR MAGNITUDE
- (TEMP.MAG) AND PHASE (TEMP.PHA) INTO RECTANGULAR
- UNITS (TEMP.REAL)+J(TEMP.IMAG). PHASE IS IN DEGREES.
-
- * REC/POL.SRT *
- "LINE NUMBER"=100.100
- THIS SUBROUTINE IS USED TO CONVERT COMPLEX QUANTITY
- (TEMP.REAL)+J(TEMP.IMAG) INTO POLAR MAGNITUDE (TEMP.MAG)
- AND PHASE (TEMP.PHA). PHASE IS IN DEGREES.
-
- * SER/PAR.SRT *
- "LINE NUMBER"=101.100
- THIS SUBROUTINE IS USED TO CONVERT SERIES IMPEDANCE
- (TEMP.REAL)+J(TEMP.IMAG) INTO PARALLEL COMPONENTS
- (TEMP.REAL) AND J(TEMP.IMAG).
-
- * PAR/SER.SRT *
- "LINE NUMBER"=102.100
- THIS SUBROUTINE IS USED TO CONVERT A PARALLEL IMPEDANCE
- CONSISTING OF (TEMP.REAL) AND (TEMP.IMAG) INTO A SERIES
- IMPEDANCE (TEMP.REAL)+J(TEMP.IMAG).
-
- * MPYCOM.SRT *
- "LINE NUMBER"=103.100
- THIS SUBROUTINE IS USED TO MULTIPLY TWO COMPLEX NUMBERS
- AND RETURN THE RESULTANT COMPLEX NUMBER.
-
- (TEMP.REAL)+J(TEMP.IMAG)=((TEMP.REAL)+J(TEMP.IMAG))*
- ((TEMP1.REAL)+J(TEMP1.IMAG))
-
- * DIVCOM.SRT *
- "LINE NUMBER"=104.100
- THIS SUBROUTINE DIVIDES ONE COMPLEX QUANTITY BY ANOTHER
- AND RETURNS THE RESULTANT COMPLEX QUANTITY.
-
- (TEMP.REAL)+J(TEMP.IMAG)=((TEMP.REAL)+J(TEMP.IMAG))/
- ((TEMP1.REAL)+J(TEMP1.IMAG))
-
-
- * REFC/Z.SRT *
- "LINE NUMBER"=105.100
- THIS SUBROUTINE IS USED TO CONVERT A COMPLEX REFLECTION
- COEFFICIENT (TEMP.MAG) AT (TEMP.PHA) INTO AN EQUIVALENT
- SERIES IMPEDANCE IN A 50 OHM TRANSMISSION SYSTEM
- (TEMP.REAL)+J(TEMP.IMAG). PHASE (TEMP.PHA) IS IN DEGREES.
- REQUIRES DIVCOM.SRT TO RUN.
-
- * Z/REFC.SRT *
- "LINE NUMBER"=106.100
- THIS SUBROUTINE IS USED TO CONVERT A COMPLEX IMPEDANCE
- (TEMP.REAL)+J(TEMP.IMAG) INTO A REFLECTION COEFFICIENT
- (TEMP.MAG) AT PHASE (TEMP.PHA). PHASE IS IN DEGREES.
- REQUIRES DIVCOM.SRT TO RUN.
-
- * SMATX.SRT *
- "LINE NUMBER"=107.100
- THIS SUBROUTINE IS USED TO CONVERT A COMPLEX 2X2 "S"
- MATRIX INTO A COMPLEX 2X2 "X" MATRIX (A,B,C,D). CON-
- VERSION IS BASED ON A 50 OHM SYSTEM AND THE X MATRIX
- IS DENORMALIZED TO ALLOW DIRECT CONVERSION TO A "Z"
- MATRIX. REQUIRES MPYCOM.SRT AND DIVCOM.SRT TO RUN.
-
- INPUTS: (S11.REAL)+J(S11.IMAG)
- (S12.REAL)+J(S12.IMAG)
- (S21.REAL)+J(S21.IMAG)
- (S22.REAL)+J(S22.IMAG)
- RETURNS:(A.REAL)+J(A.IMAG)
- (B.REAL)+J(B.IMAG)
- (C.REAL)+J(C.IMAG)
- (D.REAL)+J(D.IMAG)
-
- * XMATS.SRT *
- "LINE NUMBER"=108.100
- THIS SUBROUTINE IS USED TO CONVERT A COMPLEX 2X2
- "X" (A,B,C,D) MATRIX INTO A COMPLEX 2X2 "S" MATRIX.
- CONVERSION IS BASED ON A 50 OHM SYSTEM AND THE "X"
- MATRIX DOES NOT HAVE TO BE NORMALIZED. THIS IS BUILT
- INTO THE PROGRAM. REQUIRES MPYCOM.SRT AND DIVCOM.SRT TO RUN.
-
- INPUTS: (A.REAL)+J(A.IMAG)
- (B.REAL)+J(B.IMAG)
- (C.REAL)+J(C.IMAG)
- (D.REAL)+J(D.IMAG)
- RETURNS:(S11.REAL)+J(S11.IMAG)
- (S12.REAL)+J(S12.IMAG)
- (S21.REAL)+J(S21.IMAG
- (S22.REAL)+J(S22.IMAG)
-
- * ZXXZ.SRT *
- "LINE NUMBER"=109.100
- THIS SUBROUTINE IS USED TO CONVERT A COMPLEX 2X2
- IMPEDANCE MATRIX (Z11,Z12,Z21,Z22) TO A COMPLEX
- 2X2 X MATRIX (A,B,C,D) OR VISA VERSA. REQUIRES
- MPYCOM.SRT AND DIVCOM.SRT TO RUN.
-
- INPUTS: (TEMPA.REAL)+J(TEMPA.IMAG)
- (TEMPB.REAL)+J(TEMPB.IMAG)
- (TEMPC.REAL)+J(TEMPC.IMAG)
- (TEMPD.REAL)+J(TEMPD.IMAG)
- RETURNS:SAME FORMAT AS INPUTS
-
- * YZZY.SRT *
- "LINE NUMBER"=110.100
- THIS SUBROUTINE IS USED TO CONVERT A COMPLEX 2X2
- ADMITTANCE MATRIX (Y11,Y12,Y21,Y22) INTO A COMPLEX
- 2X2 IMPEDANCE MATRIX (Z11,Z12,Z21,Z22) AND VICA
- VERSA. REQUIRES MPYCOM.SRT AND DIVCOM.SRT TO RUN.
-
- INPUTS: (TEMPA.REAL)+J(TEMPA.IMAG)
- (TEMPB.REAL)+J(TEMPB.IMAG)
- (TEMPC.REAL)+J(TEMPC.IMAG)
- (TEMPD.REAL)+J(TEMPD.IMAG)
- RETURNS:SAME FORMAT AS INPUTS
-
- * MTXMPY.SRT *
- "LINE NUMBER"=111.100
- THIS SUBROUTINE IS USED TO MULTIPLY A COMPLEX 2X2
- MATRIX (A11,A12,A21,A22) BY ANOTHER COMPLEX 2X2 MATRIX
- (B11,B12,B21,B22) AND RETURN COMPLEX 2X2 MATRIX
- (C11,C12,C21,C22).
-
- INPUTS: 1 2
- (A11.REAL)+J(A11.IMAG) (B11.REAL)+J(B11.IMAG)
- (A12.REAL)+J(A12.IMAG) (B12.REAL)+J(B12.IMAG)
- (A21.REAL)+J(A21.IMAG) (B21.REAL)+J(B21.IMAG)
- (A22.REAL)+J(A22.IMAG) (B22.REAL)+J(B22.IMAG)
-
- RETURNS:(C11.REAL)+J(C11.IMAG)
- (C12.REAL)+J(C12.IMAG)
- (C21.REAL)+J(C21.IMAG)
- (C22.REAL)+J(C22.IMAG)
-