version 1.10, 2011/11/21 22:19:35
|
version 1.18, 2016/08/27 15:34:31
|
Line 1
|
Line 1
|
*> \brief \b DLASQ3 |
*> \brief \b DLASQ3 checks for deflation, computes a shift and calls dqds. Used by sbdsqr. |
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
Line 58
|
Line 58
|
*> Last index. |
*> Last index. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] Z |
*> \param[in,out] Z |
*> \verbatim |
*> \verbatim |
*> Z is DOUBLE PRECISION array, dimension ( 4*N ) |
*> Z is DOUBLE PRECISION array, dimension ( 4*N0 ) |
*> Z holds the qd array. |
*> Z holds the qd array. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
Line 97
|
Line 97
|
*> Maximum value of q. |
*> Maximum value of q. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] NFAIL |
*> \param[in,out] NFAIL |
*> \verbatim |
*> \verbatim |
*> NFAIL is INTEGER |
*> NFAIL is INTEGER |
*> Number of times shift was too big. |
*> Increment NFAIL by 1 each time the shift was too big. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] ITER |
*> \param[in,out] ITER |
*> \verbatim |
*> \verbatim |
*> ITER is INTEGER |
*> ITER is INTEGER |
*> Number of iterations. |
*> Increment ITER by 1 for each iteration. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] NDIV |
*> \param[in,out] NDIV |
*> \verbatim |
*> \verbatim |
*> NDIV is INTEGER |
*> NDIV is INTEGER |
*> Number of divisions. |
*> Increment NDIV by 1 for each division. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] IEEE |
*> \param[in] IEEE |
Line 173
|
Line 173
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date November 2011 |
*> \date June 2016 |
* |
* |
*> \ingroup auxOTHERcomputational |
*> \ingroup auxOTHERcomputational |
* |
* |
Line 182
|
Line 182
|
$ ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, |
$ ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1, |
$ DN2, G, TAU ) |
$ DN2, G, TAU ) |
* |
* |
* -- LAPACK computational routine (version 3.4.0) -- |
* -- LAPACK computational routine (version 3.6.1) -- |
* -- 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..-- |
* November 2011 |
* June 2016 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
LOGICAL IEEE |
LOGICAL IEEE |
Line 267
|
Line 267
|
Z( NN-3 ) = Z( NN-7 ) |
Z( NN-3 ) = Z( NN-7 ) |
Z( NN-7 ) = S |
Z( NN-7 ) = S |
END IF |
END IF |
IF( Z( NN-5 ).GT.Z( NN-3 )*TOL2 ) THEN |
T = HALF*( ( Z( NN-7 )-Z( NN-3 ) )+Z( NN-5 ) ) |
T = HALF*( ( Z( NN-7 )-Z( NN-3 ) )+Z( NN-5 ) ) |
IF( Z( NN-5 ).GT.Z( NN-3 )*TOL2.AND.T.NE.ZERO ) THEN |
S = Z( NN-3 )*( Z( NN-5 ) / T ) |
S = Z( NN-3 )*( Z( NN-5 ) / T ) |
IF( S.LE.T ) THEN |
IF( S.LE.T ) THEN |
S = Z( NN-3 )*( Z( NN-5 ) / |
S = Z( NN-3 )*( Z( NN-5 ) / |
Line 331
|
Line 331
|
* |
* |
70 CONTINUE |
70 CONTINUE |
* |
* |
CALL DLASQ5( I0, N0, Z, PP, TAU, DMIN, DMIN1, DMIN2, DN, |
CALL DLASQ5( I0, N0, Z, PP, TAU, SIGMA, DMIN, DMIN1, DMIN2, DN, |
$ DN1, DN2, IEEE ) |
$ DN1, DN2, IEEE, EPS ) |
* |
* |
NDIV = NDIV + ( N0-I0+2 ) |
NDIV = NDIV + ( N0-I0+2 ) |
ITER = ITER + 1 |
ITER = ITER + 1 |
* |
* |
* Check status. |
* Check status. |
* |
* |
IF( DMIN.GE.ZERO .AND. DMIN1.GT.ZERO ) THEN |
IF( DMIN.GE.ZERO .AND. DMIN1.GE.ZERO ) THEN |
* |
* |
* Success. |
* Success. |
* |
* |