Next: Deflating Subspaces and Condition Up: Generalized Nonsymmetric Eigenproblems Previous: Eigenvalues, Eigenvectors and Generalized Contents Index

### Balancing

The routine xGGBAL may be used to balance the matrix pair (A,B) prior to reduction to generalized Hessenberg form. Balancing involves two steps, either of which is optional:

1.
  First, xGGBAL attempts to permute (A,B) by an equivalence transformation to block upper triangular form:

  where P1 and P2 are permutation matrices and , , and are upper triangular. Thus the matrix pair is already in generalized Schur form outside the central diagonal blocks and in rows and columns ILO to IHI. Subsequent operations by xGGBAL, xGGHRD or xHGEQZ need only be applied to these rows and columns; therefore ILO and IHI are passed as arguments to xGGHRD and xHGEQZ. This can save a significant amount of work if ILO > 1 or IHI < n. If no suitable permutations can be found (as is very often the case), xGGBAL sets ILO = 1 and IHI = n, and is the whole of A and is the whole of B.

2.
  Secondly, xGGBAL applies diagonal equivalence transformations to to attempt to make the matrix norm smaller with respect to the eigenvalues and tries to reduce the inaccuracy contributed by roundoff [100]:

  This can improve the accuracy of later processing in some cases; see subsection 4.11.1.2.

If the matrix pair (A,B) was balanced by xGGBAL, then eigenvectors computed by subsequent operations are eigenvectors of the balanced matrix pair . xGGBAK must then be called to transform them back to eigenvectors of the original matrix pair (A,B). Note that these transformations can improve speed and accuracy of later processing in some cases; however, the diagonal transformation step can occasionally make the norm of the pencil larger and hence degrade the accuracy.

Next: Deflating Subspaces and Condition Up: Generalized Nonsymmetric Eigenproblems Previous: Eigenvalues, Eigenvectors and Generalized Contents Index