rocsolver_sgeblttrf_npvt Interface Reference

rocsolver_sgeblttrf_npvt Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_sgeblttrf_npvt Interface Reference
hipfort_rocsolver::rocsolver_sgeblttrf_npvt Interface Reference

//! More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_sgeblttrf_npvt_ (handle, nb, nblocks, a, lda, b, ldb, c, ldc, myinfo)
 

Detailed Description

//!

\brief The GEBLTTRF_NPVT functions compute the LU factorization of a block tridiagonal
matrix without partial pivoting.

\details The LU factorization of a block tridiagonal matrix

\f[
    M = \left[\begin{array}{ccccc}
    B_1 & C_1    &         &         &        \\%
    A_1 & B_2    & C_2     &         &        \\%
        & \ddots & \ddots  & \ddots  &        \\%
        &        & A_{n-2} & B_{n-1} & C_{n-1}\\%
        &        &         & A_{n-1} & B_n
    \end{array}\right]
\f]

with \f$n = \f$ ``nblocks`` diagonal blocks of size ``nb``, can be represented as

\f[
    M = \left[\begin{array}{cccc}
    E_1 &        &         &    \\%
    A_1 & E_2    &         &    \\%
        & \ddots & \ddots  &    \\%
        &        & A_{n-1} & E_n
    \end{array}\right] \left[\begin{array}{cccc}
    I & F_1    &        &        \\%
      & \ddots & \ddots &        \\%
      &        & I      & F_{n-1}\\%
      &        &        & I
    \end{array}\right] = LU
\f]

where the blocks \f$E_i\f$ and \f$F_i\f$ are general blocks of size ``nb``. This function
returns
diagonal blocks \f$E_i\f$ in factorized form, i.e. \f$E_i=(L_i+I)U_i\f$ where \f$L_i\f$ is
strictly lower triangular
and \f$U_i\f$ is upper triangular.

@param[in] handle - rocblas_handle.
@param[in] nb - rocblas_int. nb >= 0.
            The number of rows and columns of each block.
@param[in] nblocks - rocblas_int. nblocks >= 0.
            The number of blocks along the diagonal of the matrix.
@param[in] A - pointer to type. Array on the GPU of dimension lda*nb*(nblocks-1).
            Contains the blocks A_i, arranged one after the other.
@param[in] lda - rocblas_int. lda >= nb.
            Specifies the leading dimension of blocks A_i.
@param[inout] B - pointer to type. Array on the GPU of dimension ldb*nb*nblocks.
            On entry, contains the blocks B_i, arranged one after the other.
            On exit, it is overwritten by L_i + U_i, where L_i and U_i are the factors of
            E_i as returned by
            \ref rocsolver_sgetrf_npvt "GETRF_NPVT".
@param[in] ldb - rocblas_int. ldb >= nb.
            Specifies the leading dimension of blocks B_i.
@param[inout] C - pointer to type. Array on the GPU of dimension ldc*nb*(nblocks-1).
            On entry, contains the blocks C_i, arranged one after the other.
            On exit, it is overwritten by blocks F_i.
@param[in] ldc - rocblas_int. ldc >= nb.
            Specifies the leading dimension of blocks C_i.
@param[out] myInfo - pointer to a rocblas_int on the GPU.
            If info = 0, successful exit.
            If info = i > 0, the matrix is singular.

Member Function/Subroutine Documentation

◆ rocsolver_sgeblttrf_npvt_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_sgeblttrf_npvt::rocsolver_sgeblttrf_npvt_ ( type(c_ptr), value  handle,
integer(c_int), value  nb,
integer(c_int), value  nblocks,
type(c_ptr), value  a,
integer(c_int), value  lda,
type(c_ptr), value  b,
integer(c_int), value  ldb,
type(c_ptr), value  c,
integer(c_int), value  ldc,
type(c_ptr), value  myinfo 
)

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