version 1.14, 2016/08/27 15:34:30
|
version 1.20, 2023/08/07 08:38:57
|
Line 2
|
Line 2
|
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
* Online html documentation available at |
* Online html documentation available at |
* http://www.netlib.org/lapack/explore-html/ |
* http://www.netlib.org/lapack/explore-html/ |
* |
* |
*> \htmlonly |
*> \htmlonly |
*> Download DLARRB + dependencies |
*> Download DLARRB + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlarrb.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlarrb.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlarrb.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlarrb.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrb.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarrb.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
Line 21
|
Line 21
|
* SUBROUTINE DLARRB( N, D, LLD, IFIRST, ILAST, RTOL1, |
* SUBROUTINE DLARRB( N, D, LLD, IFIRST, ILAST, RTOL1, |
* RTOL2, OFFSET, W, WGAP, WERR, WORK, IWORK, |
* RTOL2, OFFSET, W, WGAP, WERR, WORK, IWORK, |
* PIVMIN, SPDIAM, TWIST, INFO ) |
* PIVMIN, SPDIAM, TWIST, INFO ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* INTEGER IFIRST, ILAST, INFO, N, OFFSET, TWIST |
* INTEGER IFIRST, ILAST, INFO, N, OFFSET, TWIST |
* DOUBLE PRECISION PIVMIN, RTOL1, RTOL2, SPDIAM |
* DOUBLE PRECISION PIVMIN, RTOL1, RTOL2, SPDIAM |
Line 31
|
Line 31
|
* DOUBLE PRECISION D( * ), LLD( * ), W( * ), |
* DOUBLE PRECISION D( * ), LLD( * ), W( * ), |
* $ WERR( * ), WGAP( * ), WORK( * ) |
* $ WERR( * ), WGAP( * ), WORK( * ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 91
|
Line 91
|
*> RTOL2 is DOUBLE PRECISION |
*> RTOL2 is DOUBLE PRECISION |
*> Tolerance for the convergence of the bisection intervals. |
*> Tolerance for the convergence of the bisection intervals. |
*> An interval [LEFT,RIGHT] has converged if |
*> 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|) ) |
*> where GAP is the (estimated) distance to the nearest |
*> where GAP is the (estimated) distance to the nearest |
*> eigenvalue. |
*> eigenvalue. |
*> \endverbatim |
*> \endverbatim |
Line 107
|
Line 107
|
*> \verbatim |
*> \verbatim |
*> W is DOUBLE PRECISION array, dimension (N) |
*> W is DOUBLE PRECISION array, dimension (N) |
*> On input, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are |
*> On input, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are |
*> estimates of the eigenvalues of L D L^T indexed IFIRST throug |
*> estimates of the eigenvalues of L D L^T indexed IFIRST through |
*> ILAST. |
*> ILAST. |
*> On output, these estimates are refined. |
*> On output, these estimates are refined. |
*> \endverbatim |
*> \endverbatim |
Line 117
|
Line 117
|
*> WGAP is DOUBLE PRECISION array, dimension (N-1) |
*> WGAP is DOUBLE PRECISION array, dimension (N-1) |
*> On input, the (estimated) gaps between consecutive |
*> On input, the (estimated) gaps between consecutive |
*> eigenvalues of L D L^T, i.e., WGAP(I-OFFSET) is the gap between |
*> eigenvalues of L D L^T, i.e., WGAP(I-OFFSET) is the gap between |
*> eigenvalues I and I+1. Note that if IFIRST.EQ.ILAST |
*> eigenvalues I and I+1. Note that if IFIRST = ILAST |
*> then WGAP(IFIRST-OFFSET) must be set to ZERO. |
*> then WGAP(IFIRST-OFFSET) must be set to ZERO. |
*> On output, these gaps are refined. |
*> On output, these gaps are refined. |
*> \endverbatim |
*> \endverbatim |
Line 173
|
Line 173
|
* Authors: |
* Authors: |
* ======== |
* ======== |
* |
* |
*> \author Univ. of Tennessee |
*> \author Univ. of Tennessee |
*> \author Univ. of California Berkeley |
*> \author Univ. of California Berkeley |
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
|
*> \date September 2012 |
|
* |
* |
*> \ingroup auxOTHERauxiliary |
*> \ingroup OTHERauxiliary |
* |
* |
*> \par Contributors: |
*> \par Contributors: |
* ================== |
* ================== |
Line 196
|
Line 194
|
$ RTOL2, OFFSET, W, WGAP, WERR, WORK, IWORK, |
$ RTOL2, OFFSET, W, WGAP, WERR, WORK, IWORK, |
$ PIVMIN, SPDIAM, TWIST, INFO ) |
$ PIVMIN, SPDIAM, TWIST, INFO ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.4.2) -- |
* -- LAPACK auxiliary routine -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* September 2012 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
INTEGER IFIRST, ILAST, INFO, N, OFFSET, TWIST |
INTEGER IFIRST, ILAST, INFO, N, OFFSET, TWIST |
Line 237
|
Line 234
|
* |
* |
INFO = 0 |
INFO = 0 |
* |
* |
|
* Quick return if possible |
|
* |
|
IF( N.LE.0 ) THEN |
|
RETURN |
|
END IF |
|
* |
MAXITR = INT( ( LOG( SPDIAM+PIVMIN )-LOG( PIVMIN ) ) / |
MAXITR = INT( ( LOG( SPDIAM+PIVMIN )-LOG( PIVMIN ) ) / |
$ LOG( TWO ) ) + 2 |
$ LOG( TWO ) ) + 2 |
MNWDTH = TWO * PIVMIN |
MNWDTH = TWO * PIVMIN |