--- rpl/lapack/lapack/dlarre.f 2012/08/22 09:48:19 1.13
+++ rpl/lapack/lapack/dlarre.f 2023/08/07 08:38:57 1.24
@@ -1,19 +1,19 @@
-*> \brief \b DLARRE
+*> \brief \b DLARRE given the tridiagonal matrix T, sets small off-diagonal elements to zero and for each unreduced block Ti, finds base representations and eigenvalues.
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
*> \htmlonly
-*> Download DLARRE + dependencies
-*>
-*> [TGZ]
-*>
-*> [ZIP]
-*>
+*> Download DLARRE + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
*> [TXT]
-*> \endhtmlonly
+*> \endhtmlonly
*
* Definition:
* ===========
@@ -22,7 +22,7 @@
* RTOL1, RTOL2, SPLTOL, NSPLIT, ISPLIT, M,
* W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN,
* WORK, IWORK, INFO )
-*
+*
* .. Scalar Arguments ..
* CHARACTER RANGE
* INTEGER IL, INFO, IU, M, N, NSPLIT
@@ -34,7 +34,7 @@
* DOUBLE PRECISION D( * ), E( * ), E2( * ), GERS( * ),
* $ W( * ),WERR( * ), WGAP( * ), WORK( * )
* ..
-*
+*
*
*> \par Purpose:
* =============
@@ -78,12 +78,17 @@
*> \param[in,out] VL
*> \verbatim
*> VL is DOUBLE PRECISION
+*> If RANGE='V', the lower bound for the eigenvalues.
+*> Eigenvalues less than or equal to VL, or greater than VU,
+*> will not be returned. VL < VU.
+*> If RANGE='I' or ='A', DLARRE computes bounds on the desired
+*> part of the spectrum.
*> \endverbatim
*>
*> \param[in,out] VU
*> \verbatim
*> VU is DOUBLE PRECISION
-*> If RANGE='V', the lower and upper bounds for the eigenvalues.
+*> If RANGE='V', the upper bound for the eigenvalues.
*> Eigenvalues less than or equal to VL, or greater than VU,
*> will not be returned. VL < VU.
*> If RANGE='I' or ='A', DLARRE computes bounds on the desired
@@ -93,13 +98,16 @@
*> \param[in] IL
*> \verbatim
*> IL is INTEGER
+*> If RANGE='I', the index of the
+*> smallest eigenvalue to be returned.
+*> 1 <= IL <= IU <= N.
*> \endverbatim
*>
*> \param[in] IU
*> \verbatim
*> IU is INTEGER
-*> If RANGE='I', the indices (in ascending order) of the
-*> smallest and largest eigenvalues to be returned.
+*> If RANGE='I', the index of the
+*> largest eigenvalue to be returned.
*> 1 <= IL <= IU <= N.
*> \endverbatim
*>
@@ -142,7 +150,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] SPLTOL
@@ -244,7 +252,7 @@
*> \verbatim
*> INFO is INTEGER
*> = 0: successful exit
-*> > 0: A problem occured in DLARRE.
+*> > 0: A problem occurred in DLARRE.
*> < 0: One of the called subroutines signaled an internal problem.
*> Needs inspection of the corresponding parameter IINFO
*> for further information.
@@ -263,14 +271,12 @@
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
-*> \date November 2011
-*
-*> \ingroup auxOTHERauxiliary
+*> \ingroup OTHERauxiliary
*
*> \par Further Details:
* =====================
@@ -297,10 +303,9 @@
$ W, WERR, WGAP, IBLOCK, INDEXW, GERS, PIVMIN,
$ WORK, IWORK, INFO )
*
-* -- LAPACK auxiliary routine (version 3.4.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..--
-* November 2011
*
* .. Scalar Arguments ..
CHARACTER RANGE
@@ -352,7 +357,7 @@
* ..
* .. External Subroutines ..
EXTERNAL DCOPY, DLARNV, DLARRA, DLARRB, DLARRC, DLARRD,
- $ DLASQ2
+ $ DLASQ2, DLARRK
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN
@@ -362,7 +367,12 @@
*
INFO = 0
-
+*
+* Quick return if possible
+*
+ IF( N.LE.0 ) THEN
+ RETURN
+ END IF
*
* Decode RANGE
*
@@ -886,6 +896,6 @@
RETURN
*
-* end of DLARRE
+* End of DLARRE
*
END