Dear Peng,
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.
Thanks again,
Rodney
On Apr 1, 2012, at 1:45 AM, Hong Bo Peng wrote:
Hi,
I read the LAPACK forum. There is one topic which is not followed for more
than 3 years. (bug0026)
http://www.netlib.org/lapack/Errata/index.html#_strong_span_class_red_bug0026_span_strong_problem_when_playing_with_dgeev_and_gfortran_optimization_flags
Firstly, the abstract is misleading. The problems occurs in DGGEV but not
DGEEV.
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 )
210 CONTINUE
*
IF( ILZ ) THEN
DO 220 J = 1, N
Z( J, ILAST ) = -Z( J, ILAST )
220 CONTINUE
END IF
END IF
*
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.
Best Regards!
Peng HongBo
_______________________________________________
Lapack mailing list
Lapack@Domain.Removed
http://lists.eecs.utk.edu/mailman/listinfo/lapack
|