rocsolver_sgeblttrs_npvt_strided_batched Interface Reference#
The GEBLTTRS_NPVT_STRIDED_BATCHED functions solve a batch of system of linear equations given by block tridiagonal matrices in its factorized form (without partial pivoting). More...
Public Member Functions | |
| integer(kind(rocblas_status_success)) function | rocsolver_sgeblttrs_npvt_strided_batched_ (handle, nb, nblocks, nrhs, a, lda, stridea, b, ldb, strideb, c, ldc, stridec, x, ldx, stridex, batch_count) |
Detailed Description
The GEBLTTRS_NPVT_STRIDED_BATCHED functions solve a batch of system of linear equations given by block tridiagonal matrices in its factorized form (without partial pivoting).
Each linear system has the form
\[ M_l X_l = \left[\begin{array}{ccccc} B_{l1} & C_{l1} & & & \\% A_{l1} & B_{l2} & C_{l2} & & \\% & \ddots & \ddots & \ddots & \\% & & A_{l(n-2)} & B_{l(n-1)} & C_{l(n-1)} \\% & & & A_{l(n-1)} & B_{ln} \end{array}\right]\left[\begin{array}{c} X_{l1}\\% X_{l2}\\% X_{l3}\\% \vdots\\% X_{ln} \end{array}\right]=\left[\begin{array}{c} R_{l1}\\% R_{l2}\\% R_{l3}\\% \vdots\\% R_{ln} \end{array}\right]=R_l \]
where matrix \(M_l\) has \(n = \) nblocks diagonal blocks of size nb, and the right-hand-side blocks \(R_{li}\) are general blocks of size nb -by-nrhs. The blocks of matrix \(M_l\) should be in the factorized form, as returned by GEBLTTRF_NPVT_STRIDED_BATCHED.
- Parameters
-
[in] handle - rocblas_handle. [in] nb - rocblas_int. nb >= 0. The number of rows and columns of each block. [in] nblocks - rocblas_int. nblocks >= 0. The number of blocks along the diagonal of each matrix in the batch. [in] nrhs - rocblas_int. nrhs >= 0. The number of right hand sides, that is, the number of columns of blocks R_{li}. [in] A - pointer to type. Array on the GPU (the size depends on the value of strideA). Contains the blocks A_{li}, as returned by GEBLTTRF_NPVT_STRIDED_BATCHED. [in] lda - rocblas_int. lda >= nb. Specifies the leading dimension of blocks A_{li}. [in] strideA - rocblas_stride. Stride from the start of one block A_{li} to the same block in the next batch instance A_{(l+1)i}. There is no restriction for the value of strideA. The normal use case is strideA >= lda*nb*(nblocks-1). [in] B - pointer to type. Array on the GPU (the size depends on the value of strideB). Contains the blocks B_{li}, as returned by GEBLTTRF_NPVT_STRIDED_BATCHED. [in] ldb - rocblas_int. ldb >= nb. Specifies the leading dimension of blocks B_{li}. [in] strideB - rocblas_stride. Stride from the start of one block B_{li} to the same block in the next batch instance B_{(l+1)i}. There is no restriction for the value of strideB. The normal use case is strideB >= ldb*nb*nblocks. [in] C - pointer to type. Array on the GPU (the size depends on the value of strideC). Contains the blocks C_{li}, as returned by GEBLTTRF_NPVT_STRIDED_BATCHED. [in] ldc - rocblas_int. ldc >= nb. Specifies the leading dimension of blocks C_{li}. [in] strideC - rocblas_stride. Stride from the start of one block C_{li} to the same block in the next batch instance C_{(l+1)i}. There is no restriction for the value of strideC. The normal use case is strideC >= ldc*nb*(nblocks-1). [in,out] X - pointer to type. Array on the GPU (the size depends on the value of strideX). On entry, X contains the right-hand-side blocks R_{li}. It is overwritten by solution vectors X_{li} on exit. [in] ldx - rocblas_int. ldx >= nb. Specifies the leading dimension of blocks X_{li}. [in] strideX - rocblas_stride. Stride from the start of one block X_{li} to the same block in the next batch instance X_{(l+1)i}. There is no restriction for the value of strideX. The normal use case is strideX >= ldx*nblocks*nrhs. [in] batch_count - rocblas_int. batch_count >= 0. Number of matrices in the batch.
Member Function/Subroutine Documentation
◆ rocsolver_sgeblttrs_npvt_strided_batched_()
| integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgeblttrs_npvt_strided_batched::rocsolver_sgeblttrs_npvt_strided_batched_ | ( | type(c_ptr), value | handle, |
| integer(c_int), value | nb, | ||
| integer(c_int), value | nblocks, | ||
| 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 | b, | ||
| integer(c_int), value | ldb, | ||
| integer(c_int64_t), value | strideb, | ||
| type(c_ptr), value | c, | ||
| integer(c_int), value | ldc, | ||
| integer(c_int64_t), value | stridec, | ||
| type(c_ptr), value | x, | ||
| integer(c_int), value | ldx, | ||
| integer(c_int64_t), value | stridex, | ||
| integer(c_int), value | batch_count | ||
| ) |
The documentation for this interface was generated from the following file: