XLPack 6.1
Excel VBA Numerical Library Reference Manual
Loading...
Searching...
No Matches

◆ 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]MNumber of rows of the matrix C. (M >= 0) (If M = 0, returns without computation)
[in]NOrder of the matrix A. (N >= 0) (If N = 0, returns without computation)
[in]Ilo
[in]IhiIlo 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.