NUMAL Section 1.3.1

BEGIN SECTION : 1.3.1 (May, 1974)

AUTHOR: C.G. VAN DER LAAN.

INSTITUTE: MATHEMATICAL CENTRE.

RECEIVED: 730815.

BRIEF DESCRIPTION:

THIS SECTION CONTAINS THREE PROECEDURES:
    COMABS CALCULATES THE MODULUS OF A COMPLEX NUMBER.
    COMSQRT CALCULATES THE SQUARE ROOT OF A COMPLEX NUMBER
    CARPOL TRANSFORMS A COMPLEX NUMBER GIVEN IN CARTESIAN COORDINATES
    INTO POLAR COORDINATES

KEYWORDS:

    COMPLEX NUMBER.
    MODULUS.
    SQUARE ROOT.
    TRANSFORMATION.
    CARTESIAN COORDINATES.
    POLAR COORDINATES.


SUBSECTION: COMABS.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "REAL""PROCEDURE"COMABS(XR,XI);
    "VALUE"XR,XI;"REAL"XR,XI;
    "CODE" 34340;

    COMABS DELIVERS THE MODULUS OF THE COMPLEX NUMBER XR + I * XI;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    XR,XI:<ARITHMETIC EXPRESSION>;
          ENTRY:XR,XI ARE THE REAL PART AND THE IMAGINARY PART
                OF THE COMPLEX NUMBER,RESPECTIVELY.

PROCEDURES USED: NONE.

LANGUAGE: ALGOL 60.

EXAMPLE OF USE:

"BEGIN"
OUTPUT(61,"(""("THE MODULUS OF .3+.4*I EQUALS")",-D.DD")",
      COMABS(.3,.4))
"END"

THE MODULUS OF .3+.4*I EQUALS 0.50


SUBSECTION : COMSQRT.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE"COMSQRT(AR,AI,PR,PI);
    "VALUE"AR,AI;"REAL"AR,AI,PR,PI;
    "CODE" 34343;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    AR,AI:<ARITHMETIC EXPRESSION>;
          ENTRY:AR,AI ARE THE REAL PART AND THE IMAGINARY PART
                OF THE COMPLEX NUMBER,RESPECTIVELY;
    PR,PI;<VARIABLE>;
          EXIT:THE REAL PART AND THE IMAGINARY PART OF THE SQUARE ROOT
               ARE DELIVERED IN PR AND PI,RESPECTIVELY.

PROCEDURES USED: NONE.

LANGUAGE: ALGOL 60.

METHOD AND PERFORMANCE:

    THE REPRESENTATION OF THE RESULTING COMPLEX NUMBER IS CHOSEN SUCH
    THAT ITS REAL PART IS NONNEGATIVE;THE PROCEDURE IS PROTECTED
    AGAINST INTERMEDIATE OVERFLOW.

EXAMPLE OF USE:

"BEGIN""REAL"R,I;
COMSQRT(-3,4,R,I);
OUTPUT(61,"(""("THE SQUARE ROOT OF -3+4*I IS")",-D.DD,+D.DD,"("*I")"
      ")",R,I);
"END"

THE SQUARE ROOT OF -3+4*I IS 1.00+2.00*I


SUBSECTION : CARPOL.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE"CARPOL(AR,AI,R,C,S);
    "VALUE"AR,AI;"REAL"AR,AI,R,C,S;
    "CODE" 34344;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    AR,AI:<ARITHMETIC EXPRESSION>;
          ENTRY:AR,AI ARE THE REAL PART AND THE IMAGINARY PART OF THE
                COMPLEX NUMBER ,RESPECTIVELY;
    R,C,S:<VARIABLE>;
          EXIT:THE MODULUS OF THE COMPLEX NUMBER IS DELIVERED IN R
               AND THE COSINE AND THE SINE OF THE ARGUMENT ARE
               DELIVERED IN C AND S,RESPECTIVELY;
               WHEN AR=AI=0 THEN C:=1 AND R:=S:=0.

PROCEDURES USED: NONE.

LANGUAGE: ALGOL 60.

EXAMPLE OF USE:

"BEGIN""REAL"R,C,S;
CARPOL(.3,.4,R,C,S);
OUTPUT(61,"(""("THE POLAR COORDINATES OF .3+.4*I ARE:")",/,
             "("MODULUS:")",-D.DD,/,
             "("COSINE OF ARGUMENT:")",-D.DD,/,
             "("SINE OF ARGUMENT:")",-D.DD")",R,C,S)
"END"

THE POLAR COORDINATES OF .3+.4*I ARE:
MODULUS: 0.50
COSINE OF ARGUMENT: 0.60
SINE OF ARGUMENT: 0.80

SOURCE TEXT(S):
"CODE" 34340;
"CODE" 34343;

"CODE" 34344;