|
◆ Zunmhr()
Sub Zunmhr |
( |
Side As |
String, |
|
|
Trans As |
String, |
|
|
M As |
Long, |
|
|
N As |
Long, |
|
|
Ilo As |
Long, |
|
|
Ihi As |
Long, |
|
|
A() As |
Complex, |
|
|
Tau() As |
Complex, |
|
|
C() As |
Complex, |
|
|
Info As |
Long |
|
) |
| |
Multiplies by a complex transform matrix to Hessenberg form
- Purpose
- This routine overwrites the general complex M x N matrix C with
Side = "L" Side = "R"
trans = "N": Q * C C * Q
trans = "T": Q~H * C C * Q~H
where Q is a complex orthogonal matrix of order nq, with nq = M if Side = "L" and nq = N if Side = "R". Q is defined as the product of Ihi-Ilo elementary reflectors, as returned by Zgehrd: Q = H(Ilo) H(Ilo+1) . . . H(Ihi-1).
- Parameters
-
[in] | Side | = "L": Apply Q or Q~H from the Left.
= "R": Apply Q or Q~H from the Right. |
[in] | trans | = "N": No transpose, apply Q.
= "C": Conjugate transpose, apply Q~H. |
[in] | M | Number of rows of the matrix C. (M >= 0) (If M = 0, returns without computation) |
[in] | N | Order of the matrix A. (N >= 0) (If N = 0, returns without computation) |
[in] | Ilo | |
[in] | Ihi | Ilo and Ihi must have the same values as in the previous call of Zgehrd. Q is equal to the unit matrix except in the submatrix Q(Ilo+1〜Ihi, Ilo+1〜Ihi).
Side = "L": 1 <= Ilo <= Ihi <= M (if M > 0), Ilo = 1 and Ihi = 0 (if M = 0).
Side = "R": 1 <= Ilo <= Ihi <= N (if N > 0), Ilo = 1 and Ihi = 0 (if N = 0). |
[in] | A() | Array A(LA1 - 1, LA2 - 1) (LA1 >= M, LA2 >= M (if Side = "L"), LA1 >= N, LA2 >= N (if Side = "R"))
The vectors which define the elementary reflectors, as returned by Zgehrd. |
[in] | Tau() | Array Tau(LTau - 1) (LTau >= M - 1 (if Side = "L"), LTau >= N - 1 (if Side = "R"))
tau[i] must contain the scalar factor of the elementary reflector H(i), as returned by Zgehrd. |
[in,out] | C() | Array C(LC1 - 1, LC2 - 1) (LC1 >= M, LC2 >= N)
[in] The M x N matrix C.
[out] C is overwritten by Q*C or Q~H*C or C*Q~H or C*Q. |
[out] | Info | = 0: Successful exit.
= -1: The argument Side had an illegal value. (Side <> "L" nor "R")
= -2: The argument Trans had an illegal value. (Trans <> "N" nor "T")
= -3: The argument M had an illegal value. (M < 0)
= -4: The argument N had an illegal value. (N < 0)
= -5: The argument Ilo had an illegal value.
= -6: The argument Ihi had an illegal value.
= -7: The argument A() is invalid.
= -8: The argument Tau() is invalid.
= -9: The argument C() is invalid. |
- Reference
- LAPACK
- Example Program
- See examples of Zhsein.
|