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

?syconv

Converts a symmetric matrix given by a triangular matrix factorization into two matrices and vice versa.

Syntax

lapack_int LAPACKE_ssyconv (int matrix_layout, char uplo, char way, lapack_int n, float * a, lapack_int lda, const lapack_int * ipiv, float * e);

lapack_int LAPACKE_dsyconv (int matrix_layout, char uplo, char way, lapack_int n, double* a, lapack_int lda, const lapack_int * ipiv, double * e);

lapack_int LAPACKE_csyconv (int matrix_layout, char uplo, char way, lapack_int n, lapack_complex_float * a, lapack_int lda, const lapack_int * ipiv, lapack_complex_float * e);

lapack_int LAPACKE_zsyconv (int matrix_layout, char uplo, char way, lapack_int n, lapack_complex_double* a, lapack_int lda, const lapack_int * ipiv, lapack_complex_double * e);

Include Files

  • mkl.h

Description

The routine converts matrix A, which results from a triangular matrix factorization, into matrices L and D and vice versa. The routine returns non-diagonalized elements of D and applies or reverses permutation done with the triangular matrix factorization.

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 whether the details of the factorization are stored as an upper or lower triangular matrix:

If uplo = 'U': the upper triangular, A = U*D*UT.

If uplo = 'L': the lower triangular, A = L*D*LT.

way

Must be 'C' or 'R'.

n

The order of matrix A; n 0.

a

Array of size max(1,lda *n).

The block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ?sytrf.

lda

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

ipiv

Array, size at least max(1, n).

Details of the interchanges and the block structure of D, as returned by ?sytrf.

Output Parameters

e

Array of size max(1, n) containing the superdiagonal/subdiagonal of the symmetric 1-by-1 or 2-by-2 block diagonal matrix D in L*D*LT.

Return Values

info

If info = 0, the execution is successful.

If info < 0, the i-th parameter had an illegal value.

If info = -1011, memory allocation error occurred.

See Also