NUMAL Section 1.2.9

BEGIN SECTION : 1.2.9 (December, 1975)

AUTHORS  :

    T.J. DEKKER, W. HOFFMANN (COMSCL),
    C.G. VAN DER LAAN (SCLCOM).

CONTRIBUTORS:

    W. HOFFMANN, S.P.N. VAN KAMPEN (COMSCL),
    H. FIOLET, C.G. VAN DER LAAN (SCLCOM).

INSTITUTE: MATHEMATICAL CENTRE.

RECEIVED: 731030.

BRIEF DESCRIPTION:

    THIS SECTION CONTAINS TWO PROCEDURES :

    COMSCL NORMALIZES  THE REAL AND  COMPLEX EIGENVECTORS
    GIVEN COLUMNWISE IN A TWO-DIMENSIONAL ARRAY; THE IMAGINARY PARTS OF
    THE CORRESPONDING  EIGENVALUES MUST  BE GIVEN IN A  ONE-DIMENSIONAL
    ARRAY;
    THE EIGENVECTORS ARE  NORMALIZED IN SUCH A WAY THAT, IN EACH EIGEN-
    VECTOR, AN ELEMENT OF MAXIMUM MODULUS EQUALS 1;
    THE NORMALIZED EIGENVECTORS ARE DELIVERED IN THE GIVEN ARRAY.

    SCLCOM NORMALIZES THE (NON-NULL) COLUMNS OF A COMPLEX MATRIX
    IN SUCH A WAY THAT IN EACH COLUMN AN ELEMENT OF MAXIMUM ABSOLUTE
    VALUE BECOMES EQUAL TO ONE.

KEYWORDS:

    NORMALIZATION,
    SCALING OF COMPLEX EIGENVECTORS,
    COMPLEX SCALING.


SUBSECTION : COMSCL.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE IS:
    "PROCEDURE" COMSCL(A, N, N1, N2, IM); "VALUE" N, N1, N2;
    "INTEGER" N, N1, N2; "ARRAY" A, IM;
    "CODE" 34193;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    A:      <ARRAY IDENTIFIER>;
            "ARRAY" A[1:N,N1:N2];
            ENTRY: EACH REAL  EIGENVECTOR MUST BE  GIVEN IN A COLUMN OF
                   ARRAY  A, WHOSE  CORRESPONDING  ELEMENT OF  ARRAY IM
                   EQUALS 0;
                   THE REAL  AND IMAGINARY  PART OF EACH COMPLEX EIGEN-
                   VECTOR MUST BE GIVEN IN CONSECUTIVE COLUMNS OF ARRAY
                   A, WHOSE CORRESPONDING  ELEMENTS OF ARRAY IM ARE NOT
                   EQUAL TO 0;
            EXIT:  THE NORMALIZED EIGENVECTORS (I.E. IN EACH EIGEN-
                   VECTOR AN ELEMENT  OF MAXIMUM MODULUS  EQUALS 1) ARE
                   DELIVERED IN THE CORRESPONDING COLUMNS OF A;
    N:      <ARITHMETIC EXPRESSION>;
            THE NUMBER OF ROWS OF ARRAY A;
    N1, N2: <ARITHMETIC EXPRESSION>;
            THE LOWER AND UPPER BOUND OF THE COLUMN INDICES OF ARRAY A;
    IM:     <ARRAY IDENTIFIER>;
            "ARRAY" IM[N1:N2];
            THE IMAGINARY PARTS OF THE EIGENVALUES, OF WHICH THE EIGEN-
            VECTORS ARE GIVEN IN THE CORRESPONDING COLUMNS OF  ARRAY A,
            MUST BE GIVEN IN ARRAY IM.

PROCEDURES USED: NONE.

RUNNING TIME: PROPORTIONAL TO N * (N2 - N1 + 1).

LANGUAGE: ALGOL 60.

METHOD AND PERFORMANCE: SEE REF [1].

REFERENCES:

    [1].T.J. DEKKER AND W. HOFFMANN.
        ALGOL 60 PROCEDURES IN NUMERICAL ALGEBRA, PART 2.
        MC TRACT 23, 1968, MATH. CENTR., AMSTERDAM.

EXAMPLE OF USE:
    THE PROCEDURE COMSCL IS USED IN COMEIG1, SECTION 3.3.1.2.2.


SUBSECTION : SCLCOM.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE"SCLCOM(AR,AI,N,N1,N2);
    "VALUE"N,N1,N2;"INTEGER"N,N1,N2;"ARRAY"AR,AI;
    "CODE" 34360;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    AR,AI:  <ARRAY IDENTIFIER>;
            "ARRAY" AR,AI[1:N,N1:N2];
            ENTRY:
            THE REAL PART AND THE IMAGINARY PART OF THE MATRIX OF
            WHICH THE COLUMNS ARE TO BE SCALED MUST BE GIVEN IN THE
            ARRAYS AR AND AI,RESPECTIVELY;
            EXIT:
            THE REAL PART AND THE IMAGINARY PART OF THE MATRIX WITH
            SCALED COLUMNS  ARE DELIVERED IN THE ARRAYS AR AND AI,
            RESPECTIVELY;
    N,N1,N2:<ARITHMETIC EXPRESSION>;
            N    : ORDER OF THE MATRIX;
            N1,N2: THE N1-TH TO    N2-TH COLUMN VECTORS ARE TO BE
            SCALED.

PROCEDURES USED: COMCOLCST = CP34352.

RUNNING TIME: PROPORTIONAL TO N*(N2-N1).

LANGUAGE: ALGOL 60.

EXAMPLE OF USE: SEE EIGCOM (SECTION 3.3.2.2.2).

SOURCE TEXT(S) :

"CODE" 34193;
"CODE" 34360;