Developer Reference

Contents

?gebak

Transforms eigenvectors of a balanced matrix to those of the original nonsymmetric matrix.

Syntax

lapack_int LAPACKE_sgebak
(
int
matrix_layout
,
char
job
,
char
side
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
const float*
scale
,
lapack_int
m
,
float*
v
,
lapack_int
ldv
);
lapack_int LAPACKE_dgebak
(
int
matrix_layout
,
char
job
,
char
side
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
const double*
scale
,
lapack_int
m
,
double*
v
,
lapack_int
ldv
);
lapack_int LAPACKE_cgebak
(
int
matrix_layout
,
char
job
,
char
side
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
const float*
scale
,
lapack_int
m
,
lapack_complex_float*
v
,
lapack_int
ldv
);
lapack_int LAPACKE_zgebak
(
int
matrix_layout
,
char
job
,
char
side
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
const double*
scale
,
lapack_int
m
,
lapack_complex_double*
v
,
lapack_int
ldv
);
Include Files
  • mkl.h
Description
The routine is intended to be used after a matrix
A
has been balanced by a call to
?gebal
, and eigenvectors of the balanced matrix
A''
22
have subsequently been computed. For a description of balancing, see gebal. The balanced matrix
A''
is obtained as
A''
=
D*P*A*P
T
*inv(
D
)
, where
P
is a permutation matrix and
D
is a diagonal scaling matrix. This routine transforms the eigenvectors as follows:
if
x
is a right eigenvector of
A''
, then
P
T
*
inv(
D
)*
x
is a right eigenvector of
A
; if
y
is a left eigenvector of
A''
, then
P
T
*
D
*
y
is a left eigenvector of
A
.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
job
Must be
'N'
or
'P'
or
'S'
or
'B'
. The same parameter
job
as supplied to
?gebal
.
side
Must be
'L'
or
'R'
.
If
side
=
'L'
, then left eigenvectors are transformed.
If
side
=
'R'
, then right eigenvectors are transformed.
n
The number of rows of the matrix of eigenvectors
(
n
0).
ilo
,
ihi
The values
ilo
and
ihi
, as returned by
?gebal
. (If
n
> 0
, then
1
ilo
ihi
n
;
if
n
= 0
, then
ilo
= 1
and
ihi
= 0
.)
scale
Array, size at least max(1,
n
).
Contains details of the permutations and/or the scaling factors used to balance the original general matrix, as returned by
?gebal
.
m
The number of columns of the matrix of eigenvectors
(
m
0
).
v
Arrays:
v
(size max(1,
ldv
*
n
) for column major layout and max(1,
ldv
*
m
) for row major layout)
contains the matrix of left or right eigenvectors to be transformed.
ldv
The leading dimension of
v
; at least max(1,
n
)
for column major layout and at least max(1,
m
) for row major layout
.
Output Parameters
v
Overwritten by the transformed eigenvectors.
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.
Application Notes
The errors in this routine are negligible.
The approximate number of floating-point operations is approximately proportional to
m
*
n
.

Product and Performance Information

1

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