1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
<HTML>
<HEAD><TITLE>MB03BB - SLICOT Library Routine Documentation</TITLE>
</HEAD>
<BODY>
<H2><A Name="MB03BB">MB03BB</A></H2>
<H3>
Eigenvalues of a 2-by-2 matrix product via a complex single shifted periodic QZ algorithm
</H3>
<A HREF ="#Specification"><B>[Specification]</B></A>
<A HREF ="#Arguments"><B>[Arguments]</B></A>
<A HREF ="#Method"><B>[Method]</B></A>
<A HREF ="#References"><B>[References]</B></A>
<A HREF ="#Comments"><B>[Comments]</B></A>
<A HREF ="#Example"><B>[Example]</B></A>
<P>
<B><FONT SIZE="+1">Purpose</FONT></B>
<PRE>
To compute the eigenvalues of a general 2-by-2 matrix product via
a complex single shifted periodic QZ algorithm.
</PRE>
<A name="Specification"><B><FONT SIZE="+1">Specification</FONT></B></A>
<PRE>
SUBROUTINE MB03BB( BASE, LGBAS, ULP, K, AMAP, S, SINV, A, LDA1,
$ LDA2, ALPHAR, ALPHAI, BETA, SCAL, DWORK, INFO )
C .. Scalar Arguments ..
INTEGER INFO, K, LDA1, LDA2, SINV
DOUBLE PRECISION BASE, LGBAS, ULP
C .. Array Arguments ..
DOUBLE PRECISION A(LDA1,LDA2,*), ALPHAI(2), ALPHAR(2), BETA(2),
$ DWORK(*)
INTEGER AMAP(*), S(*), SCAL(2)
</PRE>
<A name="Arguments"><B><FONT SIZE="+1">Arguments</FONT></B></A>
<P>
</PRE>
<B>Input/Output Parameters</B>
<PRE>
BASE (input) DOUBLE PRECISION
Machine base.
LGBAS (input) DOUBLE PRECISION
Logarithm of BASE.
ULP (input) DOUBLE PRECISION
Machine precision.
K (input) INTEGER
The number of factors. K >= 1.
AMAP (input) INTEGER array, dimension (K)
The map for accessing the factors, i.e., if AMAP(I) = J,
then the factor A_I is stored at the J-th position in A.
S (input) INTEGER array, dimension (K)
The signature array. Each entry of S must be 1 or -1.
SINV (input) INTEGER
Signature multiplier. Entries of S are virtually
multiplied by SINV.
A (input) DOUBLE PRECISION array, dimension (LDA1,LDA2,K)
On entry, the leading 2-by-2-by-K part of this array must
contain a 2-by-2 product (implicitly represented by its K
factors) in upper Hessenberg-triangular form.
LDA1 INTEGER
The first leading dimension of the array A. LDA1 >= 2.
LDA2 INTEGER
The second leading dimension of the array A. LDA2 >= 2.
ALPHAR (output) DOUBLE PRECISION array, dimension (2)
On exit, this array contains the scaled real part of the
two eigenvalues. If BETA(I) <> 0, then the I-th eigenvalue
(I = 1 : 2) is given by
(ALPHAR(I) + ALPHAI(I)*SQRT(-1) ) * (BASE)**SCAL(I).
ALPHAI (output) DOUBLE PRECISION array, dimension (2)
On exit, this array contains the scaled imaginary part of
the two eigenvalues. ALPHAI(1) >= 0.
BETA (output) DOUBLE PRECISION array, dimension (2)
On exit, this array contains information about infinite
eigenvalues. If BETA(I) = 0, then the I-th eigenvalue is
infinite. Otherwise, BETA(I) = 1.0.
SCAL (output) INTEGER array, dimension (2)
On exit, this array contains the scaling exponents for the
two eigenvalues.
</PRE>
<B>Workspace</B>
<PRE>
DWORK DOUBLE PRECISION array, dimension (8*K)
</PRE>
<B>Error Indicator</B>
<PRE>
INFO INTEGER
= 0: successful exit;
= 1: the periodic QZ algorithm did not converge;
= 2: the computed eigenvalues might be inaccurate.
Both values might be taken as warnings, since
approximations of eigenvalues are returned.
</PRE>
<A name="Method"><B><FONT SIZE="+1">Method</FONT></B></A>
<PRE>
A complex single shifted periodic QZ iteration is applied.
</PRE>
<A name="Comments"><B><FONT SIZE="+1">Further Comments</FONT></B></A>
<PRE>
None
</PRE>
<A name="Example"><B><FONT SIZE="+1">Example</FONT></B></A>
<P>
<B>Program Text</B>
<PRE>
None
</PRE>
<B>Program Data</B>
<PRE>
None
</PRE>
<B>Program Results</B>
<PRE>
None
</PRE>
<HR>
<A HREF=support.html><B>Return to Supporting Routines index</B></A></BODY>
</HTML>
|