NUMAL Section 1.1.4.3

BEGIN SECTION : 1.1.4.3 (December, 1979)

AUTHOR: D.T.WINTER.

INSTITUTE: MATHEMATICAL CENTRE.

RECEIVED: 751208.

BRIEF DESCRIPTION:

    THIS SECTION CONTAINS PROCEDURES  THAT MULTIPLY A GIVEN MATRIX BY A
    (GENERALIZED) HOUSEHOLDER MATRIX, I.E. A MATRIX M = I + X * U * U',
    WHERE  I  IS THE UNIT MATRIX,   X  A REAL CONSTANT AND  U  A VECTOR
    (CALLED THE HOUSEHOLDER CONSTANT AND HOUSEHOLDER VECTOR,
    RESPECTIVELY)

    HSHVECMAT  PREMULTIPLIES  A  MATRIX BY A HOUSEHOLDER MATRIX, THE
               HOUSEHOLDER VECTOR HAS BEEN STORED
               IN A ONE-DIMENSIONAL ARRAY.
    HSHCOLMAT  PREMULTIPLIES  A  MATRIX BY A HOUSEHOLDER MATRIX,
               THE HOUSEHOLDER VECTOR HAS BEEN STORED AS A COLUMN
               IN A TWO-DIMENSIONAL ARRAY.
    HSHROWMAT  PREMULTIPLIES  A  MATRIX BY A HOUSEHOLDER MATRIX,
               THE HOUSEHOLDER VECTOR HAS BEEN STORED AS A ROW
               IN A TWO-DIMENSIONAL ARRAY.
    HSHVECTAM  POSTMULTIPLIES  A  MATRIX BY A HOUSEHOLDER MATRIX,
               THE HOUSEHOLDER VECTOR HAS BEEN STORED
               IN A ONE-DIMENSIONAL ARRAY.
    HSHCOLTAM  POSTMULTIPLIES  A  MATRIX BY A HOUSEHOLDER MATRIX,
               THE HOUSEHOLDER VECTOR HAS BEEN STORED
               AS A COLUMN IN A TWO-DIMENSIONAL ARRAY.
    HSHROWTAM  POSTMULTIPLIES  A  MATRIX BY A HOUSEHOLDER MATRIX,
               THE HOUSEHOLDER VECTOR HAS BEEN STORED
               AS A ROW IN A TWO-DIMENSIONAL ARRAY.

KEYWORDS:

    HOUSEHOLDER MATRIX
    ORTHOGONAL TRANSFORMATION

LANGUAGE: ALGOL 60


SUBSECTION: HSHVECMAT

CALLING SEQUENCE:
    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" HSHVECMAT(LR, UR, LC, UC, X, U, A);
    "VALUE" LR, UR, LC, UC, X; "INTEGER" LR, UR, LC, UC;
    "REAL" X; "ARRAY" U, A;
    "CODE" 31070;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    LR,UR: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER ROW INDICES;
    LC,UC: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER COLUMN INDICES;
    X:  <ARITHMETIC EXPRESSION>;
        THE HOUSEHOLDER CONSTANT;
    U:  <ARRAY IDENTIFIER>; "ARRAY" U[LR:UR];
        THE HOUSEHOLDER VECTOR;
    A:  <ARRAY IDENTIFIER>; "ARRAY" A[LR:UR,LC:UC];
        THE MATRIX TO BE PREMULTIPLIED BY THE HOUSEHOLDER MATRIX.

PROCEDURES USED:
    TAMVEC    = CP34012
    ELMCOLVEC = CP34022

RUNNING TIME: PROPORTIONAL TO (UC-LC+1)*(UR-LR+1)


SUBSECTION: HSHCOLMAT

CALLING SEQUENCE:
    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" HSHCOLMAT(LR, UR, LC, UC, I, X, U, A);
    "VALUE" LR, UR, LC, UC, I, X; "INTEGER" LR, UR, LC, UC, I;
    "REAL" X; "ARRAY" U, A;
    "CODE" 31071;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    LR,UR: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER ROW INDICES;
    LC,UC: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER COLUMN INDICES;
    I:  <ARITHMETIC EXPRESSION>;
        THE COLUMN INDEX OF THE HOUSEHOLDER VECTOR;
    X:  <ARITHMETIC EXPRESSION>;
        THE HOUSEHOLDER CONSTANT;
    U:  <ARRAY IDENTIFIER>; "ARRAY" U[LR:UR,I:I];
        THE HOUSEHOLDER VECTOR;
    A:  <ARRAY IDENTIFIER>; "ARRAY" A[LR:UR,LC:UC];
        THE MATRIX TO BE PREMULTIPLIED BY THE HOUSEHOLDER MATRIX.

PROCEDURES USED:
    TAMMAT    = CP34014
    ELMCOL    = CP34023

RUNNING TIME: PROPORTIONAL TO (UC-LC+1)*(UR-LR+1)


SUBSECTION: HSHROWMAT

CALLING SEQUENCE:
    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" HSHROWMAT(LR, UR, LC, UC, I, X, U, A);
    "VALUE" LR, UR, LC, UC, I, X; "INTEGER" LR, UR, LC, UC, I;
    "REAL" X; "ARRAY" U, A;
    "CODE" 31072;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    LR,UR: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER ROW INDICES;
    LC,UC: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER COLUMN INDICES;
    I:  <ARITHMETIC EXPRESSION>;
        THE ROW INDEX OF THE HOUSEHOLDER VECTOR;
    X:  <ARITHMETIC EXPRESSION>;
        THE HOUSEHOLDER CONSTANT;
    U:  <ARRAY IDENTIFIER>; "ARRAY" U[I:I,LR:UR];
        THE HOUSEHOLDER VECTOR;
    A:  <ARRAY IDENTIFIER>; "ARRAY" A[LR:UR,LC:UC];
        THE MATRIX TO BE PREMULTIPLIED BY THE HOUSEHOLDER MATRIX.

PROCEDURES USED:
    MATMAT    = CP34013
    ELMCOLROW = CP34027

RUNNING TIME: PROPORTIONAL TO (UC-LC+1)*(UR-LR+1)


SUBSECTION: HSHVECTAM

CALLING SEQUENCE:
    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" HSHVECTAM(LR, UR, LC, UC, X, U, A);
    "VALUE" LR, UR, LC, UC, X; "INTEGER" LR, UR, LC, UC;
    "REAL" X; "ARRAY" U, A;
    "CODE" 31073;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    LR,UR: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER ROW INDICES;
    LC,UC: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER COLUMN INDICES;
    X:  <ARITHMETIC EXPRESSION>;
        THE HOUSEHOLDER CONSTANT;
    U:  <ARRAY IDENTIFIER>; "ARRAY" U[LC:UC];
        THE HOUSEHOLDER VECTOR;
    A:  <ARRAY IDENTIFIER>; "ARRAY" A[LR:UR,LC:UC];
        THE MATRIX TO BE POSTMULTIPLIED BY THE HOUSEHOLDER MATRIX.

PROCEDURES USED:
    MATVEC    = CP34011
    ELMROWVEC = CP34027

RUNNING TIME: PROPORTIONAL TO (UC-LC+1)*(UR-LR+1)


SUBSECTION: HSHCOLTAM

CALLING SEQUENCE:
    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" HSHCOLTAM(LR, UR, LC, UC, I, X, U, A);
    "VALUE" LR, UR, LC, UC, I, X; "INTEGER" LR, UR, LC, UC, I;
    "REAL" X; "ARRAY" U, A;
    "CODE" 31074;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    LR,UR: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER ROW INDICES;
    LC,UC: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER COLUMN INDICES;
    I:  <ARITHMETIC EXPRESSION>;
        THE COLUMN INDEX OF THE HOUSEHOLDER VECTOR;
    X:  <ARITHMETIC EXPRESSION>;
        THE HOUSEHOLDER CONSTANT;
    U:  <ARRAY IDENTIFIER>; "ARRAY" U[LC:UC,I:I];
        THE HOUSEHOLDER VECTOR;
    A:  <ARRAY IDENTIFIER>; "ARRAY" A[LR:UR,LC:UC];
        THE MATRIX TO BE POSTMULTIPLIED BY THE HOUSEHOLDER MATRIX.

PROCEDURES USED:
    MATMAT    = CP34013
    ELMROWCOL = CP34028

RUNNING TIME: PROPORTIONAL TO (UC-LC+1)*(UR-LR+1)


SUBSECTION: HSHROWTAM

CALLING SEQUENCE:
    THE HEADING OF THE PROCEDURE READS:
    "PROCEDURE" HSHROWTAM(LR, UR, LC, UC, I, X, U, A);
    "VALUE" LR, UR, LC, UC, I, X; "INTEGER" LR, UR, LC, UC, I;
    "REAL" X; "ARRAY" U, A;
    "CODE" 31075;

    THE MEANING OF THE FORMAL PARAMETERS IS:
    LR,UR: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER ROW INDICES;
    LC,UC: <ARITHMETIC EXPRESSIONS>;
        THE LOWER AND UPPER COLUMN INDICES;
    I:  <ARITHMETIC EXPRESSION>;
        THE ROW INDEX OF THE HOUSEHOLDER VECTOR;
    X:  <ARITHMETIC EXPRESSION>;
        THE HOUSEHOLDER CONSTANT;
    U:  <ARRAY IDENTIFIER>; "ARRAY" U[I:I,LC:UC];
        THE HOUSEHOLDER VECTOR;
    A:  <ARRAY IDENTIFIER>; "ARRAY" A[LR:UR,LC:UC];
        THE MATRIX TO BE POSTMULTIPLIED BY THE HOUSEHOLDER MATRIX.

PROCEDURES USED:
    MATTAM    = CP34015
    ELMROW    = CP34024

RUNNING TIME: PROPORTIONAL TO (UC-LC+1)*(UR-LR+1)

SOURCE TEXTS:

"CODE" 31070;
"CODE" 31071;
"CODE" 31072;
"CODE" 31073;
"CODE" 31074;
"CODE" 31075;