Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?sytrs2

Solves a system of linear equations with a UDU- or LDL-factored symmetric coefficient matrix.

Syntax

lapack_int LAPACKE_ssytrs2 (int matrix_layout , char uplo , lapack_int n , lapack_int nrhs , const float * a , lapack_int lda , const lapack_int * ipiv , float * b , lapack_int ldb );

lapack_int LAPACKE_dsytrs2 (int matrix_layout , char uplo , lapack_int n , lapack_int nrhs , const double * a , lapack_int lda , const lapack_int * ipiv , double * b , lapack_int ldb );

lapack_int LAPACKE_csytrs2 (int matrix_layout , char uplo , lapack_int n , lapack_int nrhs , const lapack_complex_float * a , lapack_int lda , const lapack_int * ipiv , lapack_complex_float * b , lapack_int ldb );

lapack_int LAPACKE_zsytrs2 (int matrix_layout , char uplo , lapack_int n , lapack_int nrhs , const lapack_complex_double * a , lapack_int lda , const lapack_int * ipiv , lapack_complex_double * b , lapack_int ldb );

Include Files

  • mkl.h

Description

The routine solves a system of linear equations A*X = B with a symmetric matrix A using the factorization of A:

if uplo='U',

A = U*D*UT

if uplo='L',

A = L*D*LT

where

  • U and L are upper and lower triangular matrices with unit diagonal

  • D is a symmetric block-diagonal matrix.

The factorization is computed by ?sytrf.

Input Parameters

matrix_layout

Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).

uplo

Must be 'U' or 'L'.

Indicates how the input matrix A has been factored:

If uplo = 'U', the array a stores the upper triangular factor U of the factorization A = U*D*UT.

If uplo = 'L', the array a stores the lower triangular factor L of the factorization A = L*D*LT.

n

The order of matrix A; n 0.

nrhs

The number of right-hand sides; nrhs 0.

a

The array aof size max(1, lda*n) contains the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ?sytrf.

b

The array b contains the right-hand side matrix B.

The size of b is at least max(1, ldb*nrhs) for column major layout and max(1, ldb*n) for row major layout.

lda

The leading dimension of a; lda max(1, n).

ldb

The leading dimension of b; ldb max(1, n) for column major layout and ldbnrhs for row major layout.

ipiv

Array of size n. The ipiv array contains details of the interchanges and the block structure of D as determined by ?sytrf.

Output Parameters

b

Overwritten by the solution matrix X.

Return Values

This function returns a value info.

If info = 0, the execution is successful.

If info = -i, parameter i had an illegal value.