Developer Reference

Contents

?stedc

Computes all eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method.

Syntax

lapack_int LAPACKE_sstedc
(
int
matrix_layout
,
char
compz
,
lapack_int
n
,
float*
d
,
float*
e
,
float*
z
,
lapack_int
ldz
);
lapack_int LAPACKE_dstedc
(
int
matrix_layout
,
char
compz
,
lapack_int
n
,
double*
d
,
double*
e
,
double*
z
,
lapack_int
ldz
);
lapack_int LAPACKE_cstedc
(
int
matrix_layout
,
char
compz
,
lapack_int
n
,
float*
d
,
float*
e
,
lapack_complex_float*
z
,
lapack_int
ldz
);
lapack_int LAPACKE_zstedc
(
int
matrix_layout
,
char
compz
,
lapack_int
n
,
double*
d
,
double*
e
,
lapack_complex_double*
z
,
lapack_int
ldz
);
Include Files
  • mkl.h
Description
The routine computes all the eigenvalues and (optionally) all the eigenvectors of a symmetric tridiagonal matrix using the divide and conquer method. The eigenvectors of a full or band real symmetric or complex Hermitian matrix can also be found if sytrd / hetrd or sptrd / hptrd or sbtrd / hbtrd has been used to reduce this matrix to tridiagonal form.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
compz
Must be
'N'
or
'I'
or
'V'
.
If
compz
=
'N'
, the routine computes eigenvalues only.
If
compz
=
'I'
, the routine computes the eigenvalues and eigenvectors of the tridiagonal matrix.
If
compz
=
'V'
, the routine computes the eigenvalues and eigenvectors of original symmetric/Hermitian matrix. On entry, the array
z
must contain the orthogonal/unitary matrix used to reduce the original matrix to tridiagonal form.
n
The order of the symmetric tridiagonal matrix
(
n
0).
d
,
e
Arrays:
d
contains the diagonal elements of the tridiagonal matrix.
The dimension of
d
must be at least max(1,
n
).
e
contains the subdiagonal elements of the tridiagonal matrix.
The dimension of
e
must be at least max(1,
n
-1).
z
Array
z
is of size max(1,
ldz
*
n
).
If
compz
=
'V'
, then, on entry,
z
must contain the orthogonal/unitary matrix used to reduce the original matrix to tridiagonal form.
ldz
The leading dimension of
z
. Constraints:
ldz
1 if
compz
=
'N'
;
ldz
max(1,
n
) if
compz
=
'V'
or
'I'
.
Output Parameters
d
The
n
eigenvalues in ascending order, unless
info
0
.
See also
info
.
e
On exit, the array is overwritten; see
info
.
z
If
info
= 0
, then if
compz
=
'V'
,
z
contains the orthonormal eigenvectors of the original symmetric/Hermitian matrix, and if
compz
=
'I'
,
z
contains the orthonormal eigenvectors of the symmetric tridiagonal matrix. If
compz
=
'N'
,
z
is not referenced.
Return Values
This function returns a value
info
.
If
info
=0
, the execution is successful.
If
info
=
-i
, the
i
-th parameter had an illegal value.
If
info
=
i
, the algorithm failed to compute an eigenvalue while working on the submatrix lying in rows and columns
i
/(
n
+1) through mod(
i
,
n
+1).

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