PLASMA 2.8.0 PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures

- Main Page
- Modules
- Data Types List

int PLASMA_zgebrd_Tile | ( | PLASMA_enum | jobq,
|  | PLASMA_enum | jobp,
|  | PLASMA_desc * | A,
|  | double * | D,
|  | double * | E,
|  | PLASMA_desc * | T,
|  | PLASMA_Complex64_t * | Q,
|  | int | LDQ,
|  | PLASMA_Complex64_t * | P,
|  | int | LDP
| ) |  |

PLASMA_zgebrd_Tile - reduces a general complex M-by-N matrix A to upper or lower bidiagonal form B using a two-stage approach First stage: reduction to band bidiagonal form (orthogonal matrices Q1 and P1); Second stage: reduction from band to bidiagonal form (orthogonal matrices Q2 and P2). Let Q = Q1 * Q2 be the global left unitary transformation; Let P = P1 * P2 be the global right unitary transformation; Q**H * A * P = B. If M >= N, B is upper bidiagonal; if M < N, B is lower bidiagonal. Note: T is incomplete and contains only the block reflectors of the first stage. Therefore, Q and P can not be built completely. Tile equivalent of PLASMA_zgebrd(). Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors.

Parameters

  [in] | jobq | Specifies options for computing all or part of the matrix Q. Intended usage: = PlasmaVec: all M columns of Q are returned in array Q; = PlasmaNoVec: not referenced.
  [in] | jobp | Specifies options for computing all or part of the matrix V**H. Intended usage: = PlasmaVec: all M columns of Q are returned in array Q; = PlasmaNoVec: not referenced.
  [in,out] | A | On entry, the M-by-N matrix A. On exit, if M >= N, the diagonal and the first superdiagonal are overwritten with the upper bidiagonal matrix B; the elements below the diagonal, with the array T, represent the unitary matrix Q as a product of elementary reflectors, and the elements above the first superdiagonal, with the array T, represent the unitary matrix P as a product of elementary reflectors; if M < N, the diagonal and the first subdiagonal are overwritten with the lower bidiagonal matrix B; the elements below the first subdiagonal, with the array T, represent the unitary matrix Q as a product of elementary reflectors, and the elements above the diagonal, with the array T, represent the unitary matrix P as a product of elementary reflectors.
  [out] | D | The double precision array containing the diagonal elements of the bidiagonal matrix B: D(i) = A(i,i). Dimension (min(M,N)).
  [out] | E | The double precision array containing the off-diagonal elements of the bidiagonal matrix B: if M >= N, E(i) = A(i,i+1) for i = 1,2,...,N-1; if M < N, E(i) = A(i+1,i) for i = 1,2,...,M-1. Dimension (min(M,N)-1).
  [out] | T | On exit, contains auxiliary factorization data.
  [out] | Q | On exit, if jobz = PlasmaVec, then if return value = 0, Q contains the M-by-M unitary matrix Q. If jobz = PlasmaNoVec, then it is not referenced.
  [in] | LDQ | The leading dimension of the array Q. LDQ >= M.
  [out] | P | On exit, if jobz = PlasmaVec, then if return value = 0, P contains the N-by-N unitary matrix P. If jobz = PlasmaNoVec, then it is not referenced.
  [in] | LDP | The leading dimension of the array P. LDP >= N.

Returns
  PLASMA_SUCCESS successful exit

See also
  PLASMA_zgebrd
  PLASMA_zgebrd_Tile_Async
  PLASMA_cgebrd_Tile
  PLASMA_dgebrd_Tile
  PLASMA_sgebrd_Tile