Based on your comments, the most likely explanation is as follows.
In dggevx.f, there is the following paragraph:
* Optionally also, it computes a balancing transformation to improve
* the conditioning of the eigenvalues and eigenvectors (ILO, IHI,
* LSCALE, RSCALE, ABNRM, and BBNRM), reciprocal condition numbers for
* the eigenvalues (RCONDE), and reciprocal condition numbers for the
* right eigenvectors (RCONDV).
Such balancing transformations are aimed at improving the conditioning of the computation. If successful, this makes the results more accurate (not completely accurate, though).
In your case, since you see that some but not all of the outputs are different, and that balancing is actually performed, the most likely interpretation is that the results without balancing were already pretty accurate, so improving the conditioning of the system did not make them much more accurate than that. The outputs that did change are more accurate now than they used to be.
To check whether this interpretation is right, you'd need to say more about your matrices, their condition numbers, etc. Many of such special options are aimed at calculations involving poorly conditioned matrices, for which they can make a difference. If your matrices have small condition numbers, this won't have much of an effect.
'N'
all elements oflscale
andrscale
are equal to1.0
. When BALANC is set to'P'
or'B'
the elements oflscale
andrscale
are1.0, 2.0, 3.0, ..., 156.0
(array dimension is 156). When BALANC is set to'S'
, most of the elements oflscale
andrscale
are1.0
and some of them are10.0
or100.0
or10000.0
or1000000.0
or10000000.0
(multiples of 10.0). $\endgroup$'S'
, most of the Eigen vectors are exactly the same but some of them are different. $\endgroup$