version 1.11, 2012/12/14 14:22:54
|
version 1.17, 2018/05/29 06:55:25
|
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 |
*> \date June 2017 |
* |
* |
*> \ingroup complex16OTHERcomputational |
*> \ingroup complex16OTHERcomputational |
* |
* |
Line 213
|
Line 212
|
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 (version 3.7.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 2017 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER COMPZ |
CHARACTER COMPZ |
Line 454
|
Line 453
|
* |
* |
* 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 |