Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

?geev

Computes the eigenvalues and left and right eigenvectors of a general matrix.

Syntax

lapack_int LAPACKE_sgeev
(
int
matrix_layout
,
char
jobvl
,
char
jobvr
,
lapack_int
n
,
float*
a
,
lapack_int
lda
,
float*
wr
,
float*
wi
,
float*
vl
,
lapack_int
ldvl
,
float*
vr
,
lapack_int
ldvr
);
lapack_int LAPACKE_dgeev
(
int
matrix_layout
,
char
jobvl
,
char
jobvr
,
lapack_int
n
,
double*
a
,
lapack_int
lda
,
double*
wr
,
double*
wi
,
double*
vl
,
lapack_int
ldvl
,
double*
vr
,
lapack_int
ldvr
);
lapack_int LAPACKE_cgeev
(
int
matrix_layout
,
char
jobvl
,
char
jobvr
,
lapack_int
n
,
lapack_complex_float*
a
,
lapack_int
lda
,
lapack_complex_float*
w
,
lapack_complex_float*
vl
,
lapack_int
ldvl
,
lapack_complex_float*
vr
,
lapack_int
ldvr
);
lapack_int LAPACKE_zgeev
(
int
matrix_layout
,
char
jobvl
,
char
jobvr
,
lapack_int
n
,
lapack_complex_double*
a
,
lapack_int
lda
,
lapack_complex_double*
w
,
lapack_complex_double*
vl
,
lapack_int
ldvl
,
lapack_complex_double*
vr
,
lapack_int
ldvr
);
Include Files
  • mkl.h
Description
The routine computes for an
n
-by-
n
real/complex nonsymmetric matrix
A
, the eigenvalues and, optionally, the left and/or right eigenvectors. The right eigenvector
v
of
A
satisfies
A
*
v
=
λ
*
v
where
λ
is its eigenvalue.
The left eigenvector
u
of
A
satisfies
u
H
*
A
=
λ
*
u
H
where
u
H
denotes the conjugate transpose of
u
. The computed eigenvectors are normalized to have Euclidean norm equal to 1 and largest component real.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
jobvl
Must be
'N'
or
'V'
.
If
jobvl
=
'N'
, then left eigenvectors of
A
are not computed.
If
jobvl
=
'V'
, then left eigenvectors of
A
are computed.
jobvr
Must be
'N'
or
'V'
.
If
jobvr
=
'N'
, then right eigenvectors of
A
are not computed.
If
jobvr
=
'V'
, then right eigenvectors of
A
are computed.
n
The order of the matrix
A
(
n
0
).
a
a
(size at least max(1,
lda
*
n
))
is an array containing the
n
-by-
n
matrix
A
.
lda
The leading dimension of the array
a
. Must be at least
max(1,
n
)
.
ldvl
,
ldvr
The leading dimensions of the output arrays
vl
and
vr
, respectively.
Constraints:
ldvl
1
;
ldvr
1
.
If
jobvl
=
'V'
,
ldvl
max(1,
n
)
;
If
jobvr
=
'V'
,
ldvr
max(1,
n
)
.
Output Parameters
a
On exit, this array is overwritten.
wr
,
wi
Arrays, size at least
max (1,
n
)
each.
Contain the real and imaginary parts, respectively, of the computed eigenvalues. Complex conjugate pairs of eigenvalues appear consecutively with the eigenvalue having positive imaginary part first.
w
Array, size at least
max(1,
n
)
.
Contains the computed eigenvalues.
vl
,
vr
Arrays:
vl
(size at least max(1,
ldvl
*
n
))
.
If
jobvl
=
'N'
,
vl
is not referenced.
For real flavors
:
If the
j
-th eigenvalue is real,
the
i
-th component of the
j
-th eigenvector
u
j
is stored in
vl
[(
i
- 1) + (
j
- 1)*
ldvl
]
for column major layout and in
vl
[(
i
- 1)*
ldvl
+ (
j
- 1)]
for row major layout.
.
If the
j
-th and (
j
+1)-st eigenvalues form a complex conjugate pair, then for
i = sqrt(-1)
,
the
k
-th component of the
j
-th eigenvector
u
j
is
vl
[(
k
- 1) + (
j
- 1)*
ldvl
] + i*
vl
[(
k
- 1) +
j
*
ldvl
] for column major layout and as
vl
[(
k
- 1)*
ldvl
+ (
j
- 1)] + i*
vl
[(
k
-1)*
ldvl
+
j
] for row major layout. Similarly, the
k
-th component of vector (
j
+1)
u
j
+ 1
is
vl
[(
k
- 1) + (
j
- 1)*
ldvl
] - i*
vl
[(
k
- 1) +
j
*
ldvl
] for column major layout and as
vl
[(
k
- 1)*
ldvl
+ (
j
- 1)] -i*
vl
[(
k
- 1)*
ldvl
+
j
] for row major layout.
.
For complex flavors
:
The
i
-th component of the
j
-th eigenvector
u
j
is stored in
vl
[(
i
- 1) + (
j
- 1)*
ldvl
]
for column major layout and in
vl
[(
i
- 1)*
ldvl
+(
j
- 1)]
for row major layout.
vr
(size at least max(1,
ldvr
*
n
))
.
If
jobvr
=
'N'
,
vr
is not referenced.
For real flavors
:
If the
j
-th eigenvalue is real, then
the
i
-th component of
j
-th eigenvector
v
j
is stored in
vr
[(
i
- 1) + (
j
- 1)*
ldvr
]
for column major layout and in
vr
[(
i
- 1)*
ldvr
+ (
j
- 1)]
for row major layout.
.
If the
j
-th and (
j
+1)-st eigenvalues form a complex conjugate pair, then for
i
= sqrt(-1)
,
the
k
-th component of the
j
-th eigenvector
v
j
is
vr
[(
k
- 1) + (
j
- 1)*
ldvr
] +i*
vr
[(
k
- 1) +
j
*
ldvr
] for column major layout and as
vr
[(
k
- 1)*
ldvr
+ (
j
- 1)] + i*
vr
[(
k
- 1)*
ldvr
+
j
] for row major layout. Similarly, the
k
-th component of vector
j
+ 1)
v
j
+ 1
is
vr
[(
k
- 1) + (
j
- 1)*
ldvr
] - i*
vr
[(
k
- 1) +
j
*
ldvr
] for column major layout and as
vr
[(
k
- 1)*
ldvr
+ (
j
- 1)] - i*
vr
[(
k
- 1)*
ldvr
+
j
] for row major layout
.
For complex flavors
:
The
i
-th component of the
j
-th eigenvector
v
j
is stored in
vr
[(
i
- 1) + (
j
- 1)*
ldvr
]
for column major layout and in
vr
[(
i
- 1)*
ldvr
+ (
j
- 1)]
for row major layout.
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 QR algorithm failed to compute all the eigenvalues, and no eigenvectors have been computed; elements
i
+1:
n
of
wr
and
wi
(for real flavors) or
w
(for complex flavors) contain those eigenvalues which have converged.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.