version 1.12, 2014/01/27 09:28:42
|
version 1.19, 2023/08/07 08:39:37
|
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 ZSTEDC + dependencies |
*> Download ZSTEDC + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zstedc.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zstedc.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zstedc.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zstedc.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zstedc.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zstedc.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* SUBROUTINE ZSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, RWORK, |
* SUBROUTINE ZSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, RWORK, |
* LRWORK, IWORK, LIWORK, INFO ) |
* LRWORK, IWORK, LIWORK, INFO ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* CHARACTER COMPZ |
* CHARACTER COMPZ |
* INTEGER INFO, LDZ, LIWORK, LRWORK, LWORK, N |
* INTEGER INFO, LDZ, LIWORK, LRWORK, LWORK, N |
Line 30
|
Line 30
|
* DOUBLE PRECISION D( * ), E( * ), RWORK( * ) |
* DOUBLE PRECISION D( * ), E( * ), RWORK( * ) |
* COMPLEX*16 WORK( * ), Z( LDZ, * ) |
* COMPLEX*16 WORK( * ), Z( LDZ, * ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 128
|
Line 128
|
*> |
*> |
*> \param[out] RWORK |
*> \param[out] RWORK |
*> \verbatim |
*> \verbatim |
*> RWORK is DOUBLE PRECISION array, |
*> RWORK is DOUBLE PRECISION array, dimension (MAX(1,LRWORK)) |
*> dimension (LRWORK) |
|
*> On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK. |
*> On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
Line 194
|
Line 193
|
* 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 November 2011 |
|
* |
* |
*> \ingroup complex16OTHERcomputational |
*> \ingroup complex16OTHERcomputational |
* |
* |
Line 213
|
Line 210
|
SUBROUTINE ZSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, RWORK, |
SUBROUTINE ZSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, RWORK, |
$ LRWORK, IWORK, LIWORK, INFO ) |
$ LRWORK, IWORK, LIWORK, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.4.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..-- |
* November 2011 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER COMPZ |
CHARACTER COMPZ |
Line 454
|
Line 450
|
* |
* |
* endwhile |
* endwhile |
* |
* |
* If the problem split any number of times, then the eigenvalues |
* |
* will not be properly ordered. Here we permute the eigenvalues |
* Use Selection Sort to minimize swaps of eigenvectors |
* (and the associated eigenvectors) into ascending order. |
* |
* |
DO 60 II = 2, N |
IF( M.NE.N ) THEN |
I = II - 1 |
* |
K = I |
* Use Selection Sort to minimize swaps of eigenvectors |
P = D( I ) |
* |
DO 50 J = II, N |
DO 60 II = 2, N |
IF( D( J ).LT.P ) THEN |
I = II - 1 |
K = J |
K = I |
P = D( J ) |
P = D( I ) |
END IF |
DO 50 J = II, N |
50 CONTINUE |
IF( D( J ).LT.P ) THEN |
IF( K.NE.I ) THEN |
K = J |
D( K ) = D( I ) |
P = D( J ) |
D( I ) = P |
END IF |
CALL ZSWAP( N, Z( 1, I ), 1, Z( 1, K ), 1 ) |
50 CONTINUE |
END IF |
IF( K.NE.I ) THEN |
60 CONTINUE |
D( K ) = D( I ) |
|
D( I ) = P |
|
CALL ZSWAP( N, Z( 1, I ), 1, Z( 1, K ), 1 ) |
|
END IF |
|
60 CONTINUE |
|
END IF |
|
END IF |
END IF |
* |
* |
70 CONTINUE |
70 CONTINUE |