version 1.14, 2016/08/27 15:34:44
|
version 1.17, 2018/05/29 07:18:12
|
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 ZBDSQR + dependencies |
*> Download ZBDSQR + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zbdsqr.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zbdsqr.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zbdsqr.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zbdsqr.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zbdsqr.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zbdsqr.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* SUBROUTINE ZBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, |
* SUBROUTINE ZBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, |
* LDU, C, LDC, RWORK, INFO ) |
* LDU, C, LDC, RWORK, INFO ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* CHARACTER UPLO |
* CHARACTER UPLO |
* INTEGER INFO, LDC, LDU, LDVT, N, NCC, NCVT, NRU |
* INTEGER INFO, LDC, LDU, LDVT, N, NCC, NCVT, NRU |
Line 29
|
Line 29
|
* DOUBLE PRECISION D( * ), E( * ), RWORK( * ) |
* DOUBLE PRECISION D( * ), E( * ), RWORK( * ) |
* COMPLEX*16 C( LDC, * ), U( LDU, * ), VT( LDVT, * ) |
* COMPLEX*16 C( LDC, * ), U( LDU, * ), VT( LDVT, * ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 40
|
Line 40
|
*> left singular vectors from the singular value decomposition (SVD) of |
*> left singular vectors from the singular value decomposition (SVD) of |
*> a real N-by-N (upper or lower) bidiagonal matrix B using the implicit |
*> a real N-by-N (upper or lower) bidiagonal matrix B using the implicit |
*> zero-shift QR algorithm. The SVD of B has the form |
*> zero-shift QR algorithm. The SVD of B has the form |
*> |
*> |
*> B = Q * S * P**H |
*> B = Q * S * P**H |
*> |
*> |
*> where S is the diagonal matrix of singular values, Q is an orthogonal |
*> where S is the diagonal matrix of singular values, Q is an orthogonal |
*> matrix of left singular vectors, and P is an orthogonal matrix of |
*> matrix of left singular vectors, and P is an orthogonal matrix of |
*> right singular vectors. If left singular vectors are requested, this |
*> right singular vectors. If left singular vectors are requested, this |
Line 51
|
Line 51
|
*> P**H, for given complex input matrices U and VT. When U and VT are |
*> P**H, for given complex input matrices U and VT. When U and VT are |
*> the unitary matrices that reduce a general matrix A to bidiagonal |
*> the unitary matrices that reduce a general matrix A to bidiagonal |
*> form: A = U*B*VT, as computed by ZGEBRD, then |
*> form: A = U*B*VT, as computed by ZGEBRD, then |
*> |
*> |
*> A = (U*Q) * S * (P**H*VT) |
*> A = (U*Q) * S * (P**H*VT) |
*> |
*> |
*> is the SVD of A. Optionally, the subroutine may also compute Q**H*C |
*> is the SVD of A. Optionally, the subroutine may also compute Q**H*C |
*> for a given complex input matrix C. |
*> for a given complex input matrix C. |
*> |
*> |
Line 209
|
Line 209
|
* 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 2015 |
*> \date December 2016 |
* |
* |
*> \ingroup complex16OTHERcomputational |
*> \ingroup complex16OTHERcomputational |
* |
* |
Line 222
|
Line 222
|
SUBROUTINE ZBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, |
SUBROUTINE ZBDSQR( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, |
$ LDU, C, LDC, RWORK, INFO ) |
$ LDU, C, LDC, RWORK, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.6.0) -- |
* -- LAPACK computational routine (version 3.7.0) -- |
* -- 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 2015 |
* December 2016 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER UPLO |
CHARACTER UPLO |
Line 321
|
Line 321
|
CALL DLASQ1( N, D, E, RWORK, INFO ) |
CALL DLASQ1( N, D, E, RWORK, INFO ) |
* |
* |
* If INFO equals 2, dqds didn't finish, try to finish |
* If INFO equals 2, dqds didn't finish, try to finish |
* |
* |
IF( INFO .NE. 2 ) RETURN |
IF( INFO .NE. 2 ) RETURN |
INFO = 0 |
INFO = 0 |
END IF |
END IF |