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