gttrs#

Functions

void sgttrs(
    const char*          trans,
    const INT            n,
    const INT            nrhs,
    const f32*  restrict DL,
    const f32*  restrict D,
    const f32*  restrict DU,
    const f32*  restrict DU2,
    const INT*  restrict ipiv,
          f32*  restrict B,
    const INT            ldb,
          INT*           info
);
void sgttrs(const char *trans, const INT n, const INT nrhs, const f32 *restrict DL, const f32 *restrict D, const f32 *restrict DU, const f32 *restrict DU2, const INT *restrict ipiv, f32 *restrict B, const INT ldb, INT *info)#

SGTTRS solves one of the systems of equations A*X = B or A**T*X = B, with a tridiagonal matrix A using the LU factorization computed by SGTTRF.

Parameters

in
trans

Specifies the form of the system of equations. = ‘N’: A * X = B (No transpose) = ‘T’: A**T * X = B (Transpose) = ‘C’: A**T * X = B (Conjugate transpose = Transpose)

in
n

The order of the matrix A. n >= 0.

in
nrhs

The number of right hand sides, i.e., the number of columns of the matrix B. nrhs >= 0.

in
DL

The (n-1) multipliers that define the matrix L from the LU factorization of A. Array of dimension (n-1).

in
D

The n diagonal elements of the upper triangular matrix U from the LU factorization of A. Array of dimension (n).

in
DU

The (n-1) elements of the first super-diagonal of U. Array of dimension (n-1).

in
DU2

The (n-2) elements of the second super-diagonal of U. Array of dimension (n-2).

in
ipiv

The pivot indices; for 0 <= i < n, row i of the matrix was interchanged with row ipiv[i]. ipiv[i] will always be either i or i+1; ipiv[i] = i indicates a row interchange was not required. Array of dimension (n).

inout
B

On entry, the matrix of right hand side vectors B. On exit, B is overwritten by the solution vectors X. Array of dimension (ldb, nrhs).

in
ldb

The leading dimension of the array B. ldb >= max(1, n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

Functions

void dgttrs(
    const char*          trans,
    const INT            n,
    const INT            nrhs,
    const f64*  restrict DL,
    const f64*  restrict D,
    const f64*  restrict DU,
    const f64*  restrict DU2,
    const INT*  restrict ipiv,
          f64*  restrict B,
    const INT            ldb,
          INT*           info
);
void dgttrs(const char *trans, const INT n, const INT nrhs, const f64 *restrict DL, const f64 *restrict D, const f64 *restrict DU, const f64 *restrict DU2, const INT *restrict ipiv, f64 *restrict B, const INT ldb, INT *info)#

DGTTRS solves one of the systems of equations A*X = B or A**T*X = B, with a tridiagonal matrix A using the LU factorization computed by DGTTRF.

Parameters

in
trans

Specifies the form of the system of equations. = ‘N’: A * X = B (No transpose) = ‘T’: A**T * X = B (Transpose) = ‘C’: A**T * X = B (Conjugate transpose = Transpose)

in
n

The order of the matrix A. n >= 0.

in
nrhs

The number of right hand sides, i.e., the number of columns of the matrix B. nrhs >= 0.

in
DL

The (n-1) multipliers that define the matrix L from the LU factorization of A. Array of dimension (n-1).

in
D

The n diagonal elements of the upper triangular matrix U from the LU factorization of A. Array of dimension (n).

in
DU

The (n-1) elements of the first super-diagonal of U. Array of dimension (n-1).

in
DU2

The (n-2) elements of the second super-diagonal of U. Array of dimension (n-2).

in
ipiv

The pivot indices; for 0 <= i < n, row i of the matrix was interchanged with row ipiv[i]. ipiv[i] will always be either i or i+1; ipiv[i] = i indicates a row interchange was not required. Array of dimension (n).

inout
B

On entry, the matrix of right hand side vectors B. On exit, B is overwritten by the solution vectors X. Array of dimension (ldb, nrhs).

in
ldb

The leading dimension of the array B. ldb >= max(1, n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

Functions

void cgttrs(
    const char*          trans,
    const INT            n,
    const INT            nrhs,
    const c64*  restrict DL,
    const c64*  restrict D,
    const c64*  restrict DU,
    const c64*  restrict DU2,
    const INT*  restrict ipiv,
          c64*  restrict B,
    const INT            ldb,
          INT*           info
);
void cgttrs(const char *trans, const INT n, const INT nrhs, const c64 *restrict DL, const c64 *restrict D, const c64 *restrict DU, const c64 *restrict DU2, const INT *restrict ipiv, c64 *restrict B, const INT ldb, INT *info)#

CGTTRS solves one of the systems of equations A*X = B, A**T*X = B, or A**H*X = B, with a tridiagonal matrix A using the LU factorization computed by CGTTRF.

Parameters

in
trans

Specifies the form of the system of equations. = ‘N’: A * X = B (No transpose) = ‘T’: A**T * X = B (Transpose) = ‘C’: A**H * X = B (Conjugate transpose)

in
n

The order of the matrix A. n >= 0.

in
nrhs

The number of right hand sides, i.e., the number of columns of the matrix B. nrhs >= 0.

in
DL

The (n-1) multipliers that define the matrix L from the LU factorization of A. Array of dimension (n-1).

in
D

The n diagonal elements of the upper triangular matrix U from the LU factorization of A. Array of dimension (n).

in
DU

The (n-1) elements of the first super-diagonal of U. Array of dimension (n-1).

in
DU2

The (n-2) elements of the second super-diagonal of U. Array of dimension (n-2).

in
ipiv

The pivot indices; for 0 <= i < n, row i of the matrix was interchanged with row ipiv[i]. ipiv[i] will always be either i or i+1; ipiv[i] = i indicates a row interchange was not required. Array of dimension (n).

inout
B

On entry, the matrix of right hand side vectors B. On exit, B is overwritten by the solution vectors X. Array of dimension (ldb, nrhs).

in
ldb

The leading dimension of the array B. ldb >= max(1, n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

Functions

void zgttrs(
    const char*          trans,
    const INT            n,
    const INT            nrhs,
    const c128* restrict DL,
    const c128* restrict D,
    const c128* restrict DU,
    const c128* restrict DU2,
    const INT*  restrict ipiv,
          c128* restrict B,
    const INT            ldb,
          INT*           info
);
void zgttrs(const char *trans, const INT n, const INT nrhs, const c128 *restrict DL, const c128 *restrict D, const c128 *restrict DU, const c128 *restrict DU2, const INT *restrict ipiv, c128 *restrict B, const INT ldb, INT *info)#

ZGTTRS solves one of the systems of equations A*X = B, A**T*X = B, or A**H*X = B, with a tridiagonal matrix A using the LU factorization computed by ZGTTRF.

Parameters

in
trans

Specifies the form of the system of equations. = ‘N’: A * X = B (No transpose) = ‘T’: A**T * X = B (Transpose) = ‘C’: A**H * X = B (Conjugate transpose)

in
n

The order of the matrix A. n >= 0.

in
nrhs

The number of right hand sides, i.e., the number of columns of the matrix B. nrhs >= 0.

in
DL

The (n-1) multipliers that define the matrix L from the LU factorization of A. Array of dimension (n-1).

in
D

The n diagonal elements of the upper triangular matrix U from the LU factorization of A. Array of dimension (n).

in
DU

The (n-1) elements of the first super-diagonal of U. Array of dimension (n-1).

in
DU2

The (n-2) elements of the second super-diagonal of U. Array of dimension (n-2).

in
ipiv

The pivot indices; for 0 <= i < n, row i of the matrix was interchanged with row ipiv[i]. ipiv[i] will always be either i or i+1; ipiv[i] = i indicates a row interchange was not required. Array of dimension (n).

inout
B

On entry, the matrix of right hand side vectors B. On exit, B is overwritten by the solution vectors X. Array of dimension (ldb, nrhs).

in
ldb

The leading dimension of the array B. ldb >= max(1, n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value