|
|
◆ zupgtr()
| void zupgtr |
( |
char |
uplo, |
|
|
int |
n, |
|
|
doublecomplex |
ap[], |
|
|
doublecomplex |
tau[], |
|
|
int |
ldq, |
|
|
doublecomplex |
q[], |
|
|
doublecomplex |
work[], |
|
|
int * |
info |
|
) |
| |
Generates a transform matrix from a complex Hermitian matrix in packed form to tridiagonal form
- Purpose
- This routine generates a complex unitary matrix Q which is defined as the product of n - 1 elementary reflectors H(i) of order n, as returned by zhptrd using packed storage.
If uplo = 'U', Q = H(n-1) . . . H(2) H(1).
If uplo = 'L', Q = H(1) H(2) . . . H(n-1).
- Parameters
-
| [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] | n | Order of the matrix Q. (n >= 0) (If n = 0, returns without computation) |
| [in] | ap[] | Array ap[lap] (lap >= n(n + 1)/2)
The vectors which define the elementary reflectors, as returned by zhptrd. |
| [in] | tau[] | Array tau[ltau] (ltau >= n - 1)
tau[i] must contain the scalar factor of the elementary reflector H(i), as returned by zhptrd. |
| [in] | ldq | Leading dimension of the two dimensional array q[][]. (ldq >= max(1, n)) |
| [out] | q[][] | Array q[lq][ldq] (lq >= n)
The n x n unitary matrix Q. |
| [out] | work[] | Array work[lwork] (lwork >= n - 1)
Work array. |
| [out] | info | = 0: Successful exit.
= -1: The argument uplo had an illegal value. (uplo != 'U' nor 'L')
= -2: The argument n had an illegal value. (n < 0)
= -5: The argument ldq had an illegal value. (ldq < max(1, n)) |
- Reference
- LAPACK
|