Apply Reference-LAPACK PR 477 for convergence problems in CHGEQZ/ZHGEQZtags/v0.3.14^2
| @@ -743,8 +743,14 @@ | |||||
| * | * | ||||
| * Exceptional shift. Chosen for no particularly good reason. | * Exceptional shift. Chosen for no particularly good reason. | ||||
| * | * | ||||
| ESHIFT = ESHIFT + (ASCALE*H(ILAST,ILAST-1))/ | |||||
| $ (BSCALE*T(ILAST-1,ILAST-1)) | |||||
| IF( ( IITER / 20 )*20.EQ.IITER .AND. | |||||
| $ BSCALE*ABS1(T( ILAST, ILAST )).GT.SAFMIN ) THEN | |||||
| ESHIFT = ESHIFT + ( ASCALE*H( ILAST, | |||||
| $ ILAST ) )/( BSCALE*T( ILAST, ILAST ) ) | |||||
| ELSE | |||||
| ESHIFT = ESHIFT + ( ASCALE*H( ILAST, | |||||
| $ ILAST-1 ) )/( BSCALE*T( ILAST-1, ILAST-1 ) ) | |||||
| END IF | |||||
| SHIFT = ESHIFT | SHIFT = ESHIFT | ||||
| END IF | END IF | ||||
| * | * | ||||
| @@ -744,8 +744,14 @@ | |||||
| * | * | ||||
| * Exceptional shift. Chosen for no particularly good reason. | * Exceptional shift. Chosen for no particularly good reason. | ||||
| * | * | ||||
| ESHIFT = ESHIFT + (ASCALE*H(ILAST,ILAST-1))/ | |||||
| $ (BSCALE*T(ILAST-1,ILAST-1)) | |||||
| IF( ( IITER / 20 )*20.EQ.IITER .AND. | |||||
| $ BSCALE*ABS1(T( ILAST, ILAST )).GT.SAFMIN ) THEN | |||||
| ESHIFT = ESHIFT + ( ASCALE*H( ILAST, | |||||
| $ ILAST ) )/( BSCALE*T( ILAST, ILAST ) ) | |||||
| ELSE | |||||
| ESHIFT = ESHIFT + ( ASCALE*H( ILAST, | |||||
| $ ILAST-1 ) )/( BSCALE*T( ILAST-1, ILAST-1 ) ) | |||||
| END IF | |||||
| SHIFT = ESHIFT | SHIFT = ESHIFT | ||||
| END IF | END IF | ||||
| * | * | ||||