rocsolver_ssygvj Interface Reference#
The SYGVJ functions compute the eigenvalues and (optionally) eigenvectors of a real generalized symmetric-definite eigenproblem. More...
Public Member Functions | |
| integer(kind(rocblas_status_success)) function | rocsolver_ssygvj_ (handle, itype, evect, uplo, n, a, lda, b, ldb, abstol, residual, max_sweeps, n_sweeps, w, myinfo) |
Detailed Description
The SYGVJ functions compute the eigenvalues and (optionally) eigenvectors of a real generalized symmetric-definite eigenproblem.
The problem solved by this function is either of the form
\[ \begin{array}{cl} A X = \lambda B X & \: \text{1st form,}\\% A B X = \lambda X & \: \text{2nd form, or}\\% B A X = \lambda X & \: \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 of eigenvectors is normalized as follows:
\[ \begin{array}{cl} Z^T B Z=I & \: \text{if 1st or 2nd form, or}\\% Z^T B^{-1} Z=I & \: \text{if 3rd form.} \end{array} \]
- Note
- In order to carry out calculations, this method could potentially synchronize the stream contained within the
rocblas_handle.
- Parameters
-
[in] handle - rocblas_handle. [in] itype - rocblas_eform. Specifies the form of the generalized eigenproblem.[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 and B are stored. If uplo indicates lower (or upper), then the upper (or lower) parts of A and B are not used. [in] n - rocblas_int. n >= 0. The matrix dimensions. [in,out] A - pointer to type. Array on the GPU of dimension lda*n. On entry, the symmetric matrix A. On exit, if evect is original, the normalized matrix Z of eigenvectors. If evect is none, then the upper or lower triangular part of the matrix A (including the diagonal) is destroyed, depending on the value of uplo. [in] lda - rocblas_int. lda >= n. Specifies the leading dimension of A. [out] B - pointer to type. Array on the GPU of dimension ldb*n. On entry, the symmetric positive definite matrix B. On exit, the triangular factor of B, as returned by POTRF. [in] ldb - rocblas_int. ldb >= n. Specifies the leading dimension of B. [in] abstol - 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 type on the GPU. The Frobenius norm of the off-diagonal elements at the final iteration. [in] max_sweeps - rocblas_int. max_sweeps > 0. Maximum number of sweeps (iterations) to be used by the algorithm. [out] n_sweeps - pointer to a rocblas_int on the GPU. The actual number of sweeps (iterations) used by the algorithm. [out] W - pointer to type. Array on the GPU of dimension n. On exit, the eigenvalues in increasing order. [out] myInfo - pointer to a rocblas_int on the GPU. If info = 0, successful exit. If info = 1, the algorithm did not converge. If info = n + i, the leading minor of order i of B is not positive definite.
Member Function/Subroutine Documentation
◆ rocsolver_ssygvj_()
| integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_ssygvj::rocsolver_ssygvj_ | ( | 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, | ||
| type(c_ptr), value | myinfo | ||
| ) |
The documentation for this interface was generated from the following file: