Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?ggbal
Balances a pair of general real or complex matrices.
Syntax
call sggbal ( job , n , a , lda , b , ldb , ilo , ihi , lscale , rscale , work , info )
call dggbal ( job , n , a , lda , b , ldb , ilo , ihi , lscale , rscale , work , info )
call cggbal ( job , n , a , lda , b , ldb , ilo , ihi , lscale , rscale , work , info )
call zggbal ( job , n , a , lda , b , ldb , ilo , ihi , lscale , rscale , work , info )
call ggbal ( a , b [ , ilo ] [ , ihi ] [ , lscale ] [ , rscale ] [ , job ] [ , info ] )
Include Files
mkl.fi , mkl_lapack.f90
Description
sggbal dggbal cggbal zggbal ggbal
The routine balances a pair of general real/complex matrices ( A , B ). This involves, first, permuting A and B by similarity transformations to isolate eigenvalues in the first 1 to ilo -1 and last ihi +1 to n elements on the diagonal;and second, applying a diagonal similarity transformation to rows and columns ilo to ihi to make the rows and columns as close in norm as possible. Both steps are optional. Balancing may reduce the 1-norm of the matrices, and improve the accuracy of the computed eigenvalues and/or eigenvectors in the generalized eigenvalue problem A*x = λ*B*x .
Input Parameters
job
CHARACTER*1 . Specifies the operations to be performed on A and B . Must be ‘N’ or ‘P’ or ‘S’ or ‘B’ .
If job = 'N ' , then no operations are done; simply set ilo =1 , ihi=n , lscale(i)[i] =1.0 and rscale(i)[i]=1.0 for
i = 1,..., n . i = 0,..., n - 1 . If job = 'P' , then permute only. If job = 'S' , then scale only. If job = 'B' , then both permute and scale.
n
INTEGER . The order of the matrices A and B ( n ≥ 0).
- a , b
-
REAL for sggbal DOUBLE PRECISION for dggbal COMPLEX for cggbal DOUBLE COMPLEX for zggbal . Arrays:
a ( lda ,*) contains the matrix A . The second dimension of a must be at least max(1, n ).
b ( ldb ,*) contains the matrix B . The second dimension of b must be at least max(1, n ).
If job = 'N' , a and b are not referenced.
lda
INTEGER . The leading dimension of a ; at least max(1, n ).
ldb
INTEGER . The leading dimension of b ; at least max(1, n ).
- work
-
REAL for single precision flavors DOUBLE PRECISION for double precision flavors. Workspace array, size at least max(1, 6n) when job = 'S' or 'B' , or at least 1 when job = 'N' or 'P' .
Output Parameters
- a , b
-
Overwritten by the balanced matrices A and B , respectively.
ilo , ihi
INTEGER . ilo and ihi are set to integers such that on exit Ai, j = 0 and Bi, j = 0 if i>j and j=1,...,ilo-1 or i=ihi+1,..., n .
If job = 'N' or ‘S’ , then ilo = 1 and ihi = n .
- lscale , rscale
-
REAL for single precision flavors DOUBLE PRECISION for double precision flavors. Arrays, size at least max(1, n ). lscale contains details of the permutations and scaling factors applied to the left side of A and B . If Pj is the index of the row interchanged with row j , and Dj is the scaling factor applied to row j , then
lscale(j) [ j - 1] :code:` = ` Pj , for j = 1,..., ilo-1
= D_{j} , for j = ilo,...,ihi= P_{j} , for j = ihi+1,..., n . rscale contains details of the permutations and scaling factors applied to the right side of A and B . If Pj is the index of the column interchanged with column j , and Dj is the scaling factor applied to column j , then
rscale(j) [ j - 1] :code:` = ` Pj , for j = 1,..., ilo-1
= D_{j} , for j = ilo,...,ihi= P_{j} , for j = ihi+1,..., n The order in which the interchanges are made is n to ihi +1, then 1 to ilo -1.
info
INTEGER .
If info = 0 , the execution is successful.
If info = -i , the i -th parameter had an illegal value.
Return Values
No return value, info is an Output Parameter.
LAPACK 95 Interface Notes
Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or restorable arguments, see LAPACK 95 Interface Conventions .
Specific details for the routine ggbal interface are the following:
a
Holds the matrix A of size ( n,n ).
b
Holds the matrix B of size ( n,n ).
lscale
Holds the vector of length ( n ).
rscale
Holds the vector of length ( n ).
ilo
Default value for this argument is ilo = 1 .
ihi
Default value for this argument is ihi = n .
job
Must be ‘B’ , ‘S’ , ‘P’ , or ‘N’ . The default value is ‘B’ .