rocsolver_ssyevdx_batched Interface Reference

rocsolver_ssyevdx_batched Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_ssyevdx_batched Interface Reference
hipfort_rocsolver::rocsolver_ssyevdx_batched Interface Reference

The SYEVDX_BATCHED functions compute a set of the eigenvalues and optionally the corresponding eigenvectors of a batch of real symmetric matrices A_l. More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_ssyevdx_batched_ (handle, evect, erange, uplo, n, a, lda, vl, vu, il, iu, nev, w, stridew, z, ldz, myinfo, batch_count)
 

Detailed Description

The SYEVDX_BATCHED functions compute a set of the eigenvalues and optionally the corresponding eigenvectors of a batch of real symmetric matrices A_l.

This function computes all the eigenvalues of A_l, 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 matrices A_l is stored. If uplo indicates lower (or upper), then the upper (or lower) part of A_l is not used.
[in]n- rocblas_int. n >= 0. Number of rows and columns of matrices A_l.
[in,out]A- Array of pointers to type. Each pointer points to an array on the GPU of dimension lda*n. On entry, the matrices A_l. On exit, the contents of A_l are destroyed.
[in]lda- rocblas_int. lda >= n. Specifies the leading dimension of matrices A_l.
[in]vl- type. vl < vu. The lower bound of the search interval (vl, vu]. Ignored if range indicates to look for all the eigenvalues of A_l or the eigenvalues within a set of indices.
[in]vu- type. vl < vu. The upper bound of the search interval (vl, vu]. Ignored if range indicates to look for all the eigenvalues of A_l 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_l 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_l or the eigenvalues in a half-open interval.
[out]nev- pointer to rocblas_int. Array of batch_count integers on the GPU. The total number of eigenvalues found. If erange is rocblas_erange_all, nev[l] = n. If erange is rocblas_erange_index, nev[l] = iu - il + 1. Otherwise, 0 <= nev[l] <= n.
[out]W- pointer to type. Array on the GPU (the size depends on the value of strideW). The first nev[l] elements contain the computed eigenvalues. (The remaining elements can be used as workspace for internal computations.)
[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. The normal use case is strideW >= n.
[out]Z- Array of pointers to type. Each pointer points to an array on the GPU of dimension ldz*nev[l]. On exit, if evect is not rocblas_evect_none and info[l] = 0, the first nev[l] columns contain the eigenvectors of A_l 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[l] are not known in advance. The user should ensure that Z_l 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 matrices Z_l.
[out]myInfo- pointer to rocblas_int. Array of batch_count integers on the GPU. If info[l] = 0, successful exit for matrix A_l. If info[l] = i > 0, the algorithm did not converge. i columns of Z_l did not converge.
[in]batch_count- rocblas_int. batch_count >= 0. Number of matrices in the batch.

Member Function/Subroutine Documentation

◆ rocsolver_ssyevdx_batched_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_ssyevdx_batched::rocsolver_ssyevdx_batched_ ( 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,
integer(c_int64_t), value  stridew,
type(c_ptr), value  z,
integer(c_int), value  ldz,
type(c_ptr), value  myinfo,
integer(c_int), value  batch_count 
)

The documentation for this interface was generated from the following file: