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;