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

◆ Zupmtr()

Sub Zupmtr ( Side As  String,
Uplo As  String,
Trans As  String,
M As  Long,
N As  Long,
Ap() As  Complex,
Tau() As  Complex,
C() As  Complex,
Info As  Long 
)

Multiplies by a transform matrix from a real symmetric matrix in packed form to tridiagonal form

Purpose
This routine overwrites the general real 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 unitary matrix of order Nq, with Nq = M if Side = "L" and Nq = N if Side = "R". Q is defined as the product of Nq - 1 elementary reflectors, as returned by Zhptrd:
If Uplo = "U", Q = H(Nq-1) . . . H(2) H(1),
If Uplo = "L", Q = H(1) H(2) . . . H(Nq-1).
Parameters
[in]Side= "L": Apply Q or Q^H from the Left.
= "R": Apply Q or Q^H from the Right.
[in]Uplo= "U": Upper triangular packed storage used in previous call to Zhptrd.
= "L": Lower triangular packed storage used in previous call to Zhptrd.
[in]Trans= "N": No transpose, apply Q.
= "T": Transpose, apply Q^H.
[in]MNumber of rows of the matrix C. (M >= 0) (If M = 0, returns without computation)
[in]NNumber of columns of the matrix C. (N >= 0) (If N = 0, returns without computation)
[in]Ap()Array Ap(LAp - 1) (LAp >= M(M + 1)/2 if Side ="L", LAp >= N(N + 1)/2 if Side ="R")
The vectors which define the elementary reflectors, as returned by Zhptrd. Ap() is modified by the routine but restored on exit.
[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 Zhptrd.
[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 Uplo had an illegal value (Uplo != "U" nor "L")
= -3: The argument Trans had an illegal value. (Trans <> "T" nor "N")
= -4: The argument M had an illegal value. (M < 0)
= -5: The argument N had an illegal value. (N < 0)
= -6: The argument Ap() is invalid.
= -7: The argument Tau() is invalid.
= -8: The argument C() is invalid.
Reference
LAPACK