|
|
| int PLASMA_zhetrd |
( |
PLASMA_enum |
jobz, |
|
|
PLASMA_enum |
uplo, |
|
|
int |
N, |
|
|
PLASMA_Complex64_t * |
A, |
|
|
int |
LDA, |
|
|
double * |
D, |
|
|
double * |
E, |
|
|
PLASMA_desc * |
descT, |
|
|
PLASMA_Complex64_t * |
Q, |
|
|
int |
LDQ |
|
) |
| |
PLASMA_zhetrd - reduces a complex Hermitian matrix A to real symmetric tridiagonal form S using a two-stage approach First stage: reduction to band tridiagonal form (unitary Q1); Second stage: reduction from band to tridiagonal form (unitary Q2). Let Q = Q1 * Q2 be the global unitary transformation; Q**H * A * Q = S.
- Parameters
-
| [in] | jobz | Intended usage: = PlasmaNoVec: computes tridiagonal only; = PlasmaVec: computes tridiagonal and generate the orthogonal matrix Q. |
| [in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular: = PlasmaUpper: Upper triangle of A is stored; = PlasmaLower: Lower triangle of A is stored. |
| [in] | N | The order of the matrix A. N >= 0. |
| [in,out] | A | On entry, the symmetric (or Hermitian) matrix A. If uplo = PlasmaUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If uplo = PlasmaLower, the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced. On exit, the lower triangle (if uplo = PlasmaLower) or the upper triangle (if uplo = PlasmaUpper) of A, including the diagonal, is destroyed. |
| [in] | LDA | The leading dimension of the array A. LDA >= max(1,N). |
| [out] | D | On exit, the diagonal elements of the tridiagonal matrix: D(i) = A(i,i). |
| [out] | E | On exit, he off-diagonal elements of the tridiagonal matrix: E(i) = A(i,i+1) if uplo = PlasmaUpper, E(i) = A(i+1,i) if uplo = PlasmaLower. |
| [out] | descT | On entry, descriptor as return by PLASMA_Alloc_Workspace_zhetrd On exit, contains auxiliary factorization data. |
| [out] | Q | On exit, if jobz = PlasmaVec, then if return value = 0, Q contains the N-by-N unitary matrix Q. If jobz = PlasmaNoVec, then it is not referenced. |
| [in] | LDQ | The leading dimension of the array Q. LDQ >= N. |
- Returns
- Return values
-
| PLASMA_SUCCESS | successful exit |
| <0 | if -i, the i-th argument had an illegal value |
| >0 | if INFO = i, the algorithm failed to converge; i off-diagonal elements of an intermediate tridiagonal form did not converge to zero. |
- See Also
- PLASMA_zhetrd_Tile
-
PLASMA_zhetrd_Tile_Async
-
PLASMA_chetrd
-
PLASMA_dsytrd
-
PLASMA_ssytrd
|