# rocsolver_sgesv_strided_batched Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_sgesv_strided_batched Interface Reference
hipfort_rocsolver::rocsolver_sgesv_strided_batched Interface Reference

GESV_STRIDED_BATCHED solves a batch of general systems of n linear equations on n variables. More...

## Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_sgesv_strided_batched_ (handle, n, nrhs, A, lda, strideA, ipiv, strideP, B, ldb, strideB, myInfo, batch_count)

integer(kind(rocblas_status_success)) function rocsolver_sgesv_strided_batched_full_rank (handle, n, nrhs, A, lda, strideA, ipiv, strideP, B, ldb, strideB, myInfo, batch_count)

integer(kind(rocblas_status_success)) function rocsolver_sgesv_strided_batched_rank_0 (handle, n, nrhs, A, lda, strideA, ipiv, strideP, B, ldb, strideB, myInfo, batch_count)

integer(kind(rocblas_status_success)) function rocsolver_sgesv_strided_batched_rank_1 (handle, n, nrhs, A, lda, strideA, ipiv, strideP, B, ldb, strideB, myInfo, batch_count)

## Detailed Description

GESV_STRIDED_BATCHED solves a batch of general systems of n linear equations on n variables.

The linear systems are of the form

$A_j X_j = B_j$

where $$A_j$$ is a general n-by-n matrix. Matrix $$A_j$$ is first factorized in triangular factors $$L_j$$ and $$U_j$$ using GETRF_STRIDED_BATCHED; then, the solutions are computed with GETRS_STRIDED_BATCHED.

Parameters
 [in] handle rocblas_handle. [in] n rocblas_int. n >= 0. The order of the system, i.e. the number of columns and rows of all A_j matrices. [in] nrhs rocblas_int. nrhs >= 0. The number of right hand sides, i.e., the number of columns of all the matrices B_j. [in] A pointer to type. Array on the GPU (the size depends on the value of strideA). On entry, the matrices A_j. On exit, if info_j = 0, the factors L_j and U_j of the LU decomposition of A_j returned by GETRF_STRIDED_BATCHED. [in] lda rocblas_int. lda >= n. The leading dimension of matrices A_j. [in] strideA rocblas_stride. Stride from the start of one matrix A_j to the next one A_(j+1). There is no restriction for the value of strideA. Normal use case is strideA >= lda*n. [out] ipiv pointer to rocblas_int. Array on the GPU (the size depends on the value of strideP). The vectors ipiv_j of pivot indices returned by GETRF_STRIDED_BATCHED. [in] strideP rocblas_stride. Stride from the start of one vector ipiv_j to the next one ipiv_(j+1). There is no restriction for the value of strideP. Normal use case is strideP >= n. [in,out] B pointer to type. Array on the GPU (size depends on the value of strideB). On entry, the right hand side matrices B_j. On exit, the solution matrix X_j of each system in the batch. [in] ldb rocblas_int. ldb >= n. The leading dimension of matrices B_j. [in] strideB rocblas_stride. Stride from the start of one matrix B_j to the next one B_(j+1). There is no restriction for the value of strideB. Normal use case is strideB >= ldb*nrhs. [out] info pointer to rocblas_int. Array of batch_count integers on the GPU. If info[j] = 0, successful exit for A_j. If info[i] = j > 0, U_i is singular, and the solution could not be computed. U_j[i,i] is the first zero element in the diagonal. [in] batch_count rocblas_int. batch_count >= 0. Number of instances (systems) in the batch.

## ◆ rocsolver_sgesv_strided_batched_()

 integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgesv_strided_batched::rocsolver_sgesv_strided_batched_ ( type(c_ptr), value handle, integer(c_int), value n, integer(c_int), value nrhs, type(c_ptr), value A, integer(c_int), value lda, integer(c_int64_t), value strideA, type(c_ptr), value ipiv, integer(c_int64_t), value strideP, type(c_ptr), value B, integer(c_int), value ldb, integer(c_int64_t), value strideB, integer(c_int) myInfo, integer(c_int), value batch_count )

## ◆ rocsolver_sgesv_strided_batched_full_rank()

 integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgesv_strided_batched::rocsolver_sgesv_strided_batched_full_rank ( type(c_ptr) handle, integer(c_int) n, integer(c_int) nrhs, real(c_float), dimension(:,:), target A, integer(c_int) lda, integer(c_int64_t) strideA, integer(c_int), dimension(:), target ipiv, integer(c_int64_t) strideP, real(c_float), dimension(:,:), target B, integer(c_int) ldb, integer(c_int64_t) strideB, integer(c_int) myInfo, integer(c_int) batch_count )

## ◆ rocsolver_sgesv_strided_batched_rank_0()

 integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgesv_strided_batched::rocsolver_sgesv_strided_batched_rank_0 ( type(c_ptr) handle, integer(c_int) n, integer(c_int) nrhs, real(c_float), target A, integer(c_int) lda, integer(c_int64_t) strideA, integer(c_int), target ipiv, integer(c_int64_t) strideP, real(c_float), target B, integer(c_int) ldb, integer(c_int64_t) strideB, integer(c_int) myInfo, integer(c_int) batch_count )

## ◆ rocsolver_sgesv_strided_batched_rank_1()

 integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgesv_strided_batched::rocsolver_sgesv_strided_batched_rank_1 ( type(c_ptr) handle, integer(c_int) n, integer(c_int) nrhs, real(c_float), dimension(:), target A, integer(c_int) lda, integer(c_int64_t) strideA, integer(c_int), dimension(:), target ipiv, integer(c_int64_t) strideP, real(c_float), dimension(:), target B, integer(c_int) ldb, integer(c_int64_t) strideB, integer(c_int) myInfo, integer(c_int) batch_count )

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