version 1.15, 2017/06/17 10:53:53
|
version 1.19, 2023/08/07 08:38:53
|
Line 1
|
Line 1
|
*> \brief \b DLAED4 used by sstedc. Finds a single root of the secular equation. |
*> \brief \b DLAED4 used by DSTEDC. Finds a single root of the secular equation. |
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
Line 82
|
Line 82
|
*> \param[out] DELTA |
*> \param[out] DELTA |
*> \verbatim |
*> \verbatim |
*> DELTA is DOUBLE PRECISION array, dimension (N) |
*> DELTA is DOUBLE PRECISION array, dimension (N) |
*> If N .GT. 2, DELTA contains (D(j) - lambda_I) in its j-th |
*> If N > 2, DELTA contains (D(j) - lambda_I) in its j-th |
*> component. If N = 1, then DELTA(1) = 1. If N = 2, see DLAED5 |
*> component. If N = 1, then DELTA(1) = 1. If N = 2, see DLAED5 |
*> for detail. The vector DELTA contains the information necessary |
*> for detail. The vector DELTA contains the information necessary |
*> to construct the eigenvectors by DLAED3 and DLAED9. |
*> to construct the eigenvectors by DLAED3 and DLAED9. |
Line 132
|
Line 132
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date December 2016 |
|
* |
|
*> \ingroup auxOTHERcomputational |
*> \ingroup auxOTHERcomputational |
* |
* |
*> \par Contributors: |
*> \par Contributors: |
Line 145
|
Line 143
|
* ===================================================================== |
* ===================================================================== |
SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO ) |
SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.7.0) -- |
* -- LAPACK computational 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..-- |
* December 2016 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
INTEGER I, INFO, N |
INTEGER I, INFO, N |
Line 331
|
Line 328
|
IF( C.LT.ZERO ) |
IF( C.LT.ZERO ) |
$ C = ABS( C ) |
$ C = ABS( C ) |
IF( C.EQ.ZERO ) THEN |
IF( C.EQ.ZERO ) THEN |
* ETA = B/A |
* ETA = B/A |
* ETA = RHO - TAU |
* ETA = RHO - TAU |
ETA = DLTUB - TAU |
* ETA = DLTUB - TAU |
|
* |
|
* Update proposed by Li, Ren-Cang: |
|
ETA = -W / ( DPSI+DPHI ) |
ELSE IF( A.GE.ZERO ) THEN |
ELSE IF( A.GE.ZERO ) THEN |
ETA = ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) |
ETA = ( A+SQRT( ABS( A*A-FOUR*B*C ) ) ) / ( TWO*C ) |
ELSE |
ELSE |