Visible to Intel only — GUID: GUID-1D94E6CA-3AB8-41B1-ABD9-45C311CF6A9D
Visible to Intel only — GUID: GUID-1D94E6CA-3AB8-41B1-ABD9-45C311CF6A9D
p?laqr3
Performs the orthogonal/unitary similarity transformation of a Hessenberg matrix to detect and deflate fully converged eigenvalues from a trailing principal submatrix (aggressive early deflation).
Syntax
void pslaqr3(MKL_INT* wantt, MKL_INT* wantz, MKL_INT* n, MKL_INT* ktop, MKL_INT* kbot, MKL_INT* nw, float* h, MKL_INT* desch, MKL_INT* iloz, MKL_INT* ihiz, float* z, MKL_INT* descz, MKL_INT* ns, MKL_INT* nd, float* sr, float* si, float* v, MKL_INT* descv, MKL_INT* nh, float* t, MKL_INT* desct, MKL_INT* nv, float* wv, MKL_INT* descw, float* work, MKL_INT* lwork, MKL_INT* iwork, MKL_INT* liwork, MKL_INT* reclevel);
void pdlaqr3(MKL_INT* wantt, MKL_INT* wantz, MKL_INT* n, MKL_INT* ktop, MKL_INT* kbot, MKL_INT* nw, double* h, MKL_INT* desch, MKL_INT* iloz, MKL_INT* ihiz, double* z, MKL_INT* descz, MKL_INT* ns, MKL_INT* nd, double* sr, double* si, double* v, MKL_INT* descv, MKL_INT* nh, double* t, MKL_INT* desct, MKL_INT* nv, double* wv, MKL_INT* descw, double* work, MKL_INT* lwork, MKL_INT* iwork, MKL_INT* liwork, MKL_INT* reclevel);
Include Files
- mkl_scalapack.h
Description
This function accepts as input an upper Hessenberg matrix H and performs an orthogonal similarity transformation designed to detect and deflate fully converged eigenvalues from a trailing principal submatrix. On output H is overwritten by a new Hessenberg matrix that is a perturbation of an orthogonal similarity transformation of H. It is to be hoped that the final version of H has many zero subdiagonal entries.
Input Parameters
- wantt
-
(global )
If wantt is non-zero, then the Hessenberg matrix H is fully updated so that the quasi-triangular Schur factor may be computed (in cooperation with the calling function).
If wantt equals zero, then only enough of H is updated to preserve the eigenvalues.
- wantz
-
(global )
If wantz is non-zero, then the orthogonal matrix Z is updated so that the orthogonal Schur factor may be computed (in cooperation with the calling function).
If wantz equals zero, then z is not referenced.
- n
-
(global )
The order of the matrix H and (if wantz is non-zero), the order of the orthogonal matrix Z.
- ktop
-
(global )
It is assumed that either ktop = 1 or H (ktop,ktop-1)=0. kbot and ktop together determine an isolated block along the diagonal of the Hessenberg matrix.
- kbot
-
(global )
It is assumed without a check that either kbot = n or H (kbot+1,kbot)=0. kbot and ktop together determine an isolated block along the diagonal of the Hessenberg matrix.
- nw
-
(global )
Deflation window size. 1 ≤nw≤ (kbot-ktop+1).
- h
-
(local ) array of size lld_h * LOCc(n)
The initial n-by-n section of H stores the Hessenberg matrix undergoing aggressive early deflation.
- desch
-
(global and local) array of size dlen_.
The array descriptor for the distributed matrix H.
- iloz, ihiz
-
(global )
Specify the rows of the matrix Z to which transformations must be applied if wantz is non-zero. 1 ≤iloz≤ihiz≤n.
- z
-
Array of size lld_z * LOCc(n)
If wantz is non-zero, then on output, the orthogonal similarity transformation mentioned above has been accumulated into the matrix Z(iloz:ihiz,kbot:ktop) from the right.
If wantz is zero, then z is unreferenced.
- descz
-
(global and local) array of size dlen_.
The array descriptor for the distributed matrix Z.
- v
-
(global workspace) array of size lld_v * LOCcnw)
An nw-by-nw distributed work array.
- descv
-
(global and local) array of size dlen_.
The array descriptor for the distributed matrix V.
- nh
-
The number of columns of t. nh≥nw.
- t
-
(global workspace) array of size lld_t * LOCc(nh)
- desct
-
(global and local) array of size dlen_.
The array descriptor for the distributed matrix T.
- nv
-
(global )
The number of rows of work array wv available for workspace. nv≥nw.
- wv
-
(global workspace) array of size lld_w *LOCc(nw)
- descw
-
(global and local) array of size dlen_.
The array descriptor for the distributed matrix wv.
- work
-
(local workspace) array of size lwork.
- lwork
-
(local )
The size of the work array work (lwork≥1). lwork = 2*nw suffices, but greater efficiency may result from larger values of lwork.
If lwork = -1, then a workspace query is assumed; p?laqr3 only estimates the optimal workspace size for the given values of n, nw, ktop and kbot. The estimate is returned in work[0]. No error message related to lwork is issued by xerbla. Neither h nor z are accessed.
- iwork
-
(local workspace) array of size liwork
- liwork
-
(local )
The length of the workspace array iwork (liwork≥1).
If liwork=-1, then a workspace query is assumed.
OUTPUT Parameters
- h
-
On output h has been transformed by an orthogonal similarity transformation, perturbed, and the returned to Hessenberg form that (it is to be hoped) has some zero subdiagonal entries.
- z
-
IF wantz is non-zero, then on output, the orthogonal similarity transformation mentioned above has been accumulated into the matrix Z(iloz:ihiz,kbot:ktop) from the right.
If wantz is zero, then z is unreferenced.
- ns
-
(global )
The number of unconverged (that is, approximate) eigenvalues returned in sr and si that may be used as shifts by the calling function.
- nd
-
(global )
The number of converged eigenvalues uncovered by this function.
- sr, si
-
(global ) array of size kbot. The real and imaginary parts of approximate eigenvalues that may be used for shifts are stored in sr[kbot-nd-ns] through sr[kbot-nd-1] and si[kbot-nd-ns] through si[kbot-nd-1], respectively. The real and imaginary parts of converged eigenvalues are stored in sr[kbot-nd] through sr[kbot-1] and si[kbot-nd] through si[kbot-1], respectively.
- work[0]
-
On exit, if info = 0, work[0] returns the optimal lwork
- iwork[0]
-
On exit, if info = 0, iwork[0] returns the optimal liwork