rocsolver_sgeblttrs_npvt_interleaved_batched Interface Reference

rocsolver_sgeblttrs_npvt_interleaved_batched Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_sgeblttrs_npvt_interleaved_batched Interface Reference
hipfort_rocsolver::rocsolver_sgeblttrs_npvt_interleaved_batched Interface Reference

The GEBLTTRS_NPVT_INTERLEAVED_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_interleaved_batched_ (handle, nb, nblocks, nrhs, a, inca, lda, stridea, b, incb, ldb, strideb, c, incc, ldc, stridec, x, incx, ldx, stridex, batch_count)
 

Detailed Description

The GEBLTTRS_NPVT_INTERLEAVED_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_{ll} & & & \\% A_{l1} & B_{ll} & C_{ll} & & \\% & \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_INTERLEAVED_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_INTERLEAVED_BATCHED.
[in]inca- rocblas_int. inca > 0. Stride from the start of one row of A_{li} to the next. The normal use cases are inca = 1 (equivalent to the strided batched case) or inca = batch_count (for an interleaved batched case).
[in]lda- rocblas_int. lda >= inca * nb. Specifies the leading dimension of blocks A_{li}, that is, the stride from the start of one column of A_{li} to the next.
[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 cases are strideA >= lda*nb*(nblocks-1) (equivalent to the strided batched case) or strideA = 1 (for an interleaved batched case).
[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_INTERLEAVED_BATCHED.
[in]incb- rocblas_int. incb > 0. Stride from the start of one row of B_{li} to the next. The normal use cases are incb = 1 (equivalent to the strided batched case) or incb = batch_count (for an interleaved batched case).
[in]ldb- rocblas_int. ldb >= incb * nb. Specifies the leading dimension of blocks B_{li}, that is, the stride from the start of one column of B_{li} to the next.
[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 cases are strideB >= ldb*nb*nblocks (equivalent to the strided batched case) or strideB = 1 (for an interleaved batched case).
[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_INTERLEAVED_BATCHED.
[in]incc- rocblas_int. incc > 0. Stride from the start of one row of C_{li} to the next. The normal use cases are incc = 1 (equivalent to the strided batched case) or incc = batch_count (for an interleaved batched case).
[in]ldc- rocblas_int. ldc >= incc * nb. Specifies the leading dimension of blocks C_{li}, that is, the stride from the start of one column of C_{li} to the next.
[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 cases are strideC >= ldc*nb*(nblocks-1) (equivalent to the strided batched case) or strideC = 1 (for an interleaved batched case).
[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]incx- rocblas_int. incx > 0. Stride from the start of one row of X_{li} to the next. The normal use cases are incx = 1 (equivalent to the strided batched case) or incx = batch_count (for an interleaved batched case).
[in]ldx- rocblas_int. ldx >= incx * nb. Specifies the leading dimension of blocks X_{li}, that is, the stride from the start of one column of X_{li} to the next.
[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 cases are strideX >= ldx*nrhs*nblocks (equivalent to the strided batched case) or strideX = 1 (for an interleaved batched case).
[in]batch_count- rocblas_int. batch_count >= 0. Number of matrices in the batch.

Member Function/Subroutine Documentation

◆ rocsolver_sgeblttrs_npvt_interleaved_batched_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgeblttrs_npvt_interleaved_batched::rocsolver_sgeblttrs_npvt_interleaved_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  inca,
integer(c_int), value  lda,
integer(c_int64_t), value  stridea,
type(c_ptr), value  b,
integer(c_int), value  incb,
integer(c_int), value  ldb,
integer(c_int64_t), value  strideb,
type(c_ptr), value  c,
integer(c_int), value  incc,
integer(c_int), value  ldc,
integer(c_int64_t), value  stridec,
type(c_ptr), value  x,
integer(c_int), value  incx,
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: