rocsolver_sgeblttrs_npvt_strided_batched Interface Reference

rocsolver_sgeblttrs_npvt_strided_batched Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_sgeblttrs_npvt_strided_batched Interface Reference
hipfort_rocsolver::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: