sytrs_3#

Functions

void ssytrs_3(
    const char*          uplo,
    const INT            n,
    const INT            nrhs,
    const f32*  restrict A,
    const INT            lda,
    const f32*  restrict E,
    const INT*  restrict ipiv,
          f32*  restrict B,
    const INT            ldb,
          INT*           info
);
void ssytrs_3(const char *uplo, const INT n, const INT nrhs, const f32 *restrict A, const INT lda, const f32 *restrict E, const INT *restrict ipiv, f32 *restrict B, const INT ldb, INT *info)#

SSYTRS_3 solves a system of linear equations A * X = B with a real symmetric matrix A using the factorization computed by SSYTRF_RK or DSYTRF_BK:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix, U**T (or L**T) is the transpose of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.

Parameters

in
uplo

Specifies whether the details of the factorization are stored as an upper or lower triangular matrix: = ‘U’: Upper triangular, form is A = P*U*D*(U**T)*(P**T); = ‘L’: Lower triangular, form is A = P*L*D*(L**T)*(P**T).

in
n

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

in
nrhs

The number of right hand sides. nrhs >= 0.

in
A

Double precision array, dimension (lda, n). Diagonal of the block diagonal matrix D and factors U or L as computed by SSYTRF_RK and DSYTRF_BK.

in
lda

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

in
E

Double precision array, dimension (n). Contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D.

in
ipiv

Integer array, dimension (n). Details of the interchanges and the block structure of D.

inout
B

Double precision array, dimension (ldb, nrhs). On entry, the right hand side matrix B. On exit, 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

Functions

void dsytrs_3(
    const char*          uplo,
    const INT            n,
    const INT            nrhs,
    const f64*  restrict A,
    const INT            lda,
    const f64*  restrict E,
    const INT*  restrict ipiv,
          f64*  restrict B,
    const INT            ldb,
          INT*           info
);
void dsytrs_3(const char *uplo, const INT n, const INT nrhs, const f64 *restrict A, const INT lda, const f64 *restrict E, const INT *restrict ipiv, f64 *restrict B, const INT ldb, INT *info)#

DSYTRS_3 solves a system of linear equations A * X = B with a real symmetric matrix A using the factorization computed by DSYTRF_RK or DSYTRF_BK:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix, U**T (or L**T) is the transpose of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.

Parameters

in
uplo

Specifies whether the details of the factorization are stored as an upper or lower triangular matrix: = ‘U’: Upper triangular, form is A = P*U*D*(U**T)*(P**T); = ‘L’: Lower triangular, form is A = P*L*D*(L**T)*(P**T).

in
n

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

in
nrhs

The number of right hand sides. nrhs >= 0.

in
A

Double precision array, dimension (lda, n). Diagonal of the block diagonal matrix D and factors U or L as computed by DSYTRF_RK and DSYTRF_BK.

in
lda

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

in
E

Double precision array, dimension (n). Contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D.

in
ipiv

Integer array, dimension (n). Details of the interchanges and the block structure of D.

inout
B

Double precision array, dimension (ldb, nrhs). On entry, the right hand side matrix B. On exit, 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

Functions

void csytrs_3(
    const char*          uplo,
    const INT            n,
    const INT            nrhs,
    const c64*  restrict A,
    const INT            lda,
    const c64*  restrict E,
    const INT*  restrict ipiv,
          c64*  restrict B,
    const INT            ldb,
          INT*           info
);
void csytrs_3(const char *uplo, const INT n, const INT nrhs, const c64 *restrict A, const INT lda, const c64 *restrict E, const INT *restrict ipiv, c64 *restrict B, const INT ldb, INT *info)#

CSYTRS_3 solves a system of linear equations A * X = B with a complex symmetric matrix A using the factorization computed by CSYTRF_RK or ZSYTRF_BK:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix, U**T (or L**T) is the transpose of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.

Parameters

in
uplo

Specifies whether the details of the factorization are stored as an upper or lower triangular matrix: = ‘U’: Upper triangular, form is A = P*U*D*(U**T)*(P**T); = ‘L’: Lower triangular, form is A = P*L*D*(L**T)*(P**T).

in
n

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

in
nrhs

The number of right hand sides. nrhs >= 0.

in
A

Single complex array, dimension (lda, n). Diagonal of the block diagonal matrix D and factors U or L as computed by CSYTRF_RK and ZSYTRF_BK.

in
lda

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

in
E

Single complex array, dimension (n). Contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D.

in
ipiv

Integer array, dimension (n). Details of the interchanges and the block structure of D.

inout
B

Single complex array, dimension (ldb, nrhs). On entry, the right hand side matrix B. On exit, 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

Functions

void zsytrs_3(
    const char*          uplo,
    const INT            n,
    const INT            nrhs,
    const c128* restrict A,
    const INT            lda,
    const c128* restrict E,
    const INT*  restrict ipiv,
          c128* restrict B,
    const INT            ldb,
          INT*           info
);
void zsytrs_3(const char *uplo, const INT n, const INT nrhs, const c128 *restrict A, const INT lda, const c128 *restrict E, const INT *restrict ipiv, c128 *restrict B, const INT ldb, INT *info)#

ZSYTRS_3 solves a system of linear equations A * X = B with a complex symmetric matrix A using the factorization computed by ZSYTRF_RK or ZSYTRF_BK:

A = P*U*D*(U**T)*(P**T) or A = P*L*D*(L**T)*(P**T),

where U (or L) is unit upper (or lower) triangular matrix, U**T (or L**T) is the transpose of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.

This algorithm is using Level 3 BLAS.

Parameters

in
uplo

Specifies whether the details of the factorization are stored as an upper or lower triangular matrix: = ‘U’: Upper triangular, form is A = P*U*D*(U**T)*(P**T); = ‘L’: Lower triangular, form is A = P*L*D*(L**T)*(P**T).

in
n

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

in
nrhs

The number of right hand sides. nrhs >= 0.

in
A

Double complex array, dimension (lda, n). Diagonal of the block diagonal matrix D and factors U or L as computed by ZSYTRF_RK and ZSYTRF_BK.

in
lda

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

in
E

Double complex array, dimension (n). Contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D.

in
ipiv

Integer array, dimension (n). Details of the interchanges and the block structure of D.

inout
B

Double complex array, dimension (ldb, nrhs). On entry, the right hand side matrix B. On exit, 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