rocsolver_sbdsvdx Interface Reference

rocsolver_sbdsvdx Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_sbdsvdx Interface Reference
hipfort_rocsolver::rocsolver_sbdsvdx Interface Reference

The BDSVDX functions compute a set of singular values of a bidiagonal matrix B. More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_sbdsvdx_ (handle, uplo, svect, srange, n, d, e, vl, vu, il, iu, nsv, s, z, ldz, ifail, myinfo)
 

Detailed Description

The BDSVDX functions compute a set of singular values of a bidiagonal matrix B.

This function computes all the singular values of B, all the singular values in the half-open interval \([vl, vu)\), or the il -th through iu -th singular values, depending on the value of srange.

Depending on the value of svect, the corresponding singular vectors will be computed and stored as blocks in the output matrix Z. That is,

\[ Z = \left[\begin{array}{c} U\\% V \end{array}\right] \]

where U contains the corresponding left singular vectors of B and V contains the corresponding right singular vectors.

Parameters
[in]handle- rocblas_handle.
[in]uplo- rocblas_fill. Specifies whether B is upper or lower bidiagonal.
[in]svect- rocblas_svect. Specifies how the singular vectors are computed. Only rocblas_svect_none and rocblas_svect_singular are accepted.
[in]srange- rocblas_srange. Specifies the type of range or interval of the singular values to be computed.
[in]n- rocblas_int. n >= 0. The order of the bidiagonal matrix B.
[in]D- pointer to real type. Array on the GPU of dimension n. The diagonal elements of the bidiagonal matrix.
[in]E- pointer to real type. Array on the GPU of dimension n-1. The off-diagonal elements of the bidiagonal matrix.
[in]vl- real type. 0 <= vl < vu. The lower bound of the search interval [vl, vu). Ignored if srange indicates to look for all the singular values of B or the singular values within a set of indices.
[in]vu- real type. 0 <= vl < vu. The upper bound of the search interval [vl, vu). Ignored if srange indicates to look for all the singular values of B or the singular values within a set of indices.
[in]il- rocblas_int. il = 1 if n = 0, and 1 <= il <= iu otherwise. The index of the largest singular value to be computed. Ignored if srange indicates to look for all the singular values of B or the singular values in a half-open interval.
[in]iu- rocblas_int. iu = 0 if n = 0, and 1 <= il <= iu otherwise. The index of the smallest singular value to be computed. Ignored if srange indicates to look for all the singular values of B or the singular values in a half-open interval.
[out]nsv- pointer to a rocblas_int on the GPU. The total number of singular values found. If srange is rocblas_srange_all, nsv = n. If srange is rocblas_srange_index, nsv = iu - il + 1. Otherwise, 0 <= nsv <= n.
[out]S- pointer to real type. Array on the GPU of dimension nsv. The first nsv elements contain the computed singular values in descending order.
  • Note: If srange is rocblas_srange_value, then the value of nsv is not known in advance. In this case, the user should ensure that S is large enough to hold n values.
[out]Z- pointer to real type. Array on the GPU of dimension ldz*nsv. If info = 0, the first nsv columns contain the computed singular vectors corresponding to the singular values in S. The first n rows of Z contain the matrix U, and the next n rows contain the matrix V. Not referenced if svect is rocblas_svect_none.
  • Note: If srange is rocblas_srange_value, then the value of nsv is not known in advance. In this case, the user should ensure that Z is large enough to hold n columns.
[in]ldz- rocblas_int. ldz >= 2*n if svect is rocblas_svect_singular and ldz >= 1 otherwise. Specifies the leading dimension of Z.
[out]ifail- pointer to rocblas_int. Array on the GPU of dimension n. If info = 0, the first nsv elements of ifail are zero. Otherwise, contains the indices of those eigenvectors that failed to converge, as returned by STEIN. Not referenced if svect is rocblas_svect_none.
[out]myInfo- pointer to a rocblas_int on the GPU. If info = 0, successful exit. If info = i > 0, i eigenvectors did not converge in STEIN. Their indices are stored in ifail.

Member Function/Subroutine Documentation

◆ rocsolver_sbdsvdx_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sbdsvdx::rocsolver_sbdsvdx_ ( type(c_ptr), value  handle,
integer(kind(rocblas_fill_upper)), value  uplo,
integer(kind(rocblas_svect_all)), value  svect,
integer(kind(rocblas_srange_all)), value  srange,
integer(c_int), value  n,
type(c_ptr), value  d,
type(c_ptr), value  e,
real(c_float), value  vl,
real(c_float), value  vu,
integer(c_int), value  il,
integer(c_int), value  iu,
type(c_ptr), value  nsv,
type(c_ptr), value  s,
type(c_ptr), value  z,
integer(c_int), value  ldz,
type(c_ptr), value  ifail,
type(c_ptr), value  myinfo 
)

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