Developer Reference for Intel® oneAPI Math Kernel Library for C
?sytrs_3
Solves a system of linear equations A * X = B with a real or complex symmetric matrix.
Syntax
lapack_intLAPACKE_ssytrs_3 ( intmatrix_layout , charuplo , lapack_intn , lapack_intnrhs , constfloat*A , lapack_intlda , constfloat*e , constlapack_int*ipiv , float*B , lapack_intldb );
lapack_intLAPACKE_dsytrs_3 ( intmatrix_layout , charuplo , lapack_intn , lapack_intnrhs , constdouble*A , lapack_intlda , constdouble*e , constlapack_int*ipiv , double*B , lapack_intldb );
lapack_intLAPACKE_csytrs_3 ( intmatrix_layout , charuplo , lapack_intn , lapack_intnrhs , constlapack_complex_float*A , lapack_intlda , constlapack_complex_float*e , constlapack_int*ipiv , lapack_complex_float*B , lapack_intldb );
lapack_intLAPACKE_zsytrs_3 ( intmatrix_layout , charuplo , lapack_intn , lapack_intnrhs , constlapack_complex_double*A , lapack_intlda , constlapack_complex_double*e , constlapack_int*ipiv , lapack_complex_double*B , lapack_intldb );
Description
?sytrs_3 solves a system of linear equations A * X = B with a real or complex symmetric matrix A using the factorization computed by ?sytrf_rk : 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 a symmetric and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.
This algorithm uses Level 3 BLAS.
Input Parameters
- matrix_layout
-
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
- uplo
-
CHARACTER*1 Specifies whether the details of the factorization are stored as an upper or lower triangular matrix:
- n
-
INTEGER The order of the matrix A. n ≥ 0.
- nrhs
-
INTEGER The number of right-hand sides; that is, the number of columns of the matrix B. nrhs ≥ 0.
- A
-
REAL for ssytrs_3 DOUBLE PRECISION for dsytrs_3 COMPLEX for csytrs_3 COMPLEX*16 for zsytrs_3
Array of size max(1, lda * n ). Diagonal of the block diagonal matrix D and factors U or L as computed by ?sytrf_rk :
- lda
-
INTEGER
The leading dimension of the array A .
- e
-
REAL for ssytrs_3 DOUBLE PRECISION for dsytrs_3 COMPLEX for csytrs_3 COMPLEX*16 for zsytrs_3
Array of size n . On entry, contains the superdiagonal (or subdiagonal) elements of the symmetric block diagonal matrix D with 1-by-1 or 2-by-2 diagonal blocks. If uplo = 'U' , e( i ) = D( i- 1, i ), i =2:N, and e(1) is not referenced. If uplo = 'L' , e( i ) = D( i +1, i ), i =1:N - 1, and e( n ) is not referenced.
- ipiv
-
INTEGER
Array of size n . Details of the interchanges and the block structure of D as determined by ?sytrf_rk .
- B
-
REAL for ssytrs_3 DOUBLE PRECISION for dsytrs_3 COMPLEX for csytrs_3 COMPLEX*16 for zsytrs_3 On entry, the right-hand side matrix B. The second dimension of B must be at least max(1, nrhs ). The size of B is at least max(1, ldb * nrhs ) for column-major layout and max(1, ldb * n ) for row-major layout.
- ldb
-
INTEGER
The leading dimension of the array B . ldb ≥ max(1, n ) for column-major layout and ldb ≥ nrhs for row-major layout.
Output Parameters
- B
-
REAL for ssytrs_3 DOUBLE PRECISION for dsytrs_3 COMPLEX for csytrs_3 COMPLEX*16 for zsytrs_3 On exit, the solution matrix X.
Return Values
This function returns a value info .
If info = 0, the execution is successful.
If info = -i , the ith argument had an illegal value.