--- rpl/lapack/lapack/dlarrv.f 2017/06/17 10:53:56 1.19 +++ rpl/lapack/lapack/dlarrv.f 2023/08/07 08:38:58 1.24 @@ -68,8 +68,14 @@ *> \verbatim *> VU is DOUBLE PRECISION *> Upper bound of the interval that contains the desired -*> eigenvalues. VL < VU. Needed to compute gaps on the left or right -*> end of the extremal eigenvalues in the desired RANGE. +*> eigenvalues. VL < VU. +*> Note: VU is currently not used by this implementation of DLARRV, VU is +*> passed to DLARRV because it could be used compute gaps on the right end +*> of the extremal eigenvalues. However, with not much initial accuracy in +*> LAMBDA and VU, the formula can lead to an overestimation of the right gap +*> and thus to inadequately early RQI 'convergence'. This is currently +*> prevented this by forcing a small right gap. And so it turns out that VU +*> is currently not used by this implementation of DLARRV. *> \endverbatim *> *> \param[in,out] D @@ -143,7 +149,7 @@ *> RTOL2 is DOUBLE PRECISION *> Parameters for bisection. *> An interval [LEFT,RIGHT] has converged if -*> RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) ) +*> RIGHT-LEFT < MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) ) *> \endverbatim *> *> \param[in,out] W @@ -266,8 +272,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date June 2016 -* *> \ingroup doubleOTHERauxiliary * *> \par Contributors: @@ -286,10 +290,9 @@ $ IBLOCK, INDEXW, GERS, Z, LDZ, ISUPPZ, $ WORK, IWORK, INFO ) * -* -- LAPACK auxiliary routine (version 3.7.0) -- +* -- LAPACK auxiliary routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* June 2016 * * .. Scalar Arguments .. INTEGER DOL, DOU, INFO, LDZ, M, N @@ -344,6 +347,13 @@ * .. INFO = 0 +* +* Quick return if possible +* + IF( (N.LE.0).OR.(M.LE.0) ) THEN + RETURN + END IF +* * The first N entries of WORK are reserved for the eigenvalues INDLD = N+1 INDLLD= 2*N+1