?syconv
?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: the upper triangular,uplo='U'.A=U*D*UTIf: the lower triangular,uplo='L'.A=L*D*LT
- way
- Must be'C'or'R'.
- n
- The order of matrixA;n≥0.
- a
- Array of sizemax(1,.lda*n)The block diagonal matrixDand the multipliers used to obtain the factorUorLas computed by?sytrf.
- lda
- The leading dimension ofa;.lda≥max(1,n)
- ipiv
- Array, size at leastmax(1,.n)Details of the interchanges and the block structure ofD, as returned by?sytrf.
Output Parameters
- e
- Array of sizemax(1,containing the superdiagonal/subdiagonal of the symmetric 1-by-1 or 2-by-2 block diagonal matrixn)DinL*D*LT.
Return Values
- info
- If, the execution is successful.info= 0If, theinfo< 0i-th parameter had an illegal value.If, memory allocation error occurred.info= -1011