rocsolver_chegvj_batched Interface Reference#
The HEGVJ_BATCHED functions compute the eigenvalues and (optionally) eigenvectors of a batch of complex generalized Hermitian-definite eigenproblems. More...
Public Member Functions | |
| integer(kind(rocblas_status_success)) function | rocsolver_chegvj_batched_ (handle, itype, evect, uplo, n, a, lda, b, ldb, abstol, residual, max_sweeps, n_sweeps, w, stridew, myinfo, batch_count) |
Detailed Description
The HEGVJ_BATCHED functions compute the eigenvalues and (optionally) eigenvectors of a batch of complex generalized Hermitian-definite eigenproblems.
For each instance in the batch, the problem solved by this function is either of the form
\[ \begin{array}{cl} A_l X_l = \lambda B_l X_l & \: \text{1st form,}\\% A_l B_l X_l = \lambda X_l & \: \text{2nd form, or}\\% B_l A_l X_l = \lambda X_l & \: \text{3rd form,} \end{array} \]
depending on the value of itype. The eigenvalues are found using the iterative Jacobi algorithm and returned in ascending order. The eigenvectors are computed depending on the value of evect.
When computed, the matrix \(Z_l\) of eigenvectors is normalized as follows:
\[ \begin{array}{cl} Z_l^H B_l^{} Z_l^{}=I & \: \text{if 1st or 2nd form, or}\\% Z_l^H B_l^{-1} Z_l^{}=I & \: \text{if 3rd form.} \end{array} \]
- Parameters
-
[in] handle - rocblas_handle. [in] itype - rocblas_eform. Specifies the form of the generalized eigenproblems.[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] uplo - rocblas_fill. Specifies whether the upper or lower parts of the matrices A_l and B_l are stored. If uplo indicates lower (or upper), then the upper (or lower) parts of A_l and B_l are not used. [in] n - rocblas_int. n >= 0. The matrix dimensions. [in,out] A - array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n. On entry, the Hermitian matrices A_l. On exit, if evect is original, the normalized matrix Z_l of eigenvectors. If evect is none, then the upper or lower triangular part of the matrices A_l (including the diagonal) are destroyed, depending on the value of uplo. [in] lda - rocblas_int. lda >= n. Specifies the leading dimension of A_l. [out] B - array of pointers to type. Each pointer points to an array on the GPU of dimension ldb*n. On entry, the Hermitian positive definite matrices B_l. On exit, the triangular factor of B_l, as returned by POTRF_BATCHED. [in] ldb - rocblas_int. ldb >= n. Specifies the leading dimension of B_l. [in] abstol - real type. The absolute tolerance. The algorithm is considered to have converged once the residual is <= abstol. If abstol <= 0, then the tolerance will be set to machine precision. [out] residual - pointer to real type. Array of batch_count scalars on the GPU. The Frobenius norm of the off-diagonal elements at the final iteration for each batch instance. [in] max_sweeps - rocblas_int. max_sweeps > 0. Maximum number of sweeps (iterations) to be used by the algorithm. [out] n_sweeps - pointer to rocblas_int. Array of batch_count integers on the GPU. The actual number of sweeps (iterations) used by the algorithm for each batch instance. [out] W - pointer to real type. Array on the GPU (the size depends on the value of strideW). On exit, the eigenvalues in increasing order. [in] strideW - rocblas_stride. Stride from the start of one vector W_l to the next one W_(l+1). There is no restriction for the value of strideW. Normal usage is strideW >= n. [out] myInfo - pointer to rocblas_int. Array of batch_count integers on the GPU. If info[l] = 0, successful exit of batch l. If info[l] = 1, the algorithm did not converge. If info[l] = n + i, the leading minor of order i of B_l is not positive definite. [in] batch_count - rocblas_int. batch_count >= 0. Number of matrices in the batch.
Member Function/Subroutine Documentation
◆ rocsolver_chegvj_batched_()
| integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_chegvj_batched::rocsolver_chegvj_batched_ | ( | type(c_ptr), value | handle, |
| integer(kind(rocblas_eform_ax)), value | itype, | ||
| integer(kind(rocblas_evect_original)), value | evect, | ||
| integer(kind(rocblas_fill_upper)), value | uplo, | ||
| integer(c_int), value | n, | ||
| type(c_ptr), value | a, | ||
| integer(c_int), value | lda, | ||
| type(c_ptr), value | b, | ||
| integer(c_int), value | ldb, | ||
| real(c_float), value | abstol, | ||
| type(c_ptr), value | residual, | ||
| integer(c_int), value | max_sweeps, | ||
| type(c_ptr), value | n_sweeps, | ||
| type(c_ptr), value | w, | ||
| integer(c_int64_t), value | stridew, | ||
| type(c_ptr), value | myinfo, | ||
| integer(c_int), value | batch_count | ||
| ) |
The documentation for this interface was generated from the following file: