version 1.6, 2017/06/17 10:54:33
|
version 1.10, 2023/08/07 08:39:43
|
Line 39
|
Line 39
|
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
*> ============= |
* ============= |
*> |
*> |
*>\verbatim |
*>\verbatim |
*> |
*> |
Line 189
|
Line 189
|
*> The dimension of the array WORK. |
*> The dimension of the array WORK. |
*> |
*> |
*> If LWORK = -1, then a workspace query is assumed; the routine |
*> If LWORK = -1, then a workspace query is assumed; the routine |
*> only calculates the optimal size of the WORK array, returns |
*> only calculates the optimal size of the WORK and RWORK |
*> this value as the first entry of the work array, and no error |
*> arrays, returns this value as the first entry of the WORK |
*> message related to LWORK is issued by XERBLA. |
*> and RWORK array, respectively, and no error message related |
|
*> to LWORK or LRWORK is issued by XERBLA. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] RWORK |
*> \param[out] RWORK |
Line 210
|
Line 211
|
*> LRWORK is INTEGER |
*> LRWORK is INTEGER |
*> The dimension of the array RWORK. |
*> The dimension of the array RWORK. |
*> |
*> |
*> If LRWORK = -1, then a workspace query is assumed; the routine |
*> If LRWORK=-1, then a workspace query is assumed; the routine |
*> only calculates the optimal size of the RWORK array, returns |
*> only calculates the optimal size of the WORK and RWORK |
*> this value as the first entry of the work array, and no error |
*> arrays, returns this value as the first entry of the WORK |
*> message related to LRWORK is issued by XERBLA. |
*> and RWORK array, respectively, and no error message related |
|
*> to LWORK or LRWORK is issued by XERBLA. |
*> \endverbatim |
*> \endverbatim |
* |
* |
*> \param[out] IWORK |
*> \param[out] IWORK |
Line 244
|
Line 246
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date July 2012 |
|
* |
|
*> \ingroup complex16OTHERcomputational |
*> \ingroup complex16OTHERcomputational |
* |
* |
* ===================================================================== |
* ===================================================================== |
Line 254
|
Line 254
|
$ LDV1T, WORK, LWORK, RWORK, LRWORK, IWORK, |
$ LDV1T, WORK, LWORK, RWORK, LRWORK, IWORK, |
$ INFO ) |
$ 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..-- |
* July 2012 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER JOBU1, JOBU2, JOBV1T |
CHARACTER JOBU1, JOBU2, JOBV1T |
Line 312
|
Line 311
|
WANTU1 = LSAME( JOBU1, 'Y' ) |
WANTU1 = LSAME( JOBU1, 'Y' ) |
WANTU2 = LSAME( JOBU2, 'Y' ) |
WANTU2 = LSAME( JOBU2, 'Y' ) |
WANTV1T = LSAME( JOBV1T, 'Y' ) |
WANTV1T = LSAME( JOBV1T, 'Y' ) |
LQUERY = LWORK .EQ. -1 |
LQUERY = ( LWORK.EQ.-1 ) .OR. ( LRWORK.EQ.-1 ) |
* |
* |
IF( M .LT. 0 ) THEN |
IF( M .LT. 0 ) THEN |
INFO = -4 |
INFO = -4 |
Line 511
|
Line 510
|
IF( LWORK .LT. LWORKMIN .AND. .NOT.LQUERY ) THEN |
IF( LWORK .LT. LWORKMIN .AND. .NOT.LQUERY ) THEN |
INFO = -19 |
INFO = -19 |
END IF |
END IF |
|
IF( LRWORK .LT. LRWORKMIN .AND. .NOT.LQUERY ) THEN |
|
INFO = -21 |
|
END IF |
END IF |
END IF |
IF( INFO .NE. 0 ) THEN |
IF( INFO .NE. 0 ) THEN |
CALL XERBLA( 'ZUNCSD2BY1', -INFO ) |
CALL XERBLA( 'ZUNCSD2BY1', -INFO ) |
Line 564
|
Line 566
|
$ RWORK(IPHI), U1, LDU1, U2, LDU2, V1T, LDV1T, CDUM, |
$ RWORK(IPHI), U1, LDU1, U2, LDU2, V1T, LDV1T, CDUM, |
$ 1, RWORK(IB11D), RWORK(IB11E), RWORK(IB12D), |
$ 1, RWORK(IB11D), RWORK(IB11E), RWORK(IB12D), |
$ RWORK(IB12E), RWORK(IB21D), RWORK(IB21E), |
$ RWORK(IB12E), RWORK(IB21D), RWORK(IB21E), |
$ RWORK(IB22D), RWORK(IB22E), RWORK(IBBCSD), LBBCSD, |
$ RWORK(IB22D), RWORK(IB22E), RWORK(IBBCSD), |
$ CHILDINFO ) |
$ LRWORK-IBBCSD+1, CHILDINFO ) |
* |
* |
* Permute rows and columns to place zero submatrices in |
* Permute rows and columns to place zero submatrices in |
* preferred positions |
* preferred positions |
Line 706
|
Line 708
|
* |
* |
* Accumulate Householder reflectors |
* Accumulate Householder reflectors |
* |
* |
|
IF( WANTU2 .AND. M-P .GT. 0 ) THEN |
|
CALL ZCOPY( M-P, WORK(IORBDB+P), 1, U2, 1 ) |
|
END IF |
IF( WANTU1 .AND. P .GT. 0 ) THEN |
IF( WANTU1 .AND. P .GT. 0 ) THEN |
CALL ZCOPY( P, WORK(IORBDB), 1, U1, 1 ) |
CALL ZCOPY( P, WORK(IORBDB), 1, U1, 1 ) |
DO J = 2, P |
DO J = 2, P |
Line 717
|
Line 722
|
$ WORK(IORGQR), LORGQR, CHILDINFO ) |
$ WORK(IORGQR), LORGQR, CHILDINFO ) |
END IF |
END IF |
IF( WANTU2 .AND. M-P .GT. 0 ) THEN |
IF( WANTU2 .AND. M-P .GT. 0 ) THEN |
CALL ZCOPY( M-P, WORK(IORBDB+P), 1, U2, 1 ) |
|
DO J = 2, M-P |
DO J = 2, M-P |
U2(1,J) = ZERO |
U2(1,J) = ZERO |
END DO |
END DO |