rocsolver_cheevdx Interface Reference#
hipfort_rocsolver::rocsolver_cheevdx Interface Reference
The HEEVDX functions compute a set of the eigenvalues and optionally the corresponding eigenvectors of a Hermitian matrix A.
More...
Public Member Functions | |
| integer(kind(rocblas_status_success)) function | rocsolver_cheevdx_ (handle, evect, erange, uplo, n, a, lda, vl, vu, il, iu, nev, w, z, ldz, myinfo) |
Detailed Description
The HEEVDX functions compute a set of the eigenvalues and optionally the corresponding eigenvectors of a Hermitian matrix A.
This function computes all the eigenvalues of A, all the eigenvalues in the half-open interval \((vl, vu]\), or the il -th through iu -th eigenvalues, depending on the value of erange. If evect is rocblas_evect_original, the eigenvectors for these eigenvalues will be computed as well. The eigenvectors are computed using a divide-and-conquer approach.
- Parameters
-
[in] handle - rocblas_handle. [in] evect - rocblas_evect. Specifies whether the eigenvectors are to be computed. If evect is rocblas_evect_original, then the eigenvectors are computed. rocblas_evect_tridiagonal is not supported.[in] erange - rocblas_erange. Specifies the type of range or interval of the eigenvalues to be computed.[in] uplo - rocblas_fill. Specifies whether the upper or lower part of the symmetric matrix A is stored. If uplo indicates lower (or upper), then the upper (or lower) part of A is not used. [in] n - rocblas_int. n >= 0. Number of rows and columns of matrix A. [in,out] A - pointer to type. Array on the GPU of dimension lda*n. On entry, the matrix A. On exit, the contents of A are destroyed. [in] lda - rocblas_int. lda >= n. Specifies the leading dimension of matrix A. [in] vl - real type. vl < vu. The lower bound of the search interval (vl, vu]. Ignored if range indicates to look for all the eigenvalues of A or the eigenvalues within a set of indices. [in] vu - real type. vl < vu. The upper bound of the search interval (vl, vu]. Ignored if range indicates to look for all the eigenvalues of A or the eigenvalues within a set of indices. [in] il - rocblas_int. il = 1 if n = 0, and 1 <= il <= iu otherwise. The index of the smallest eigenvalue to be computed. Ignored if range indicates to look for all the eigenvalues of A or the eigenvalues in a half-open interval. [in] iu - rocblas_int. iu = 0 if n = 0, and 1 <= il <= iu otherwise. The index of the largest eigenvalue to be computed. Ignored if range indicates to look for all the eigenvalues of A or the eigenvalues in a half-open interval. [out] nev - pointer to a rocblas_int on the GPU. The total number of eigenvalues found. If erange is rocblas_erange_all, nev = n. If erange is rocblas_erange_index, nev = iu - il + 1. Otherwise, 0 <= nev <= n. [out] W - pointer to real type. Array on the GPU of dimension n. The first nev elements contain the computed eigenvalues. (The remaining elements can be used as workspace for internal computations.) [out] Z - pointer to type. Array on the GPU of dimension ldz*nev. On exit, if evect is not rocblas_evect_none and info = 0, the first nev columns contain the eigenvectors of A corresponding to the output eigenvalues. Not referenced if evect is rocblas_evect_none. - Note: If erange is rocblas_range_value, then the values of nev are not known in advance. The user should ensure that Z is large enough to hold n columns, because all n columns can be used as workspace for internal computations.
[in] ldz - rocblas_int. ldz >= n. Specifies the leading dimension of matrix Z. [out] myInfo - pointer to a rocblas_int on the GPU. If info = 0, successful exit. If info = i > 0, the algorithm did not converge. i columns of Z did not converge.
Member Function/Subroutine Documentation
◆ rocsolver_cheevdx_()
| integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_cheevdx::rocsolver_cheevdx_ | ( | type(c_ptr), value | handle, |
| integer(kind(rocblas_evect_original)), value | evect, | ||
| integer(kind(rocblas_erange_all)), value | erange, | ||
| integer(kind(rocblas_fill_upper)), value | uplo, | ||
| integer(c_int), value | n, | ||
| type(c_ptr), value | a, | ||
| integer(c_int), value | lda, | ||
| real(c_float), value | vl, | ||
| real(c_float), value | vu, | ||
| integer(c_int), value | il, | ||
| integer(c_int), value | iu, | ||
| type(c_ptr), value | nev, | ||
| type(c_ptr), value | w, | ||
| type(c_ptr), value | z, | ||
| integer(c_int), value | ldz, | ||
| type(c_ptr), value | myinfo | ||
| ) |
The documentation for this interface was generated from the following file: