Developer Reference for Intel® oneAPI Math Kernel Library for C
?syconv
Converts a symmetric matrix given by a triangular matrix factorization into two matrices and vice versa.
Syntax
lapack_intLAPACKE_ssyconv ( intmatrix_layout , charuplo , charway , lapack_intn , float*a , lapack_intlda , constlapack_int*ipiv , float*e );
lapack_intLAPACKE_dsyconv ( intmatrix_layout , charuplo , charway , lapack_intn , double*a , lapack_intlda , constlapack_int*ipiv , double*e );
lapack_intLAPACKE_csyconv ( intmatrix_layout , charuplo , charway , lapack_intn , lapack_complex_float*a , lapack_intlda , constlapack_int*ipiv , lapack_complex_float*e );
lapack_intLAPACKE_zsyconv ( intmatrix_layout , charuplo , charway , lapack_intn , lapack_complex_double*a , lapack_intlda , constlapack_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*U^{T} . If uplo = 'L' : the lower triangular, A = L*D*L^{T} .
way
Must be ‘C’ or ‘R’ .
n
The order of matrix A ; n ≥ 0.
- a
-
REAL for ssyconv DOUBLE PRECISION for dsyconv COMPLEX for csyconv DOUBLE COMPLEX for zsyconv
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
-
REAL for ssyconv DOUBLE PRECISION for dsyconv COMPLEX for csyconv DOUBLE COMPLEX for zsyconv 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.
LAPACK 95 Interface Notes
There exist FORTRAN 77 and FORTRAN 95 interfaces for this routine. See the Intel® oneMKL Fortran Developer Reference for details.