**** Correct bug 125 ****
authorlangou <langou@users.noreply.github.com>
Wed, 25 Mar 2015 22:45:19 +0000 (22:45 +0000)
committerlangou <langou@users.noreply.github.com>
Wed, 25 Mar 2015 22:45:19 +0000 (22:45 +0000)
commit8d99316e83b648c4db688056578c6a32fe55d1ce
treecfc77bab339371b89bf4a098de7d58d5d68119d2
parent0255f6d7bfab86de5b0b3a280673dc774b0bb488
**** Correct bug 125 ****

Change the maximum number of QR iterations (ITMAX) for xLAHQR from ITMAX=30 to
ITMAX = 30 * MAX( 10, NH ).

Bug reported by Yoshihide Okimi on July 16, 2014
https://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=4566
and, independently, by Marco Caliari (Università di Verona) on February 11,
2015.

Involved in bug fix: Yoshihide Okimi, Marco Caliari (Università di Verona),
Meiyue Shao (LBL), Julien Langou, and Daniel Kressner (EPFL).

** Bug **

xLAHQR v3.5 does not converge on some matrices while xLAHQR v2 converges

** Note **

xLAHQR v2 is available through ARPACK so xLAHQR v2 is still in "wide" use

** Description **

xLAQR0 v3.5 and xLAQR4 v3.5 have ITMAX set to:
    ITMAX = MAX( 30, 2*KEXSH )*MAX( 10, ( IHI-ILO+1 ) )

xLAHQR v2 has ITMAX set to:
    ITMAX = 30 * NH

xLAHQR v3.5 has ITMAX set to:
    ITMAX = 30

Yoshihide Okimi reports that, in his application, (1) xLAHQR v3.5 does not
converge, (2) xLAHQR v2 converges, (3) changing ITMAX to 30*NH in xLAHQR v3.5
enables convergence.

Marco Caliari reports that, in his application, using xLAHQR v2.0 converges,
while xLAHQR v3.5 does not converge.

** Bug fix **

Set ITMAX in xLAHQR to
    ITMAX = 30 * MAX( 10, NH )

Email from Meiyue: I feel that setting ITMAX proportional to NH makes sense.
Perhaps we can change ITMAX to ITMAX*MAX( 10, NH ) so that it is also safe for
ill-conditioned tiny matrices.
SRC/clahqr.f
SRC/dlahqr.f
SRC/slahqr.f
SRC/zlahqr.f