NUMAL Section 1.2.7
BEGIN SECTION : 1.2.7 (December, 1979)
AUTHORS : J.J.G. ADMIRAAL, C.G. VAN DER LAAN.
CONTRIBUTORS : J.J.G. ADMIRAAL, H. FIOLET, C.G. VAN DER LAAN.
INSTITUTE: MATHEMATICAL CENTRE, UNIVERSITY OF AMSTERDAM.
RECEIVED : 730817.
BRIEF DESCRIPTION :
THIS SECTION CONTAINS THE PROCEDURES ROTCOMCOL, ROTCOMROW AND CHSH2
ROTCOMCOL REPLACES THE COLUMN VECTOR VR+I*VI GIVEN IN THE ARRAYS
AR,AI[L:U,I:I] AND THE COLUMN VECTOR YR+I*YI GIVEN IN THE ARRAYS
AR,AI[L:U,J:J] BY THE VECTORS (VR+I*VI)*(CR-I*CI)-(YR+I*YI)*S AND
(YR+I*YI)*(CR+I*CI)+(VR+I*VI)*S, RESPECTIVELY.
ROTCOMROW REPLACES THE ROW VECTOR VR+I*VI GIVEN IN THE ARRAYS
AR,AI[I:I,L:U] AND THE ROW VECTOR YR+I*YI GIVEN IN THE ARRAYS
AR,AI[J:J,L:U] BY THE VECTORS (VR+I*VI)*(CR-I*CI)+(YR+I*YI)*S AND
(YR+I*YI)*(CR+I*CI)-(VR+I*VI)*S, RESPECTIVELY.
CHSH2 COMPUTES THE COMPLEX HOUSEHOLDERMATRIX THAT
MAPS THE COMPLEX VECTOR (A1,A2) INTO THE DIRECTION (1,0).
WARNING : IN ROTCOMCOL AND ROTCOMROW THE COSINE IS COMPLEX AND THE
SINE IS REAL, IN CONTRAST TO THIS, IN CHSH2 THE SINE IS COMPLEX
AND THE COSINE IS REAL.
KEYWORDS :
COMPLEX VECTOR OPERATIONS,
ROTATION,
HOUSEHOLDER MATRIX.
SUBSECTION : ROTCOMCOL .
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"PROCEDURE" ROTCOMCOL(L, U, I, J, AR, AI, CR, CI, S);
"VALUE" L, U, I, J, CR, CI, S; "INTEGER" L, U, I, J;
"REAL" CR, CI, S; "ARRAY" AR, AI;
"CODE" 34357;
THE MEANING OF THE FORMAL PARAMETERS IS :
L,U,I,J: <ARITHMETIC EXPRESSION>;
THE ROTATION IS PERFORMED ON THE COLUMN VECTORS
AR,AI[L:U,I:I] AND AR,AI[L:U,J:J];
AR,AI: <ARRAY IDENTIFIER>;
"ARRAY" AR,AI[L:U,I:J];
ENTRY:
AR:THE REAL PARTS OF THE COLUMN VECTORS
AI:THE IMAGINARY PARTS OF THE COLUMN VECTORS
EXIT:
THE RESULTING VECTORS (SEE ALSO BRIEF DESCRIPTION);
CR,CI,S: <ARITHMETIC EXPRESSION>;
ENTRY:
ROTATION FACTORS; SEE ALSO BRIEF DESCRIPTION.
RUNNING TIME : ROUGHLY PROPORTIONAL TO (U-L) .
LANGUAGE: ALGOL 60.
SUBSECTION : ROTCOMROW .
CALLING SEQUENCE :
THE HEADING OF THE PROCEDURE READS :
"PROCEDURE" ROTCOMROW(L, U, I, J, AR, AI, CR, CI, S);
"VALUE" L, U, I, J, CR, CI, S; "INTEGER" L, U, I, J;
"REAL" CR, CI, S; "ARRAY" AR, AI;
"CODE" 34358;
THE MEANING OF THE FORMAL PARAMETERS IS :
L,U,I,J: <ARITHMETIC EXPRESSION>;
THE ROTATION IS PERFORMED ON THE ROW VECTORS
AR,AI[I:I,L:U] AND AR,AI[J:J,L:U];
AR,AI: <ARRAY IDENTIFIER>;
"ARRAY" AR,AI[I:J,L:U];
ENTRY:
AR:THE REAL PARTS OF THE ROW VECTORS
AI:THE IMAGINARY PARTS OF THE ROW VECTORS
EXIT:
THE RESULTING VECTORS (SEE ALSO BRIEF DESCRIPTION);
CR,CI,S: <ARITHMETIC EXPRESSION>;
ENTRY:
ROTATION FACTORS; SEE ALSO BRIEF DESCRIPTION.
PROCEDURES USED : NONE .
RUNNING TIME : ROUGHLY PROPORTIONAL TO (U-L) .
LANGUAGE: ALGOL 60.
EXAMPLE OF USE :
"BEGIN"
"COMMENT" EXAMPLE OF USE ROTCOMCOL;
"REAL" "ARRAY" AR,AI[1:2,1:2];
"INTEGER" I,J;
AR[1,1]:=+4;AR[1,2]:=+5;AR[2,1]:=-5;AR[2,2]:=+4;
AI[1,1]:=+3;AI[1,2]:= 0;AI[2,1]:= 0;AI[2,2]:=-3;
OUTPUT(61,"(""("INPUT MATRIX:")",/")");
OUTPUT(61,"("-D,+D,"("*I")",4B,-D,Z/,BB-D,Z,3B,-D,+D,"("*I")",/")",
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,"("//,"("AFTER POSTMULTIPLICATION WITH:")",/")");
OUTPUT(61,"(""(".08-.06*I -.1")",/,
"(" .1 .08+.06*I")",//")");
ROTCOMCOL(1,2,1,2,AR,AI,.08,.06,-.1);
OUTPUT(61,"(""("DELIVERS:")",/")");
OUTPUT(61,"("-D,Z,2BD,Z/,BD,Z,B-D,Z")",
AR[1,1],AI[1,1],AR[1,2],AI[1,2],AR[2,1],AI[2,1],AR[2,2],AI[2,2]);
"END"
OUTPUT:
INPUT MATRIX:
4+3*I 5
-5 4-3*I
AFTER POSTMULTIPLICATION WITH:
.08-.06*I -.1
.1 .08+.06*I
DELIVERS:
1 0
0 1 .
SUBSECTION: CHSH2.
CALLING SEQUENCE:
THE HEADING OF THE PROCEDURE IS:
"PROCEDURE" CHSH2(A1R,A1I,A2R,A2I,C,SR,SI);
"VALUE" A1R,A1I,A2R,A2I;"REAL" A1R,A1I,A2R,A2I,C,SR,SI;
"CODE" 34611;
THE MEANING OF THE FORMAL PARAMETERS IS:
A1R: <ARITHMETIC EXPRESSION>;
ENTRY: THE REAL PART OF THE FIRST VECTORCOMPONENT;
A1I: <ARITHMETIC EXPRESSION>;
ENTRY: THE IMAGINARY PART OF THE FIRST VECTORCOMPONENT;
A2R: <ARITHMETIC EXPRESSION>;
ENTRY: THE REAL PART OF THE SECOND VECTORCOMPONENT;
A2I: <ARITHMETIC EXPRESSION>;
ENTRY: THE IMAGINARY PART OF THE SECOND VECTORCOMPONENT;
C,SR,SI: <VARIABLE>;
EXIT: THE FACTORS THAT DETERMINE THE HOUSEHOLDER MATRIX.
THE HOUSEHOLDERMATRIX, DEFINED BY:
HA = B
A = (A1,A2)'
B = (-SIGN(A1R)*SQRT(A1*A1+A2*A2),O)',
IS DETERMINED BY:
( -C SR+I*SI)
(SR+I*SI C )
PROCEDURES USED: NONE;
LANGUAGE: ALGOL 60;
METHOD AND PERFORMANCE:
AFTER A CALL OF CHSH2 YOU ARE ABLE TO ROTATE A COMPLEX VECTOR OF
DIMENSION TWO BY MEANS OF THE FACTORS C,SR AND SI.
EXAMPLE OF USE: CHSH2 IS USED IN QZI AND QZIVAL,SECTION 3.4
SOURCE TEXT(S) :
"CODE" 34357;
"CODE" 34358;
"CODE" 34611;