--- rpl/lapack/lapack/ztgex2.f 2010/08/06 15:32:50 1.4 +++ rpl/lapack/lapack/ztgex2.f 2010/08/07 13:18:09 1.5 @@ -1,10 +1,10 @@ SUBROUTINE ZTGEX2( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, $ LDZ, J1, INFO ) * -* -- LAPACK auxiliary routine (version 3.2) -- +* -- LAPACK auxiliary routine (version 3.2.2) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2006 +* June 2010 * * .. Scalar Arguments .. LOGICAL WANTQ, WANTZ @@ -118,8 +118,8 @@ COMPLEX*16 CZERO, CONE PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ), $ CONE = ( 1.0D+0, 0.0D+0 ) ) - DOUBLE PRECISION TEN - PARAMETER ( TEN = 10.0D+0 ) + DOUBLE PRECISION TWENTY + PARAMETER ( TWENTY = 2.0D+1 ) INTEGER LDST PARAMETER ( LDST = 2 ) LOGICAL WANDS @@ -173,7 +173,16 @@ CALL ZLACPY( 'Full', M, M, T, LDST, WORK( M*M+1 ), M ) CALL ZLASSQ( 2*M*M, WORK, 1, SCALE, SUM ) SA = SCALE*SQRT( SUM ) - THRESH = MAX( TEN*EPS*SA, SMLNUM ) +* +* THRES has been changed from +* THRESH = MAX( TEN*EPS*SA, SMLNUM ) +* to +* THRESH = MAX( TWENTY*EPS*SA, SMLNUM ) +* on 04/01/10. +* "Bug" reported by Ondra Kamenik, confirmed by Julie Langou, fixed by +* Jim Demmel and Guillaume Revy. See forum post 1783. +* + THRESH = MAX( TWENTY*EPS*SA, SMLNUM ) * * Compute unitary QL and RQ that swap 1-by-1 and 1-by-1 blocks * using Givens rotations and perform the swap tentatively.