?gebak
?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 *inv(, where
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
D
)P
is a permutation matrix and D
is a diagonal scaling matrix. This routine transforms the eigenvectors as follows: if ** is a left eigenvector of
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
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 parameterjobas supplied to?gebal.
- side
- Must be'L'or'R'.If, then left eigenvectors are transformed.side='L'If, then right eigenvectors are transformed.side='R'
- n
- The number of rows of the matrix of eigenvectors (n≥0).
- ilo,ihi
- The valuesiloandihi, as returned by?gebal. (If, thenn> 01;≤ilo≤ihi≤nif, thenn= 0andilo= 1.)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,contains the matrix of left or right eigenvectors to be transformed.ldv*n) for column major layout and max(1,ldv*m) for row major layout)
- ldv
- The leading dimension ofv; 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 , the execution is successful.
info
=0If , the
info
= -i
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