Developer Reference

  • 0.9
  • 09/09/2020
  • Public Content
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*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
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*L
T
.
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.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804