Developer Reference for Intel® oneAPI Math Kernel Library for C
?ggbak
Forms the right or left eigenvectors of a generalized eigenvalue problem.
Syntax
lapack_int LAPACKE_sggbak ( intmatrix_layout , charjob , charside , lapack_intn , lapack_intilo , lapack_intihi , const float*lscale , const float*rscale , lapack_intm , float*v , lapack_intldv );
lapack_int LAPACKE_dggbak ( intmatrix_layout , charjob , charside , lapack_intn , lapack_intilo , lapack_intihi , const double*lscale , const double*rscale , lapack_intm , double*v , lapack_intldv );
lapack_int LAPACKE_cggbak ( intmatrix_layout , charjob , charside , lapack_intn , lapack_intilo , lapack_intihi , const float*lscale , const float*rscale , lapack_intm , lapack_complex_float*v , lapack_intldv );
lapack_int LAPACKE_zggbak ( intmatrix_layout , charjob , charside , lapack_intn , lapack_intilo , lapack_intihi , const double*lscale , const double*rscale , lapack_intm , lapack_complex_double*v , lapack_intldv );
Include Files
mkl.h
Description
sggbak dggbak cggbak zggbak ggbak
The routine forms the right or left eigenvectors of a real/complex generalized eigenvalue problem
A*x = λ*B*x
by backward transformation on the computed eigenvectors of the balanced pair of matrices output by ggbal .
Input Parameters
- matrix_layout
-
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
job
Specifies the type of backward transformation required. Must be ‘N’ , ‘P’ , ‘S’ , or ‘B’ .
If job = 'N' , then no operations are done; return. If job = 'P' , then do backward transformation for permutation only. If job = 'S' , then do backward transformation for scaling only. If job = 'B' , then do backward transformation for both permutation and scaling. This argument must be the same as the argument job supplied to ?ggbal .
side
Must be ‘L’ or ‘R’ .
If side = 'L' , then v contains left eigenvectors. If side = 'R' , then v contains right eigenvectors.
n
The number of rows of the matrix V ( n ≥ 0).
ilo , ihi
The integers ilo and ihi determined by ?gebal . Constraint:
If n > 0 , then 1 ≤ ilo ≤ ihi ≤ n ; if n = 0 , then ilo = 1 and ihi = 0 .
- lscale , rscale
-
REAL for single precision flavors DOUBLE PRECISION for double precision flavors. Arrays, size at least max(1, n ). The array lscale contains details of the permutations and/or scaling factors applied to the left side of A and B , as returned by ?ggbal . The array rscale contains details of the permutations and/or scaling factors applied to the right side of A and B , as returned by ?ggbal .
m
The number of columns of the matrix V
( m ≥ 0).
- v
-
REAL for sggbak DOUBLE PRECISION for dggbak COMPLEX for cggbak DOUBLE COMPLEX for zggbak .
Array v (size max(1, ldv * m ) for column major layout and max(1, ldv * n ) for row major layout) . Contains the matrix of right or left eigenvectors to be transformed, as returned by tgevc .
The second dimension of v must be at least max(1, m ).
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.
LAPACK 95 Interface Notes
There exist FORTRAN 77 and FORTRAN 95 interfaces for this routine. See the Intel® oneMKL Fortran Developer Reference for details.