NUMAL Section 1.3.2

BEGIN SECTION : 1.3.2 (May, 1974)

AUTHOR: C.G. VAN DER LAAN.

INSTITUTE: MATHEMATICAL CENTRE.

RECEIVED: 730815.

BRIEF DESCRIPTION:

    THIS SECTION CONTAINS TWO PROCEDURES :
    COMMUL CALCULATES THE PRODUCT OF TWO COMPLEX NUMBERS.
    COMDIV CALCULATES THE QUOTIENT OF TWO COMPLEX NUMBERS.

KEYWORDS:

    COMPLEX MULTIPLICATION.
    COMPLEX DIVISION.


SUBSECTION COMMUL.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE"COMMUL(AR,AI,BR,BI,RR,RI);
    "VALUE"AR,AI,BR,BI;"REAL"AR,AI,BR,BI,RR,RI;
    "CODE" 34341;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    AR,AI,BR,BI:<ARITHMETIC EXPRESSION>;
                ENTRY:AR,BR ARE THE REAL PARTS OF THE COMPLEX
                      NUMBERS AND AI,BI ARE THE IMAGINARY PARTS OF
                      THE COMPLEX NUMBERS;
    RR,RI:      <VARIABLE>;
                EXIT:THE REAL PART AND THE IMAGINARY PART OF THE
                     RESULTING COMPLEX NUMBER ARE DELIVERED IN RR AND
                     RI,RESPECTIVELY.

PROCEDURES USED: NONE.

LANGUAGE: ALGOL 60.

EXAMPLE OF USE:

    "BEGIN""REAL"R,I;
    COMMUL(.1,.2,.3,.4,R,I);
    OUTPUT(61,"(""("(.1+.2*I)*(.3+.4*I)=")",-D.DD,+D.DD,"("*I")"")",R,I
         )
    "END"

    (.1+.2*I)*(.3+.4*I)=-0.05+0.10*I


SUBSECTION : COMDIV.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE"COMDIV(XR,XI,YR,YI,ZR,ZI);
    "VALUE"XR,XI,YR,YI;"REAL"XR,XI,YR,YI,ZR,ZI;
    "CODE" 34342;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    XR,XI,YR,YI:<ARITHMETIC EXPRESSION>;
                ENTRY:XR,YR ARE THE REAL PARTS OF THE NUMERATOR
                      AND THE DENOMINATOR,RESPECTIVELY AND XI,YI ARE
                      THE CORRESPONDING IMAGINARY PARTS;
    ZR,ZI:      <VARIABLE>;
                EXIT:THE REAL PART AND THE IMAGINARY PART OF THE
                     RESULTING COMPLEX NUMBER ARE DELIVERED IN RR
                     AND RI,RESPECTIVELY.

RUNNING TIME:

    AT MOST SIX MULTIPLICATIONS AND/OR DIVISIONS ARE USED.

LANGUAGE: ALGOL 60.

METHOD AND PERFORMANCE:

    THE PROCEDURE IS NOT PROTECTED AGAINST DIVISION BY ZERO.

EXAMPLE OF USE:

"BEGIN""REAL"R,I;
COMDIV(-.05,.1,.1,.2,R,I);
OUTPUT(61,"(""("(-.05+.1*I)/(.1+.2*I)=")",-D.DD,+D.DD,"("*I")"")"
       ,R,I)
"END"

(-.05+.1*I)/(.1+.2*I)= 0.30+0.40*I

SOURCE TEXT(S):
"CODE" 34341;
"CODE" 34342;