trtrs#

Functions

void strtrs(
    const char*          uplo,
    const char*          trans,
    const char*          diag,
    const INT            n,
    const INT            nrhs,
    const f32*  restrict A,
    const INT            lda,
          f32*  restrict B,
    const INT            ldb,
          INT*           info
);
void strtrs(const char *uplo, const char *trans, const char *diag, const INT n, const INT nrhs, const f32 *restrict A, const INT lda, f32 *restrict B, const INT ldb, INT *info)#

STRTRS solves a triangular system of the form.

A * X = B or A**T * X = B,

where A is a triangular matrix of order N, and B is an N-by-NRHS matrix.

This routine verifies that A is nonsingular, but callers should note that only exact singularity is detected. It is conceivable for one or more diagonal elements of A to be subnormally tiny numbers without this routine signalling an error.

If a possible loss of numerical precision due to near-singular matrices is a concern, the caller should verify that A is nonsingular within some tolerance before calling this routine.

Parameters

in
uplo

= ‘U’: A is upper triangular; = ‘L’: A is lower triangular.

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 = Transpose)

in
diag

= ‘N’: A is non-unit triangular; = ‘U’: A is unit triangular.

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
A

Double precision array, dimension (lda, n). The triangular matrix A. If uplo = “U”, the leading N-by-N upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If uplo = “L”, the leading N-by-N lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If diag = “U”, the diagonal elements of A are also not referenced and are assumed to be 1.

in
lda

The leading dimension of the array A. lda >= max(1,n).

inout
B

Double precision array, dimension (ldb, nrhs). On entry, the right hand side matrix B. On exit, if info = 0, the solution matrix X.

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

  • > 0: if info = i, the i-th diagonal element of A is exactly zero, indicating that the matrix is singular and the solutions X have not been computed.

Functions

void dtrtrs(
    const char*          uplo,
    const char*          trans,
    const char*          diag,
    const INT            n,
    const INT            nrhs,
    const f64*  restrict A,
    const INT            lda,
          f64*  restrict B,
    const INT            ldb,
          INT*           info
);
void dtrtrs(const char *uplo, const char *trans, const char *diag, const INT n, const INT nrhs, const f64 *restrict A, const INT lda, f64 *restrict B, const INT ldb, INT *info)#

DTRTRS solves a triangular system of the form.

A * X = B or A**T * X = B,

where A is a triangular matrix of order N, and B is an N-by-NRHS matrix.

This routine verifies that A is nonsingular, but callers should note that only exact singularity is detected. It is conceivable for one or more diagonal elements of A to be subnormally tiny numbers without this routine signalling an error.

If a possible loss of numerical precision due to near-singular matrices is a concern, the caller should verify that A is nonsingular within some tolerance before calling this routine.

Parameters

in
uplo

= ‘U’: A is upper triangular; = ‘L’: A is lower triangular.

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 = Transpose)

in
diag

= ‘N’: A is non-unit triangular; = ‘U’: A is unit triangular.

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
A

Double precision array, dimension (lda, n). The triangular matrix A. If uplo = “U”, the leading N-by-N upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If uplo = “L”, the leading N-by-N lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If diag = “U”, the diagonal elements of A are also not referenced and are assumed to be 1.

in
lda

The leading dimension of the array A. lda >= max(1,n).

inout
B

Double precision array, dimension (ldb, nrhs). On entry, the right hand side matrix B. On exit, if info = 0, the solution matrix X.

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

  • > 0: if info = i, the i-th diagonal element of A is exactly zero, indicating that the matrix is singular and the solutions X have not been computed.

Functions

void ctrtrs(
    const char*          uplo,
    const char*          trans,
    const char*          diag,
    const INT            n,
    const INT            nrhs,
    const c64*  restrict A,
    const INT            lda,
          c64*  restrict B,
    const INT            ldb,
          INT*           info
);
void ctrtrs(const char *uplo, const char *trans, const char *diag, const INT n, const INT nrhs, const c64 *restrict A, const INT lda, c64 *restrict B, const INT ldb, INT *info)#

CTRTRS solves a triangular system of the form.

A * X = B, A**T * X = B, or A**H * X = B,

where A is a triangular matrix of order N, and B is an N-by-NRHS matrix.

This routine verifies that A is nonsingular, but callers should note that only exact singularity is detected. It is conceivable for one or more diagonal elements of A to be subnormally tiny numbers without this routine signalling an error.

If a possible loss of numerical precision due to near-singular matrices is a concern, the caller should verify that A is nonsingular within some tolerance before calling this routine.

Parameters

in
uplo

= ‘U’: A is upper triangular; = ‘L’: A is lower triangular.

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
diag

= ‘N’: A is non-unit triangular; = ‘U’: A is unit triangular.

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
A

Single complex array, dimension (lda, n). The triangular matrix A. If uplo = “U”, the leading N-by-N upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If uplo = “L”, the leading N-by-N lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If diag = “U”, the diagonal elements of A are also not referenced and are assumed to be 1.

in
lda

The leading dimension of the array A. lda >= max(1,n).

inout
B

Single complex array, dimension (ldb, nrhs). On entry, the right hand side matrix B. On exit, if info = 0, the solution matrix X.

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

  • > 0: if info = i, the i-th diagonal element of A is exactly zero, indicating that the matrix is singular and the solutions X have not been computed.

Functions

void ztrtrs(
    const char*          uplo,
    const char*          trans,
    const char*          diag,
    const INT            n,
    const INT            nrhs,
    const c128* restrict A,
    const INT            lda,
          c128* restrict B,
    const INT            ldb,
          INT*           info
);
void ztrtrs(const char *uplo, const char *trans, const char *diag, const INT n, const INT nrhs, const c128 *restrict A, const INT lda, c128 *restrict B, const INT ldb, INT *info)#

ZTRTRS solves a triangular system of the form.

A * X = B, A**T * X = B, or A**H * X = B,

where A is a triangular matrix of order N, and B is an N-by-NRHS matrix.

This routine verifies that A is nonsingular, but callers should note that only exact singularity is detected. It is conceivable for one or more diagonal elements of A to be subnormally tiny numbers without this routine signalling an error.

If a possible loss of numerical precision due to near-singular matrices is a concern, the caller should verify that A is nonsingular within some tolerance before calling this routine.

Parameters

in
uplo

= ‘U’: A is upper triangular; = ‘L’: A is lower triangular.

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
diag

= ‘N’: A is non-unit triangular; = ‘U’: A is unit triangular.

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
A

Double complex array, dimension (lda, n). The triangular matrix A. If uplo = “U”, the leading N-by-N upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If uplo = “L”, the leading N-by-N lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If diag = “U”, the diagonal elements of A are also not referenced and are assumed to be 1.

in
lda

The leading dimension of the array A. lda >= max(1,n).

inout
B

Double complex array, dimension (ldb, nrhs). On entry, the right hand side matrix B. On exit, if info = 0, the solution matrix X.

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

  • > 0: if info = i, the i-th diagonal element of A is exactly zero, indicating that the matrix is singular and the solutions X have not been computed.