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

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

in
D

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

in
DU

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

in
DU2

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

in
ipiv

Array of dimension (n). 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.

inout
B

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

in
ldb

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

out
info

  • info=0: successful exit

  • info<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

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

in
D

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

in
DU

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

in
DU2

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

in
ipiv

Array of dimension (n). 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.

inout
B

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

in
ldb

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

out
info

  • info=0: successful exit

  • info<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

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

in
D

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

in
DU

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

in
DU2

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

in
ipiv

Array of dimension (n). 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.

inout
B

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

in
ldb

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

out
info

  • info=0: successful exit

  • info<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

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

in
D

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

in
DU

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

in
DU2

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

in
ipiv

Array of dimension (n). 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.

inout
B

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

in
ldb

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

out
info

  • info=0: successful exit

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