rocsolver_sbdsqr Interface Reference#
hipfort_rocsolver::rocsolver_sbdsqr Interface Reference
! More...
Public Member Functions | |
integer(kind(rocblas_status_success)) function | rocsolver_sbdsqr_full_rank (handle, uplo, n, nv, nu, nc, D, E, V, ldv, U, ldu, C, ldc, myInfo) |
integer(kind(rocblas_status_success)) function | rocsolver_sbdsqr_orig (handle, uplo, n, nv, nu, nc, D, E, V, ldv, U, ldu, C, ldc, myInfo) |
integer(kind(rocblas_status_success)) function | rocsolver_sbdsqr_rank_0 (handle, uplo, n, nv, nu, nc, D, E, V, ldv, U, ldu, C, ldc, myInfo) |
integer(kind(rocblas_status_success)) function | rocsolver_sbdsqr_rank_1 (handle, uplo, n, nv, nu, nc, D, E, V, ldv, U, ldu, C, ldc, myInfo) |
Detailed Description
!
BDSQR computes the singular value decomposition (SVD) of a n-by-n bidiagonal matrix B.
The SVD of B has the form:
B = Ub S Vb'
where S is the n-by-n diagonal matrix of singular values of B, the columns of Ub are the left singular vectors of B, and the columns of Vb are its right singular vectors.
The computation of the singular vectors is optional; this function accepts input matrices U (of size nu-by-n) and V (of size n-by-nv) that are overwritten with UUb and Vb'V. If nu = 0 no left vectors are computed; if nv = 0 no right vectors are computed.
Optionally, this function can also compute Ub'C for a given n-by-nc input matrix C.
- Parameters
-
[in] handle rocblas_handle. [in] uplo rocblas_fill.
Specifies whether B is upper or lower bidiagonal.[in] n rocblas_int. n >= 0.
The number of rows and columns of matrix B.[in] nv rocblas_int. nv >= 0.
The number of columns of matrix V.[in] nu rocblas_int. nu >= 0.
The number of rows of matrix U.[in] nc rocblas_int. nu >= 0.
The number of columns of matrix C.[in,out] D pointer to real type. Array on the GPU of dimension n.
On entry, the diagonal elements of B. On exit, if info = 0, the singular values of B in decreasing order; if info > 0, the diagonal elements of a bidiagonal matrix orthogonally equivalent to B.[in,out] E pointer to real type. Array on the GPU of dimension n-1.
On entry, the off-diagonal elements of B. On exit, if info > 0, the off-diagonal elements of a bidiagonal matrix orthogonally equivalent to B (if info = 0 this matrix converges to zero).[in,out] V pointer to type. Array on the GPU of dimension ldvnv.
On entry, the matrix V. On exit, it is overwritten with Vb'V. (Not referenced if nv = 0).[in] ldv rocblas_int. ldv >= n if nv > 0, or ldv >=1 if nv = 0.
Specifies the leading dimension of V.[in,out] U pointer to type. Array on the GPU of dimension ldun.
On entry, the matrix U. On exit, it is overwritten with UUb. (Not referenced if nu = 0).[in] ldu rocblas_int. ldu >= nu.
Specifies the leading dimension of U.[in,out] C pointer to type. Array on the GPU of dimension ldcnc.
On entry, the matrix C. On exit, it is overwritten with Ub'C. (Not referenced if nc = 0).[in] ldc rocblas_int. ldc >= n if nc > 0, or ldc >=1 if nc = 0.
Specifies the leading dimension of C.[out] info pointer to a rocblas_int on the GPU.
If info = 0, successful exit. If info = i > 0, i elements of E have not converged to zero.
Member Function/Subroutine Documentation
◆ rocsolver_sbdsqr_full_rank()
integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sbdsqr::rocsolver_sbdsqr_full_rank | ( | type(c_ptr), value | handle, |
integer(kind(rocblas_fill_upper)), value | uplo, | ||
integer(c_int), value | n, | ||
integer(c_int), value | nv, | ||
integer(c_int), value | nu, | ||
integer(c_int), value | nc, | ||
real(c_float), dimension(:), target | D, | ||
real(c_float), dimension(:), target | E, | ||
real(c_float), dimension(:,:), target | V, | ||
integer(c_int), value | ldv, | ||
real(c_float), dimension(:,:), target | U, | ||
integer(c_int), value | ldu, | ||
real(c_float), dimension(:,:), target | C, | ||
integer(c_int), value | ldc, | ||
type(c_ptr), value | myInfo | ||
) |
◆ rocsolver_sbdsqr_orig()
integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sbdsqr::rocsolver_sbdsqr_orig | ( | type(c_ptr), value | handle, |
integer(kind(rocblas_fill_upper)), value | uplo, | ||
integer(c_int), value | n, | ||
integer(c_int), value | nv, | ||
integer(c_int), value | nu, | ||
integer(c_int), value | nc, | ||
type(c_ptr), value | D, | ||
type(c_ptr), value | E, | ||
type(c_ptr), value | V, | ||
integer(c_int), value | ldv, | ||
type(c_ptr), value | U, | ||
integer(c_int), value | ldu, | ||
type(c_ptr), value | C, | ||
integer(c_int), value | ldc, | ||
type(c_ptr), value | myInfo | ||
) |
◆ rocsolver_sbdsqr_rank_0()
integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sbdsqr::rocsolver_sbdsqr_rank_0 | ( | type(c_ptr), value | handle, |
integer(kind(rocblas_fill_upper)), value | uplo, | ||
integer(c_int), value | n, | ||
integer(c_int), value | nv, | ||
integer(c_int), value | nu, | ||
integer(c_int), value | nc, | ||
real(c_float), target | D, | ||
real(c_float), target | E, | ||
real(c_float), target | V, | ||
integer(c_int), value | ldv, | ||
real(c_float), target | U, | ||
integer(c_int), value | ldu, | ||
real(c_float), target | C, | ||
integer(c_int), value | ldc, | ||
type(c_ptr), value | myInfo | ||
) |
◆ rocsolver_sbdsqr_rank_1()
integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sbdsqr::rocsolver_sbdsqr_rank_1 | ( | type(c_ptr), value | handle, |
integer(kind(rocblas_fill_upper)), value | uplo, | ||
integer(c_int), value | n, | ||
integer(c_int), value | nv, | ||
integer(c_int), value | nu, | ||
integer(c_int), value | nc, | ||
real(c_float), dimension(:), target | D, | ||
real(c_float), dimension(:), target | E, | ||
real(c_float), dimension(:), target | V, | ||
integer(c_int), value | ldv, | ||
real(c_float), dimension(:), target | U, | ||
integer(c_int), value | ldu, | ||
real(c_float), dimension(:), target | C, | ||
integer(c_int), value | ldc, | ||
type(c_ptr), value | myInfo | ||
) |
The documentation for this interface was generated from the following file: