version 1.13, 2014/01/27 09:28:19
|
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 =========== |
* |
* |
* 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 DLAED4 + dependencies |
*> Download DLAED4 + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaed4.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaed4.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaed4.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaed4.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed4.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed4.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO ) |
* SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* INTEGER I, INFO, N |
* INTEGER I, INFO, N |
* DOUBLE PRECISION DLAM, RHO |
* DOUBLE PRECISION DLAM, RHO |
Line 27
|
Line 27
|
* .. Array Arguments .. |
* .. Array Arguments .. |
* DOUBLE PRECISION D( * ), DELTA( * ), Z( * ) |
* DOUBLE PRECISION D( * ), DELTA( * ), Z( * ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
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 127
|
Line 127
|
* 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 auxOTHERcomputational |
*> \ingroup auxOTHERcomputational |
* |
* |
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.4.2) -- |
* -- 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..-- |
* September 2012 |
|
* |
* |
* .. 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 |