rocsolver_sbdsqr Interface Reference

rocsolver_sbdsqr Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::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]handlerocblas_handle.
[in]uplorocblas_fill.
Specifies whether B is upper or lower bidiagonal.
[in]nrocblas_int. n >= 0.
The number of rows and columns of matrix B.
[in]nvrocblas_int. nv >= 0.
The number of columns of matrix V.
[in]nurocblas_int. nu >= 0.
The number of rows of matrix U.
[in]ncrocblas_int. nu >= 0.
The number of columns of matrix C.
[in,out]Dpointer 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]Epointer 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]Vpointer 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]ldvrocblas_int. ldv >= n if nv > 0, or ldv >=1 if nv = 0.
Specifies the leading dimension of V.
[in,out]Upointer 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]ldurocblas_int. ldu >= nu.
Specifies the leading dimension of U.
[in,out]Cpointer 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]ldcrocblas_int. ldc >= n if nc > 0, or ldc >=1 if nc = 0.
Specifies the leading dimension of C.
[out]infopointer 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: