NUMAL Section 1.2.4

BEGIN SECTION : 1.2.4 (May, 1974)

AUTHOR   : C.G. VAN DER LAAN.

CONTRIBUTORS : H.FIOLET, C.G. VAN DER LAAN.

INSTITUTE: MATHEMATICAL CENTRE.

RECEIVED : 731016.

BRIEF DESCRIPTION:

    THIS SECTION CONTAINS THREE PROCEDURES:

    COMMATVEC CALCULATES THE SCALAR PRODUCT OF A COMPLEX ROWVECTOR
    GIVEN IN ARRAY AR,AI[I:I,L:U] AND THE COMPLEX VECTOR GIVEN IN
    ARRAY BR,BI[L:U].
    HSHCOMCOL TRANSFORMS A COMPLEX VECTOR INTO A VECTOR
    PROPORTIONAL TO A UNIT VECTOR;
    HSHCOMPRD PREMULTIPLIES A COMPLEX MATRIX WITH A COMPLEX
    HOUSEHOLDER MATRIX.
    HSHCOMCOL AND HSHCOMPRD ARE AUXILIARY PROCEDURES FOR PREMULTIPLYING
    A COMPLEX MATRIX OR VECTOR WITH A COMPLEX HOUSEHOLDER MATRIX;

KEYWORDS:

    COMPLEX SCALAR PRODUCTS.
    HOUSEHOLDER TRANSFORMATION


SUBSECTION: COMMATVEC.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" COMMATVEC(L, U, I, AR, AI, BR, BI, RR, RI);
    "VALUE" L, U, I; "INTEGER" L, U, I; "REAL" RR, RI;
    "ARRAY" AR, AI, BR, BI;
    "CODE" 34354;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    L,U :   <ARITHMETIC EXPRESSION>;
            LOWER AND UPPER BOUND OF THE VECTORS;
    I :     <ARITHMETIC EXPRESSION>;
            ROW-INDEX OF THE  ROW VECTORS AR AND AI;
    AR,AI:  <ARRAY IDENTIFIER>;
            "ARRAY" AR,AI[I:I,L:U];
            ENTRY:
            AR: REAL PART AND
            AI: IMAGINARY PART OF THE MATRIX;

    BR,BI : <ARRAY IDENTIFIER>;
            "ARRAY" BR,BI[L:U];
            ENTRY:
            BR: REAL PART AND
            BI: IMAGINARY PART OF THE VECTOR;
    RR,RI:  <VARIABLE>;
            EXIT:
            RR: THE REAL PART AND
            RI: THE IMAGINARY PART OF THE SCALAR PRODUCT.

PROCEDURES USED:MATVEC=CP34011.

RUNNING TIME: PROPORTIONAL TO U-L.

LANGUAGE: ALGOL 60.


SUBSECTION: HSHCOMCOL.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "BOOLEAN" "PROCEDURE" HSHCOMCOL(L, U, J, AR, AI, TOL, K, C, S, T);
    "VALUE" L, U, J, TOL; "INTEGER" L, U, J; "REAL" TOL, K, C, S, T;
    "ARRAY" AR, AI;
    "CODE" 34355;

    HSHCOMCOL DELIVERS THE FOLLOWING BOOLEAN VALUE:
    IF AR[L+1,J]**2+AI[L+1,J]**2+...+AR[U,J]**2+AI[U,J]**2>TOL THEN
    A TRANSFORMATION IS PERFORMED AND HSHCOMCOL:="TRUE",OTHERWISE
    HSHCOMCOL:="FALSE" AND THE VECTOR TO BE TRANSFORMED IS CONSIDERED
    TO BE PROPORTIONAL TO THE DESIRED UNIT VECTOR AND NO
    TRANSFORMATION IS PERFORMED.

    THE MEANING OF THE FORMAL PARAMETERS IS:
    L,U,J:  <ARITHMETIC EXPRESSION>;
            THE COMPLEX VECTOR  TO BE TRANSFORMED, MUST BE GIVEN IN
            THE J-TH COLUMN FROM ROW L UNTIL ROW U OF A COMPLEX
            MATRIX;
    AR,AI:  <ARRAY IDENTIIER>;
            "ARRAY" AR,AI[L:U,J:J];
            ENTRY:
            THE REAL PART AND THE IMAGINARY PART OF THE VECTOR TO BE
            TRANSFORMED MUST BE GIVEN IN THE ARRAYS AR AND AI,
            RESPECTIVELY;
            EXIT:
            THE REAL PART AND THE IMAGINARY PART OF THE VECTOR U,
            OF THE HOUSEHOLDER MATRIX I-UU"/T (WHERE " DENOTES
            CONJUGATING AND TRANSPOSING)ARE DELIVERED IN THE ARRAYS
            AR AND AI,RESPECTIVELY,PROVIDED A TRANSFORMATION IS
            PERFORMED.IF NO TRANSFORMATION IS PERFORMED THE ARRAYS
            AR AND AI ARE UNALTERED;

    TOL:    <ARITHMETIC EXPRESSION>;
            ENTRY: A TOLERANCE;
               (E.G. THE SQUARE OF THE MACHINE PRECISION TIMES A NORM
                OF THE MATRIX IN CONSIDERATION);
    T:      <ARITHMETIC EXPRESSION>;
            EXIT:
            INFORMATION CONCERNING THE TRANSFORMATION,I.E. THE SCALAR
            T OF THE HOUSEHOLDER MATRIX ,PROVIDED A TRANSFORMATION IS
            PERFORMED.OTHERWISE,T:=-1;
    K,C,S:  <VARIABLE>;
            EXIT:
            THE MODULUS , COSINE AND SINE OF THE ARGUMENT OF THE
            FIRST ELEMENT OF THE TRANSFORMED VECTOR ARE DELIVERED IN
            K,C AND S,RESPECTIVELY,PROVIDED A TRANSFORMATION IS
            PERFORMED.OTHERWISE THE MODULUS,COSINE AND SINE OF THE
            ARGUMENT OF THE COMPLEX NUMBER AR[L,J]+AI[L,J]*I ARE
            DELIVERED.

PROCEDURES USED:

    CARPOL=CP34344,
    TAMMAT=CP34014.

RUNNING TIME: PROPORTIONAL TO U-L.

METHOD AND PERFORMANCE:

    SEE WILKINSON(1965,P.49,50).

LANGUAGE: ALGOL 60.


SUBSECTION: HSHCOMPRD.

CALLING SEQUENCE:

    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" HSHCOMPRD(I, II, L, U, J, AR, AI, BR, BI, T);
    "VALUE" I, II, L, U, J, T; "INTEGER" I, II, L, U, J; "REAL" T;
    "ARRAY" AR, AI, BR, BI;
    "CODE" 34356;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    I,II,L,U:   <ARITHMETIC EXPRESSION>;
                ENTRY:
                THE COMPLEX MATRIX TO BE PREMULTIPLIED, MUST BE GIVEN
                IN THE L-TH TO    U-TH COLUMN FROM ROW I TO    ROW II
                OF A COMPLEX MATRIX;
    J:          <ARITHMETIC EXPRESSION>;
                ENTRY:
                THE COMPLEX VECTOR V OF THE HOUSEHOLDER MATRIX
                I-VV"/T,WHERE " DENOTES TRANSPOSING AND CONJUGATING,
                MUST BE GIVEN IN THE J-TH COLUMN FROM ROW I TO    ROW
                II OF A COMPLEX MATRIX GIVEN IN (BR,BI);
    AR,AI:      <ARRAY IDENTIFIER>;
                "ARRAY" AR,AI[I:II,L:U];
                ENTRY:
                THE REAL PART AND THE IMAGINARY PART OF THE MATRIX TO
                BE PREMULTIPLIED,MUST BE GIVEN IN THE ARRAYS AR AND
                AI,RESPECTIVELY;
                EXIT:
                THE REAL PART AND THE IMAGINARY PART OF THE
                RESULTING MATRIX ARE DELIVERED IN THE ARRAYS AR AND
                AI,RESPECTIVELY;
    BR,BI:      <ARRAY IDENTIFIER>;
                "ARRAY" BR,BI[I:II,J:J];
                ENTRY:
                THE REAL PART AND THE IMAGINARY PART OF THE COMPLEX
                VECTOR V OF THE HOUSEHOLDER MATRIX MUST BE GIVEN IN
                THE ARRAYS BR AND BI,RESPECTIVELY;
                (E.G. AS DELIVERED BY HSHCOMCOL);
    T:          <ARITHMETIC EXPRESSION>;
                ENTRY:
                THE SCALAR T OF THE HOUSEHOLDER MATRIX;
                (E.G. AS DELIVERED BY HSHCOMCOL);

PROCEDURES USED:

    TAMMAT   =CP34014,
    ELMCOMCOL=CP34377.

RUNNING TIME: PROPORTIONAL TO (U-L)*(II-I).

LANGUAGE: ALGOL 60.

REFERENCE:

    WILKINSON,J.H(1965):
    THE ALGEBRAIC EIGENVALUE PROBLEM,
    CLARENDON PRESS,OXFORD.

EXAMPLE OF USE:

   AS A FORMAL TEST OF THE PROCEDURES HSHCOMCOL AND HSHCOMPRD THE
   FOLLOWING MATRIX:
     3   4*I
     4*I 5
   IS TRANSFORMED INTO UPPER TRIANGULAR FORM.

"BEGIN""INTEGER"I;"REAL"K,C,S,T;
   "ARRAY"AR,AI[1:2,1:2];
   AR[1,1]:=3;AR[1,2]:=AR[2,1]:=0;AR[2,2]:=5;
   AI[1,1]:=0;AI[1,2]:=AI[2,1]:=4;AI[2,2]:=0;
   "IF"HSHCOMCOL(1,2,1,AR,AI,("-14*5)**2,K,C,S,T)"THEN"
   HSHCOMPRD(1,2,2,2,1,AR,AI,AR,AI,T);
   OUTPUT(61,"(""("AFTER USE HSHCOMCOL,HSHCOMPRD:")",/,
    2(2(-D.D,+D.D,"("*I")",BB),/)")",
    AR[1,1],AI[1,1],AR[1,2],AI[1,2],AR[2,1],AI[2,1],AR[2,2],AI[2,2]);
   OUTPUT(61,"(""("K,   C,   S,   T,")",/,3(-D.DB),-DD.D,/,")",K,C,S,
    T);
"END"

OUTPUT:
AFTER USE HSHCOMCOL,HSHCOMPRD:
 8.0+0.0*I   0.0+1.6*I
 0.0+4.0*I   6.2+0.0*I
K,   C,   S,   T,
 5.0 -1.0  0.0  40.0

SOURCE TEXT(S) :
"CODE" 34354;
"CODE" 34355;
"CODE" 34356;