@@ -260,7 +260,7 @@ SUBROUTINE CLAQR0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ,
260260* . CLAHQR because of insufficient subdiagonal scratch space.
261261* . (This is a hard limit.) ====
262262 INTEGER NTINY
263- PARAMETER ( NTINY = 11 )
263+ PARAMETER ( NTINY = 15 )
264264*
265265* ==== Exceptional deflation windows: try to cure rare
266266* . slow convergence by varying the size of the
@@ -355,22 +355,22 @@ SUBROUTINE CLAQR0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ,
355355 END IF
356356*
357357* ==== NWR = recommended deflation window size. At this
358- * . point, N .GT. NTINY = 11 , so there is enough
358+ * . point, N .GT. NTINY = 15 , so there is enough
359359* . subdiagonal workspace for NWR.GE.2 as required.
360360* . (In fact, there is enough subdiagonal space for
361- * . NWR.GE.3 .) ====
361+ * . NWR.GE.4 .) ====
362362*
363363 NWR = ILAENV( 13 , ' CLAQR0' , JBCMPZ, N, ILO, IHI, LWORK )
364364 NWR = MAX ( 2 , NWR )
365365 NWR = MIN ( IHI- ILO+1 , ( N-1 ) / 3 , NWR )
366366*
367367* ==== NSR = recommended number of simultaneous shifts.
368- * . At this point N .GT. NTINY = 11 , so there is at
368+ * . At this point N .GT. NTINY = 15 , so there is at
369369* . enough subdiagonal workspace for NSR to be even
370370* . and greater than or equal to two as required. ====
371371*
372372 NSR = ILAENV( 15 , ' CLAQR0' , JBCMPZ, N, ILO, IHI, LWORK )
373- NSR = MIN ( NSR, ( N+6 ) / 9 , IHI- ILO )
373+ NSR = MIN ( NSR, ( N-3 ) / 6 , IHI- ILO )
374374 NSR = MAX ( 2 , NSR- MOD ( NSR, 2 ) )
375375*
376376* ==== Estimate optimal workspace ====
@@ -418,7 +418,7 @@ SUBROUTINE CLAQR0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ,
418418* ==== NSMAX = the Largest number of simultaneous shifts
419419* . for which there is sufficient workspace. ====
420420*
421- NSMAX = MIN ( ( N+6 ) / 9 , 2 * LWORK / 3 )
421+ NSMAX = MIN ( ( N-3 ) / 6 , 2 * LWORK / 3 )
422422 NSMAX = NSMAX - MOD ( NSMAX, 2 )
423423*
424424* ==== NDFL: an iteration count restarted at deflation. ====
@@ -558,7 +558,7 @@ SUBROUTINE CLAQR0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ,
558558*
559559* ==== Got NS/2 or fewer shifts? Use CLAQR4 or
560560* . CLAHQR on a trailing principal submatrix to
561- * . get more. (Since NS.LE.NSMAX.LE.(N+6)/9 ,
561+ * . get more. (Since NS.LE.NSMAX.LE.(N-3)/6 ,
562562* . there is enough space below the subdiagonal
563563* . to fit an NS-by-NS scratch array.) ====
564564*
@@ -659,7 +659,7 @@ SUBROUTINE CLAQR0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ,
659659* . (NVE-by-KDU) vertical work WV arrow along
660660* . the left-hand-edge. ====
661661*
662- KDU = 3 * NS - 3
662+ KDU = 2 * NS
663663 KU = N - KDU + 1
664664 KWH = KDU + 1
665665 NHO = ( N- KDU+1-4 ) - ( KDU+1 ) + 1
0 commit comments