Thank you for finding this fix! Your solution does in fact solve the problem
in bug0026. The new code is available now in the LAPACK svn, and will be in
the next release, 3.4.1, due out shortly.
On Apr 1, 2012, at 1:45 AM, Hong Bo Peng wrote:
I read the LAPACK forum. There is one topic which is not followed for more
than 3 years. (bug0026)
Firstly, the abstract is misleading. The problems occurs in DGGEV but not
When I run a simple test using the same input data, LAPACK 3.4.0 failed too.
Then I print out some intermediate output in the related subroutine. There
may be one issue in DHGEQZ. At line 912-923 (for 2x2 block), it multiply -1
to the last column of H and T. But I think we should also update B22 too. B22
is still used below with the output of DLAG2(H, T). If it doesn't update B22,
it may generate zero B1R/B1I/B2R/B2I at line 1019-1026.
* If B22 is negative, negate column ILAST
IF( B22.LT.ZERO ) THEN
DO 210 J = IFRSTM, ILAST
H( J, ILAST ) = -H( J, ILAST )
T( J, ILAST ) = -T( J, ILAST )
IF( ILZ ) THEN
DO 220 J = 1, N
Z( J, ILAST ) = -Z( J, ILAST )
Once I add B22 = -B22 in the above code, I can got correct output for those 3
omega. My LAPACK 3.4.0 is compiled by gfortran with -O3 on Fedora16_x86.
Lapack mailing list