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;