stbrfs.f stbtrs.f stgevc.f stgex2.f stgexc.f stgsen.f
stgsja.f stgsna.f stgsy2.f stgsyl.f stpcon.f stprfs.f stptri.f
stptrs.f
- strcon.f strevc.f strevc3.f strexc.f strrfs.f strsen.f strsna.f strsyl.f
+ strcon.f strevc.f strexc.f strrfs.f strsen.f strsna.f strsyl.f
strti2.f strtri.f strtrs.f stzrzf.f sstemr.f
slansf.f spftrf.f spftri.f spftrs.f ssfrk.f stfsm.f stftri.f stfttp.f
stfttr.f stpttf.f stpttr.f strttf.f strttp.f
ctbcon.f ctbrfs.f ctbtrs.f ctgevc.f ctgex2.f
ctgexc.f ctgsen.f ctgsja.f ctgsna.f ctgsy2.f ctgsyl.f ctpcon.f
ctprfs.f ctptri.f
- ctptrs.f ctrcon.f ctrevc.f ctrevc3.f ctrexc.f ctrrfs.f ctrsen.f ctrsna.f
+ ctptrs.f ctrcon.f ctrevc.f ctrexc.f ctrrfs.f ctrsen.f ctrsna.f
ctrsyl.f ctrti2.f ctrtri.f ctrtrs.f ctzrzf.f cung2l.f cung2r.f
cungbr.f cunghr.f cungl2.f cunglq.f cungql.f cungqr.f cungr2.f
cungrq.f cungtr.f cunm2l.f cunm2r.f cunmbr.f cunmhr.f cunml2.f cunm22.f
dtbrfs.f dtbtrs.f dtgevc.f dtgex2.f dtgexc.f dtgsen.f
dtgsja.f dtgsna.f dtgsy2.f dtgsyl.f dtpcon.f dtprfs.f dtptri.f
dtptrs.f
- dtrcon.f dtrevc.f dtrevc3.f dtrexc.f dtrrfs.f dtrsen.f dtrsna.f dtrsyl.f
+ dtrcon.f dtrevc.f dtrexc.f dtrrfs.f dtrsen.f dtrsna.f dtrsyl.f
dtrti2.f dtrtri.f dtrtrs.f dtzrzf.f dstemr.f
dsgesv.f dsposv.f dlag2s.f slag2d.f dlat2s.f
dlansf.f dpftrf.f dpftri.f dpftrs.f dsfrk.f dtfsm.f dtftri.f dtfttp.f
ztbcon.f ztbrfs.f ztbtrs.f ztgevc.f ztgex2.f
ztgexc.f ztgsen.f ztgsja.f ztgsna.f ztgsy2.f ztgsyl.f ztpcon.f
ztprfs.f ztptri.f
- ztptrs.f ztrcon.f ztrevc.f ztrevc3.f ztrexc.f ztrrfs.f ztrsen.f ztrsna.f
+ ztptrs.f ztrcon.f ztrevc.f ztrexc.f ztrrfs.f ztrsen.f ztrsna.f
ztrsyl.f ztrti2.f ztrtri.f ztrtrs.f ztzrzf.f zung2l.f
zung2r.f zungbr.f zunghr.f zungl2.f zunglq.f zungql.f zungqr.f zungr2.f
zungrq.f zungtr.f zunm2l.f zunm2r.f zunmbr.f zunmhr.f zunml2.f zunm22.f
* INTEGER INFO, LDA, LDVL, LDVR, LWORK, N
* ..
* .. Array Arguments ..
-* REAL RWORK( * )
-* COMPLEX A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+* REAL RWORK( * )
+* COMPLEX A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
* $ W( * ), WORK( * )
* ..
*
*
*> \date November 2011
*
+* @generated from zgeev.f, fortran z -> c, Tue Apr 19 01:47:44 2016
+*
*> \ingroup complexGEeigen
*
* =====================================================================
INTEGER INFO, LDA, LDVL, LDVR, LWORK, N
* ..
* .. Array Arguments ..
- REAL RWORK( * )
- COMPLEX A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+ REAL RWORK( * )
+ COMPLEX A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
$ W( * ), WORK( * )
* ..
*
* =====================================================================
*
* .. Parameters ..
- REAL ZERO, ONE
+ REAL ZERO, ONE
PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 )
* ..
* .. Local Scalars ..
CHARACTER SIDE
INTEGER HSWORK, I, IBAL, IERR, IHI, ILO, IRWORK, ITAU,
$ IWRK, K, LWORK_TREVC, MAXWRK, MINWRK, NOUT
- REAL ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
- COMPLEX TMP
+ REAL ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
+ COMPLEX TMP
* ..
* .. Local Arrays ..
LOGICAL SELECT( 1 )
- REAL DUM( 1 )
+ REAL DUM( 1 )
* ..
* .. External Subroutines ..
- EXTERNAL CGEBAK, CGEBAL, CGEHRD, CHSEQR, CLACPY, CLASCL,
- $ CSCAL, CSSCAL, CTREVC3, CUNGHR, SLABAD, XERBLA
+ EXTERNAL SLABAD, XERBLA, CSSCAL, CGEBAK, CGEBAL, CGEHRD,
+ $ CHSEQR, CLACPY, CLASCL, CSCAL, CTREVC3, CUNGHR
* ..
* .. External Functions ..
LOGICAL LSAME
- INTEGER ILAENV, ISAMAX
- REAL CLANGE, SCNRM2, SLAMCH
- EXTERNAL LSAME, ILAENV, ISAMAX, CLANGE, SCNRM2, SLAMCH
+ INTEGER ISAMAX, ILAENV
+ REAL SLAMCH, SCNRM2, CLANGE
+ EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
* ..
* .. Intrinsic Functions ..
- INTRINSIC AIMAG, CMPLX, CONJG, MAX, REAL, SQRT
+ INTRINSIC REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
* ..
* .. Executable Statements ..
*
* .. Scalar Arguments ..
* CHARACTER BALANC, JOBVL, JOBVR, SENSE
* INTEGER IHI, ILO, INFO, LDA, LDVL, LDVR, LWORK, N
-* REAL ABNRM
+* REAL ABNRM
* ..
* .. Array Arguments ..
-* REAL RCONDE( * ), RCONDV( * ), RWORK( * ),
+* REAL RCONDE( * ), RCONDV( * ), RWORK( * ),
* $ SCALE( * )
-* COMPLEX A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+* COMPLEX A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
* $ W( * ), WORK( * )
* ..
*
*> A is COMPLEX array, dimension (LDA,N)
*> On entry, the N-by-N matrix A.
*> On exit, A has been overwritten. If JOBVL = 'V' or
-*> JOBVR = 'V', A contains the Schur form of the balanced
+*> JOBVR = 'V', A contains the Schur form of the balanced
*> version of the matrix A.
*> \endverbatim
*>
*
*> \date November 2011
*
+* @generated from zgeevx.f, fortran z -> c, Tue Apr 19 01:47:44 2016
+*
*> \ingroup complexGEeigen
*
* =====================================================================
* .. Scalar Arguments ..
CHARACTER BALANC, JOBVL, JOBVR, SENSE
INTEGER IHI, ILO, INFO, LDA, LDVL, LDVR, LWORK, N
- REAL ABNRM
+ REAL ABNRM
* ..
* .. Array Arguments ..
- REAL RCONDE( * ), RCONDV( * ), RWORK( * ),
+ REAL RCONDE( * ), RCONDV( * ), RWORK( * ),
$ SCALE( * )
- COMPLEX A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+ COMPLEX A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
$ W( * ), WORK( * )
* ..
*
* =====================================================================
*
* .. Parameters ..
- REAL ZERO, ONE
+ REAL ZERO, ONE
PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 )
* ..
* .. Local Scalars ..
LOGICAL LQUERY, SCALEA, WANTVL, WANTVR, WNTSNB, WNTSNE,
$ WNTSNN, WNTSNV
CHARACTER JOB, SIDE
- INTEGER HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
+ INTEGER HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
$ LWORK_TREVC, MAXWRK, MINWRK, NOUT
- REAL ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
- COMPLEX TMP
+ REAL ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
+ COMPLEX TMP
* ..
* .. Local Arrays ..
LOGICAL SELECT( 1 )
- REAL DUM( 1 )
+ REAL DUM( 1 )
* ..
* .. External Subroutines ..
- EXTERNAL CGEBAK, CGEBAL, CGEHRD, CHSEQR, CLACPY, CLASCL,
- $ CSCAL, CSSCAL, CTREVC3, CTRSNA, CUNGHR, SLABAD,
- $ SLASCL, XERBLA
+ EXTERNAL SLABAD, SLASCL, XERBLA, CSSCAL, CGEBAK, CGEBAL,
+ $ CGEHRD, CHSEQR, CLACPY, CLASCL, CSCAL, CTREVC3,
+ $ CTRSNA, CUNGHR
* ..
* .. External Functions ..
LOGICAL LSAME
- INTEGER ILAENV, ISAMAX
- REAL CLANGE, SCNRM2, SLAMCH
- EXTERNAL LSAME, ILAENV, ISAMAX, CLANGE, SCNRM2, SLAMCH
+ INTEGER ISAMAX, ILAENV
+ REAL SLAMCH, SCNRM2, CLANGE
+ EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
* ..
* .. Intrinsic Functions ..
- INTRINSIC AIMAG, CMPLX, CONJG, MAX, REAL, SQRT
+ INTRINSIC REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
* ..
* .. Executable Statements ..
*
EXTERNAL LSAME
* ..
* .. Intrinsic Functions
- INTRINSIC COS, INT, MAX, MIN, SIN
+ INTRINSIC INT, MAX, MIN
* ..
* .. Executable Statements ..
*
* ..
* .. Local Arrays ..
REAL DUM( 1 )
- COMPLEX CDUM( 1 )
+ COMPLEX CDUM( 1, 1 )
* ..
* .. External Subroutines ..
EXTERNAL CBBCSD, CCOPY, CLACPY, CLAPMR, CLAPMT, CUNBDB1,
*
*> \date September 2012
*
+* @precisions fortran d -> s
+*
*> \ingroup doubleGEeigen
*
* =====================================================================
*
*> \date September 2012
*
+* @precisions fortran d -> s
+*
*> \ingroup doubleGEeigen
*
* =====================================================================
LOGICAL LQUERY, SCALEA, WANTVL, WANTVR, WNTSNB, WNTSNE,
$ WNTSNN, WNTSNV
CHARACTER JOB, SIDE
- INTEGER HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
+ INTEGER HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
$ LWORK_TREVC, MAXWRK, MINWRK, NOUT
DOUBLE PRECISION ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
$ SN
LOGICAL LQUERY, WANTU1, WANTU2, WANTV1T
* ..
* .. Local Arrays ..
- DOUBLE PRECISION DUM( 1 )
+ DOUBLE PRECISION DUM1(1), DUM2(1,1)
* ..
* .. External Subroutines ..
EXTERNAL DBBCSD, DCOPY, DLACPY, DLAPMR, DLAPMT, DORBDB1,
LORGLQOPT = 1
IF( R .EQ. Q ) THEN
CALL DORBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA,
- $ DUM, DUM, DUM, DUM, WORK,
+ $ DUM1, DUM1, DUM1, DUM1, WORK,
$ -1, CHILDINFO )
LORBDB = INT( WORK(1) )
IF( WANTU1 .AND. P .GT. 0 ) THEN
- CALL DORGQR( P, P, Q, U1, LDU1, DUM, WORK(1), -1,
+ CALL DORGQR( P, P, Q, U1, LDU1, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
ENDIF
IF( WANTU2 .AND. M-P .GT. 0 ) THEN
- CALL DORGQR( M-P, M-P, Q, U2, LDU2, DUM, WORK(1),
+ CALL DORGQR( M-P, M-P, Q, U2, LDU2, DUM1, WORK(1),
$ -1, CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, M-P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTV1T .AND. Q .GT. 0 ) THEN
CALL DORGLQ( Q-1, Q-1, Q-1, V1T, LDV1T,
- $ DUM, WORK(1), -1, CHILDINFO )
+ $ DUM1, WORK(1), -1, CHILDINFO )
LORGLQMIN = MAX( LORGLQMIN, Q-1 )
LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
END IF
CALL DBBCSD( JOBU1, JOBU2, JOBV1T, 'N', 'N', M, P, Q, THETA,
- $ DUM, U1, LDU1, U2, LDU2, V1T, LDV1T,
- $ DUM, 1, DUM, DUM, DUM,
- $ DUM, DUM, DUM, DUM,
- $ DUM, WORK(1), -1, CHILDINFO )
+ $ DUM1, U1, LDU1, U2, LDU2, V1T, LDV1T,
+ $ DUM2, 1, DUM1, DUM1, DUM1,
+ $ DUM1, DUM1, DUM1, DUM1,
+ $ DUM1, WORK(1), -1, CHILDINFO )
LBBCSD = INT( WORK(1) )
ELSE IF( R .EQ. P ) THEN
CALL DORBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA,
- $ DUM, DUM, DUM, DUM,
+ $ DUM1, DUM1, DUM1, DUM1,
$ WORK(1), -1, CHILDINFO )
LORBDB = INT( WORK(1) )
IF( WANTU1 .AND. P .GT. 0 ) THEN
- CALL DORGQR( P-1, P-1, P-1, U1(2,2), LDU1, DUM,
+ CALL DORGQR( P-1, P-1, P-1, U1(2,2), LDU1, DUM1,
$ WORK(1), -1, CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, P-1 )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTU2 .AND. M-P .GT. 0 ) THEN
- CALL DORGQR( M-P, M-P, Q, U2, LDU2, DUM, WORK(1),
+ CALL DORGQR( M-P, M-P, Q, U2, LDU2, DUM1, WORK(1),
$ -1, CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, M-P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTV1T .AND. Q .GT. 0 ) THEN
- CALL DORGLQ( Q, Q, R, V1T, LDV1T, DUM, WORK(1), -1,
+ CALL DORGLQ( Q, Q, R, V1T, LDV1T, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGLQMIN = MAX( LORGLQMIN, Q )
LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
END IF
CALL DBBCSD( JOBV1T, 'N', JOBU1, JOBU2, 'T', M, Q, P, THETA,
- $ DUM, V1T, LDV1T, DUM, 1, U1, LDU1,
- $ U2, LDU2, DUM, DUM, DUM,
- $ DUM, DUM, DUM, DUM,
- $ DUM, WORK(1), -1, CHILDINFO )
+ $ DUM1, V1T, LDV1T, DUM2, 1, U1, LDU1,
+ $ U2, LDU2, DUM1, DUM1, DUM1,
+ $ DUM1, DUM1, DUM1, DUM1,
+ $ DUM1, WORK(1), -1, CHILDINFO )
LBBCSD = INT( WORK(1) )
ELSE IF( R .EQ. M-P ) THEN
CALL DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA,
- $ DUM, DUM, DUM, DUM,
+ $ DUM1, DUM1, DUM1, DUM1,
$ WORK(1), -1, CHILDINFO )
LORBDB = INT( WORK(1) )
IF( WANTU1 .AND. P .GT. 0 ) THEN
- CALL DORGQR( P, P, Q, U1, LDU1, DUM, WORK(1), -1,
+ CALL DORGQR( P, P, Q, U1, LDU1, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTU2 .AND. M-P .GT. 0 ) THEN
CALL DORGQR( M-P-1, M-P-1, M-P-1, U2(2,2), LDU2,
- $ DUM, WORK(1), -1, CHILDINFO )
+ $ DUM1, WORK(1), -1, CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, M-P-1 )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTV1T .AND. Q .GT. 0 ) THEN
- CALL DORGLQ( Q, Q, R, V1T, LDV1T, DUM, WORK(1), -1,
+ CALL DORGLQ( Q, Q, R, V1T, LDV1T, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGLQMIN = MAX( LORGLQMIN, Q )
LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
END IF
CALL DBBCSD( 'N', JOBV1T, JOBU2, JOBU1, 'T', M, M-Q, M-P,
- $ THETA, DUM, DUM, 1, V1T, LDV1T, U2,
- $ LDU2, U1, LDU1, DUM, DUM, DUM,
- $ DUM, DUM, DUM, DUM,
- $ DUM, WORK(1), -1, CHILDINFO )
+ $ THETA, DUM1, DUM2, 1, V1T, LDV1T, U2,
+ $ LDU2, U1, LDU1, DUM1, DUM1, DUM1,
+ $ DUM1, DUM1, DUM1, DUM1,
+ $ DUM1, WORK(1), -1, CHILDINFO )
LBBCSD = INT( WORK(1) )
ELSE
CALL DORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA,
- $ DUM, DUM, DUM, DUM,
- $ DUM, WORK(1), -1, CHILDINFO )
+ $ DUM1, DUM1, DUM1, DUM1,
+ $ DUM1, WORK(1), -1, CHILDINFO )
LORBDB = M + INT( WORK(1) )
IF( WANTU1 .AND. P .GT. 0 ) THEN
- CALL DORGQR( P, P, M-Q, U1, LDU1, DUM, WORK(1), -1,
+ CALL DORGQR( P, P, M-Q, U1, LDU1, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTU2 .AND. M-P .GT. 0 ) THEN
- CALL DORGQR( M-P, M-P, M-Q, U2, LDU2, DUM, WORK(1),
+ CALL DORGQR( M-P, M-P, M-Q, U2, LDU2, DUM1, WORK(1),
$ -1, CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, M-P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTV1T .AND. Q .GT. 0 ) THEN
- CALL DORGLQ( Q, Q, Q, V1T, LDV1T, DUM, WORK(1), -1,
+ CALL DORGLQ( Q, Q, Q, V1T, LDV1T, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGLQMIN = MAX( LORGLQMIN, Q )
LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
END IF
CALL DBBCSD( JOBU2, JOBU1, 'N', JOBV1T, 'N', M, M-P, M-Q,
- $ THETA, DUM, U2, LDU2, U1, LDU1, DUM,
- $ 1, V1T, LDV1T, DUM, DUM, DUM,
- $ DUM, DUM, DUM, DUM,
- $ DUM, WORK(1), -1, CHILDINFO )
+ $ THETA, DUM1, U2, LDU2, U1, LDU1, DUM2,
+ $ 1, V1T, LDV1T, DUM1, DUM1, DUM1,
+ $ DUM1, DUM1, DUM1, DUM1,
+ $ DUM1, WORK(1), -1, CHILDINFO )
LBBCSD = INT( WORK(1) )
END IF
LWORKMIN = MAX( IORBDB+LORBDB-1,
*
CALL DBBCSD( JOBU1, JOBU2, JOBV1T, 'N', 'N', M, P, Q, THETA,
$ WORK(IPHI), U1, LDU1, U2, LDU2, V1T, LDV1T,
- $ DUM, 1, WORK(IB11D), WORK(IB11E),
+ $ DUM2, 1, WORK(IB11D), WORK(IB11E),
$ WORK(IB12D), WORK(IB12E), WORK(IB21D),
$ WORK(IB21E), WORK(IB22D), WORK(IB22E),
$ WORK(IBBCSD), LBBCSD, CHILDINFO )
* Simultaneously diagonalize X11 and X21.
*
CALL DBBCSD( JOBV1T, 'N', JOBU1, JOBU2, 'T', M, Q, P, THETA,
- $ WORK(IPHI), V1T, LDV1T, DUM, 1, U1, LDU1, U2,
+ $ WORK(IPHI), V1T, LDV1T, DUM2, 1, U1, LDU1, U2,
$ LDU2, WORK(IB11D), WORK(IB11E), WORK(IB12D),
$ WORK(IB12E), WORK(IB21D), WORK(IB21E),
$ WORK(IB22D), WORK(IB22E), WORK(IBBCSD), LBBCSD,
* Simultaneously diagonalize X11 and X21.
*
CALL DBBCSD( 'N', JOBV1T, JOBU2, JOBU1, 'T', M, M-Q, M-P,
- $ THETA, WORK(IPHI), DUM, 1, V1T, LDV1T, U2,
+ $ THETA, WORK(IPHI), DUM2, 1, V1T, LDV1T, U2,
$ LDU2, U1, LDU1, WORK(IB11D), WORK(IB11E),
$ WORK(IB12D), WORK(IB12E), WORK(IB21D),
$ WORK(IB21E), WORK(IB22D), WORK(IB22E),
* Simultaneously diagonalize X11 and X21.
*
CALL DBBCSD( JOBU2, JOBU1, 'N', JOBV1T, 'N', M, M-P, M-Q,
- $ THETA, WORK(IPHI), U2, LDU2, U1, LDU1, DUM,
+ $ THETA, WORK(IPHI), U2, LDU2, U1, LDU1, DUM2,
$ 1, V1T, LDV1T, WORK(IB11D), WORK(IB11E),
$ WORK(IB12D), WORK(IB12E), WORK(IB21D),
$ WORK(IB21E), WORK(IB22D), WORK(IB22E),
* INTEGER INFO, LDA, LDVL, LDVR, LWORK, N
* ..
* .. Array Arguments ..
-* REAL A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+* REAL A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
* $ WI( * ), WORK( * ), WR( * )
* ..
*
*
*> \date September 2012
*
+* @generated from dgeev.f, fortran d -> s, Tue Apr 19 01:47:44 2016
+*
*> \ingroup realGEeigen
*
* =====================================================================
INTEGER INFO, LDA, LDVL, LDVR, LWORK, N
* ..
* .. Array Arguments ..
- REAL A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+ REAL A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
$ WI( * ), WORK( * ), WR( * )
* ..
*
* =====================================================================
*
* .. Parameters ..
- REAL ZERO, ONE
+ REAL ZERO, ONE
PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 )
* ..
* .. Local Scalars ..
CHARACTER SIDE
INTEGER HSWORK, I, IBAL, IERR, IHI, ILO, ITAU, IWRK, K,
$ LWORK_TREVC, MAXWRK, MINWRK, NOUT
- REAL ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
+ REAL ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
$ SN
* ..
* .. Local Arrays ..
LOGICAL SELECT( 1 )
- REAL DUM( 1 )
+ REAL DUM( 1 )
* ..
* .. External Subroutines ..
EXTERNAL SGEBAK, SGEBAL, SGEHRD, SHSEQR, SLABAD, SLACPY,
* ..
* .. External Functions ..
LOGICAL LSAME
- INTEGER ILAENV, ISAMAX
- REAL SLAMCH, SLANGE, SLAPY2, SNRM2
- EXTERNAL LSAME, ILAENV, ISAMAX, SLAMCH, SLANGE, SLAPY2,
+ INTEGER ISAMAX, ILAENV
+ REAL SLAMCH, SLANGE, SLAPY2, SNRM2
+ EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SLANGE, SLAPY2,
$ SNRM2
* ..
* .. Intrinsic Functions ..
* .. Scalar Arguments ..
* CHARACTER BALANC, JOBVL, JOBVR, SENSE
* INTEGER IHI, ILO, INFO, LDA, LDVL, LDVR, LWORK, N
-* REAL ABNRM
+* REAL ABNRM
* ..
* .. Array Arguments ..
* INTEGER IWORK( * )
-* REAL A( LDA, * ), RCONDE( * ), RCONDV( * ),
+* REAL A( LDA, * ), RCONDE( * ), RCONDV( * ),
* $ SCALE( * ), VL( LDVL, * ), VR( LDVR, * ),
* $ WI( * ), WORK( * ), WR( * )
* ..
*> \verbatim
*> IHI is INTEGER
*> ILO and IHI are integer values determined when A was
-*> balanced. The balanced A(i,j) = 0 if I > J and
+*> balanced. The balanced A(i,j) = 0 if I > J and
*> J = 1,...,ILO-1 or I = IHI+1,...,N.
*> \endverbatim
*>
*
*> \date September 2012
*
+* @generated from dgeevx.f, fortran d -> s, Tue Apr 19 01:47:44 2016
+*
*> \ingroup realGEeigen
*
* =====================================================================
* .. Scalar Arguments ..
CHARACTER BALANC, JOBVL, JOBVR, SENSE
INTEGER IHI, ILO, INFO, LDA, LDVL, LDVR, LWORK, N
- REAL ABNRM
+ REAL ABNRM
* ..
* .. Array Arguments ..
INTEGER IWORK( * )
- REAL A( LDA, * ), RCONDE( * ), RCONDV( * ),
+ REAL A( LDA, * ), RCONDE( * ), RCONDV( * ),
$ SCALE( * ), VL( LDVL, * ), VR( LDVR, * ),
$ WI( * ), WORK( * ), WR( * )
* ..
* =====================================================================
*
* .. Parameters ..
- REAL ZERO, ONE
+ REAL ZERO, ONE
PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 )
* ..
* .. Local Scalars ..
LOGICAL LQUERY, SCALEA, WANTVL, WANTVR, WNTSNB, WNTSNE,
$ WNTSNN, WNTSNV
CHARACTER JOB, SIDE
- INTEGER HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
+ INTEGER HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
$ LWORK_TREVC, MAXWRK, MINWRK, NOUT
- REAL ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
+ REAL ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
$ SN
* ..
* .. Local Arrays ..
LOGICAL SELECT( 1 )
- REAL DUM( 1 )
+ REAL DUM( 1 )
* ..
* .. External Subroutines ..
EXTERNAL SGEBAK, SGEBAL, SGEHRD, SHSEQR, SLABAD, SLACPY,
* ..
* .. External Functions ..
LOGICAL LSAME
- INTEGER ILAENV, ISAMAX
- REAL SLAMCH, SLANGE, SLAPY2, SNRM2
- EXTERNAL LSAME, ILAENV, ISAMAX, SLAMCH, SLANGE, SLAPY2,
+ INTEGER ISAMAX, ILAENV
+ REAL SLAMCH, SLANGE, SLAPY2, SNRM2
+ EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SLANGE, SLAPY2,
$ SNRM2
* ..
* .. Intrinsic Functions ..
LOGICAL LQUERY, WANTU1, WANTU2, WANTV1T
* ..
* .. Local Arrays ..
- REAL DUM( 1 )
+ REAL DUM1(1), DUM2(1,1)
* ..
* .. External Subroutines ..
EXTERNAL SBBCSD, SCOPY, SLACPY, SLAPMR, SLAPMT, SORBDB1,
LORGLQOPT = 1
IF( R .EQ. Q ) THEN
CALL SORBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA,
- $ DUM, DUM, DUM, DUM, WORK, -1,
+ $ DUM1, DUM1, DUM1, DUM1, WORK, -1,
$ CHILDINFO )
LORBDB = INT( WORK(1) )
IF( WANTU1 .AND. P .GT. 0 ) THEN
- CALL SORGQR( P, P, Q, U1, LDU1, DUM, WORK(1), -1,
+ CALL SORGQR( P, P, Q, U1, LDU1, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
ENDIF
IF( WANTU2 .AND. M-P .GT. 0 ) THEN
- CALL SORGQR( M-P, M-P, Q, U2, LDU2, DUM, WORK(1), -1,
+ CALL SORGQR( M-P, M-P, Q, U2, LDU2, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, M-P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTV1T .AND. Q .GT. 0 ) THEN
CALL SORGLQ( Q-1, Q-1, Q-1, V1T, LDV1T,
- $ DUM, WORK(1), -1, CHILDINFO )
+ $ DUM1, WORK(1), -1, CHILDINFO )
LORGLQMIN = MAX( LORGLQMIN, Q-1 )
LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
END IF
CALL SBBCSD( JOBU1, JOBU2, JOBV1T, 'N', 'N', M, P, Q, THETA,
- $ DUM, U1, LDU1, U2, LDU2, V1T, LDV1T, DUM,
- $ 1, DUM, DUM, DUM, DUM, DUM,
- $ DUM, DUM, DUM, WORK(1), -1, CHILDINFO
+ $ DUM1, U1, LDU1, U2, LDU2, V1T, LDV1T, DUM2,
+ $ 1, DUM1, DUM1, DUM1, DUM1, DUM1,
+ $ DUM1, DUM1, DUM1, WORK(1), -1, CHILDINFO
$ )
LBBCSD = INT( WORK(1) )
ELSE IF( R .EQ. P ) THEN
CALL SORBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA,
- $ DUM, DUM, DUM, DUM, WORK(1), -1,
+ $ DUM1, DUM1, DUM1, DUM1, WORK(1), -1,
$ CHILDINFO )
LORBDB = INT( WORK(1) )
IF( WANTU1 .AND. P .GT. 0 ) THEN
- CALL SORGQR( P-1, P-1, P-1, U1(2,2), LDU1, DUM,
+ CALL SORGQR( P-1, P-1, P-1, U1(2,2), LDU1, DUM1,
$ WORK(1), -1, CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, P-1 )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTU2 .AND. M-P .GT. 0 ) THEN
- CALL SORGQR( M-P, M-P, Q, U2, LDU2, DUM, WORK(1), -1,
+ CALL SORGQR( M-P, M-P, Q, U2, LDU2, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, M-P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTV1T .AND. Q .GT. 0 ) THEN
- CALL SORGLQ( Q, Q, R, V1T, LDV1T, DUM, WORK(1), -1,
+ CALL SORGLQ( Q, Q, R, V1T, LDV1T, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGLQMIN = MAX( LORGLQMIN, Q )
LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
END IF
CALL SBBCSD( JOBV1T, 'N', JOBU1, JOBU2, 'T', M, Q, P, THETA,
- $ DUM, V1T, LDV1T, DUM, 1, U1, LDU1, U2,
- $ LDU2, DUM, DUM, DUM, DUM, DUM,
- $ DUM, DUM, DUM, WORK(1), -1, CHILDINFO
+ $ DUM1, V1T, LDV1T, DUM2, 1, U1, LDU1, U2,
+ $ LDU2, DUM1, DUM1, DUM1, DUM1, DUM1,
+ $ DUM1, DUM1, DUM1, WORK(1), -1, CHILDINFO
$ )
LBBCSD = INT( WORK(1) )
ELSE IF( R .EQ. M-P ) THEN
CALL SORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA,
- $ DUM, DUM, DUM, DUM, WORK(1), -1,
+ $ DUM1, DUM1, DUM1, DUM1, WORK(1), -1,
$ CHILDINFO )
LORBDB = INT( WORK(1) )
IF( WANTU1 .AND. P .GT. 0 ) THEN
- CALL SORGQR( P, P, Q, U1, LDU1, DUM, WORK(1), -1,
+ CALL SORGQR( P, P, Q, U1, LDU1, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTU2 .AND. M-P .GT. 0 ) THEN
- CALL SORGQR( M-P-1, M-P-1, M-P-1, U2(2,2), LDU2, DUM,
+ CALL SORGQR( M-P-1, M-P-1, M-P-1, U2(2,2), LDU2, DUM1,
$ WORK(1), -1, CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, M-P-1 )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTV1T .AND. Q .GT. 0 ) THEN
- CALL SORGLQ( Q, Q, R, V1T, LDV1T, DUM, WORK(1), -1,
+ CALL SORGLQ( Q, Q, R, V1T, LDV1T, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGLQMIN = MAX( LORGLQMIN, Q )
LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
END IF
CALL SBBCSD( 'N', JOBV1T, JOBU2, JOBU1, 'T', M, M-Q, M-P,
- $ THETA, DUM, DUM, 1, V1T, LDV1T, U2, LDU2,
- $ U1, LDU1, DUM, DUM, DUM, DUM,
- $ DUM, DUM, DUM, DUM, WORK(1), -1,
+ $ THETA, DUM1, DUM2, 1, V1T, LDV1T, U2, LDU2,
+ $ U1, LDU1, DUM1, DUM1, DUM1, DUM1,
+ $ DUM1, DUM1, DUM1, DUM1, WORK(1), -1,
$ CHILDINFO )
LBBCSD = INT( WORK(1) )
ELSE
CALL SORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA,
- $ DUM, DUM, DUM, DUM, DUM,
+ $ DUM1, DUM1, DUM1, DUM1, DUM1,
$ WORK(1), -1, CHILDINFO )
LORBDB = M + INT( WORK(1) )
IF( WANTU1 .AND. P .GT. 0 ) THEN
- CALL SORGQR( P, P, M-Q, U1, LDU1, DUM, WORK(1), -1,
+ CALL SORGQR( P, P, M-Q, U1, LDU1, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTU2 .AND. M-P .GT. 0 ) THEN
- CALL SORGQR( M-P, M-P, M-Q, U2, LDU2, DUM, WORK(1),
+ CALL SORGQR( M-P, M-P, M-Q, U2, LDU2, DUM1, WORK(1),
$ -1, CHILDINFO )
LORGQRMIN = MAX( LORGQRMIN, M-P )
LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
END IF
IF( WANTV1T .AND. Q .GT. 0 ) THEN
- CALL SORGLQ( Q, Q, Q, V1T, LDV1T, DUM, WORK(1), -1,
+ CALL SORGLQ( Q, Q, Q, V1T, LDV1T, DUM1, WORK(1), -1,
$ CHILDINFO )
LORGLQMIN = MAX( LORGLQMIN, Q )
LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
END IF
CALL SBBCSD( JOBU2, JOBU1, 'N', JOBV1T, 'N', M, M-P, M-Q,
- $ THETA, DUM, U2, LDU2, U1, LDU1, DUM, 1,
- $ V1T, LDV1T, DUM, DUM, DUM, DUM,
- $ DUM, DUM, DUM, DUM, WORK(1), -1,
+ $ THETA, DUM1, U2, LDU2, U1, LDU1, DUM2, 1,
+ $ V1T, LDV1T, DUM1, DUM1, DUM1, DUM1,
+ $ DUM1, DUM1, DUM1, DUM1, WORK(1), -1,
$ CHILDINFO )
LBBCSD = INT( WORK(1) )
END IF
*
CALL SBBCSD( JOBU1, JOBU2, JOBV1T, 'N', 'N', M, P, Q, THETA,
$ WORK(IPHI), U1, LDU1, U2, LDU2, V1T, LDV1T,
- $ DUM, 1, WORK(IB11D), WORK(IB11E), WORK(IB12D),
+ $ DUM2, 1, WORK(IB11D), WORK(IB11E), WORK(IB12D),
$ WORK(IB12E), WORK(IB21D), WORK(IB21E),
$ WORK(IB22D), WORK(IB22E), WORK(IBBCSD), LBBCSD,
$ CHILDINFO )
* Simultaneously diagonalize X11 and X21.
*
CALL SBBCSD( JOBV1T, 'N', JOBU1, JOBU2, 'T', M, Q, P, THETA,
- $ WORK(IPHI), V1T, LDV1T, DUM, 1, U1, LDU1, U2,
+ $ WORK(IPHI), V1T, LDV1T, DUM1, 1, U1, LDU1, U2,
$ LDU2, WORK(IB11D), WORK(IB11E), WORK(IB12D),
$ WORK(IB12E), WORK(IB21D), WORK(IB21E),
$ WORK(IB22D), WORK(IB22E), WORK(IBBCSD), LBBCSD,
* Simultaneously diagonalize X11 and X21.
*
CALL SBBCSD( 'N', JOBV1T, JOBU2, JOBU1, 'T', M, M-Q, M-P,
- $ THETA, WORK(IPHI), DUM, 1, V1T, LDV1T, U2,
+ $ THETA, WORK(IPHI), DUM1, 1, V1T, LDV1T, U2,
$ LDU2, U1, LDU1, WORK(IB11D), WORK(IB11E),
$ WORK(IB12D), WORK(IB12E), WORK(IB21D),
$ WORK(IB21E), WORK(IB22D), WORK(IB22E),
* Simultaneously diagonalize X11 and X21.
*
CALL SBBCSD( JOBU2, JOBU1, 'N', JOBV1T, 'N', M, M-P, M-Q,
- $ THETA, WORK(IPHI), U2, LDU2, U1, LDU1, DUM, 1,
+ $ THETA, WORK(IPHI), U2, LDU2, U1, LDU1, DUM1, 1,
$ V1T, LDV1T, WORK(IB11D), WORK(IB11E), WORK(IB12D),
$ WORK(IB12E), WORK(IB21D), WORK(IB21E),
$ WORK(IB22D), WORK(IB22E), WORK(IBBCSD), LBBCSD,
*
*> \date November 2011
*
+* @precisions fortran z -> c
+*
*> \ingroup complex16GEeigen
*
* =====================================================================
EXTERNAL LSAME, IDAMAX, ILAENV, DLAMCH, DZNRM2, ZLANGE
* ..
* .. Intrinsic Functions ..
- INTRINSIC DBLE, DCMPLX, DCONJG, DIMAG, MAX, SQRT
+ INTRINSIC DBLE, DCMPLX, CONJG, AIMAG, MAX, SQRT
* ..
* .. Executable Statements ..
*
CALL ZDSCAL( N, SCL, VL( 1, I ), 1 )
DO 10 K = 1, N
RWORK( IRWORK+K-1 ) = DBLE( VL( K, I ) )**2 +
- $ DIMAG( VL( K, I ) )**2
+ $ AIMAG( VL( K, I ) )**2
10 CONTINUE
K = IDAMAX( N, RWORK( IRWORK ), 1 )
- TMP = DCONJG( VL( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) )
+ TMP = CONJG( VL( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) )
CALL ZSCAL( N, TMP, VL( 1, I ), 1 )
VL( K, I ) = DCMPLX( DBLE( VL( K, I ) ), ZERO )
20 CONTINUE
CALL ZDSCAL( N, SCL, VR( 1, I ), 1 )
DO 30 K = 1, N
RWORK( IRWORK+K-1 ) = DBLE( VR( K, I ) )**2 +
- $ DIMAG( VR( K, I ) )**2
+ $ AIMAG( VR( K, I ) )**2
30 CONTINUE
K = IDAMAX( N, RWORK( IRWORK ), 1 )
- TMP = DCONJG( VR( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) )
+ TMP = CONJG( VR( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) )
CALL ZSCAL( N, TMP, VR( 1, I ), 1 )
VR( K, I ) = DCMPLX( DBLE( VR( K, I ) ), ZERO )
40 CONTINUE
*
*> \date November 2011
*
+* @precisions fortran z -> c
+*
*> \ingroup complex16GEeigen
*
* =====================================================================
LOGICAL LQUERY, SCALEA, WANTVL, WANTVR, WNTSNB, WNTSNE,
$ WNTSNN, WNTSNV
CHARACTER JOB, SIDE
- INTEGER HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
+ INTEGER HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
$ LWORK_TREVC, MAXWRK, MINWRK, NOUT
DOUBLE PRECISION ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
COMPLEX*16 TMP
EXTERNAL LSAME, IDAMAX, ILAENV, DLAMCH, DZNRM2, ZLANGE
* ..
* .. Intrinsic Functions ..
- INTRINSIC DBLE, DCMPLX, DCONJG, DIMAG, MAX, SQRT
+ INTRINSIC DBLE, DCMPLX, CONJG, AIMAG, MAX, SQRT
* ..
* .. Executable Statements ..
*
CALL ZDSCAL( N, SCL, VL( 1, I ), 1 )
DO 10 K = 1, N
RWORK( K ) = DBLE( VL( K, I ) )**2 +
- $ DIMAG( VL( K, I ) )**2
+ $ AIMAG( VL( K, I ) )**2
10 CONTINUE
K = IDAMAX( N, RWORK, 1 )
- TMP = DCONJG( VL( K, I ) ) / SQRT( RWORK( K ) )
+ TMP = CONJG( VL( K, I ) ) / SQRT( RWORK( K ) )
CALL ZSCAL( N, TMP, VL( 1, I ), 1 )
VL( K, I ) = DCMPLX( DBLE( VL( K, I ) ), ZERO )
20 CONTINUE
CALL ZDSCAL( N, SCL, VR( 1, I ), 1 )
DO 30 K = 1, N
RWORK( K ) = DBLE( VR( K, I ) )**2 +
- $ DIMAG( VR( K, I ) )**2
+ $ AIMAG( VR( K, I ) )**2
30 CONTINUE
K = IDAMAX( N, RWORK, 1 )
- TMP = DCONJG( VR( K, I ) ) / SQRT( RWORK( K ) )
+ TMP = CONJG( VR( K, I ) ) / SQRT( RWORK( K ) )
CALL ZSCAL( N, TMP, VR( 1, I ), 1 )
VR( K, I ) = DCMPLX( DBLE( VR( K, I ) ), ZERO )
40 CONTINUE
* ..
* .. Local Arrays ..
DOUBLE PRECISION DUM( 1 )
- COMPLEX*16 CDUM( 1 )
+ COMPLEX*16 CDUM( 1, 1 )
* ..
* .. External Subroutines ..
EXTERNAL ZBBCSD, ZCOPY, ZLACPY, ZLAPMR, ZLAPMT, ZUNBDB1,
MAXTYP = 26
NTYPES = MIN( MAXTYP, NTYPES )
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
+ CALL XLAENV(1,1)
IF( TSTCHK .AND. TSTERR )
$ CALL CERRGG( C3, NOUT )
DO 350 I = 1, NPARMS
*
* Blocked version
*
+ CALL XLAENV(16,2)
CALL CDRGES3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
$ A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
$ A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
*
* Blocked version
*
+ CALL XLAENV(16,2)
CALL CDRGEV3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
$ A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
$ A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
* GSV: Generalized Singular Value Decomposition
* ----------------------------------------------
*
+ CALL XLAENV(1,1)
IF( TSTERR )
$ CALL CERRGG( 'GSV', NOUT )
CALL CCKGSV( NN, MVAL, PVAL, NVAL, NTYPES, ISEED, THRESH, NMAX,
* ..
* .. Local Arrays ..
LOGICAL BW( NMAX ), SEL( NMAX )
- INTEGER IW( LW )
+ INTEGER IW( LW ), IDUM(NMAX)
REAL LS( NMAX ), R1( NMAX ), R2( NMAX ),
$ RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW )
COMPLEX A( NMAX, NMAX ), ALPHA( NMAX ),
SRNAMT = 'CGGSVD3'
INFOT = 1
CALL CGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL CGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL CGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 4
CALL CGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL CGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 6
CALL CGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 10
CALL CGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 12
CALL CGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 16
CALL CGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
- $ 2, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 18
CALL CGGSVD3( 'N', 'V', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
- $ 2, R1, R2, U, 2, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 2, R1, R2, U, 2, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 20
CALL CGGSVD3( 'N', 'N', 'Q', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
- $ 2, R1, R2, U, 2, V, 2, Q, 1, W, RW, IW, LWORK,
+ $ 2, R1, R2, U, 2, V, 2, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
NT = NT + 11
INFOT = 7
CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ -1, 0, 0, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 8
CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, -1, 0, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 9
CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, -1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 11
CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, -1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 20
CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, -1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 22
CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, -1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 24
CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, -1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 26
CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ -1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
MAXTYP = 26
NTYPES = MIN( MAXTYP, NTYPES )
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
+ CALL XLAENV(1,1)
IF( TSTCHK .AND. TSTERR )
$ CALL DERRGG( C3, NOUT )
DO 350 I = 1, NPARMS
*
* Blocked version
*
+ CALL XLAENV(16, 2)
CALL DDRGES3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
$ A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
$ A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
* GSV: Generalized Singular Value Decomposition
* ----------------------------------------------
*
+ CALL XLAENV(1,1)
IF( TSTERR )
$ CALL DERRGG( 'GSV', NOUT )
CALL DCKGSV( NN, MVAL, PVAL, NVAL, NTYPES, ISEED, THRESH, NMAX,
$ / '21 = | S - Spartial | / ( min(M,N) ulp |S| )',
$ / '22 = 0 if S contains min(M,N) nonnegative values in',
$ ' decreasing order, else 1/ulp',
- $ / '23 = | A - U diag(S) VT | / ( |A| max(M,N) ulp ),'
+ $ / '23 = | A - U diag(S) VT | / ( |A| max(M,N) ulp ),',
$ ' DGESVDX(V,V,A) ',
$ / '24 = | I - U**T U | / ( M ulp ) ',
$ / '25 = | I - VT VT**T | / ( N ulp ) ',
* ..
* .. Local Arrays ..
LOGICAL BW( NMAX ), SEL( NMAX )
- INTEGER IW( NMAX )
+ INTEGER IW( NMAX ), IDUM(NMAX)
DOUBLE PRECISION A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
$ Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
$ R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
SRNAMT = 'DGGSVD3'
INFOT = 1
CALL DGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL DGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL DGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 4
CALL DGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL DGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 6
CALL DGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 10
CALL DGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 12
CALL DGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 16
CALL DGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
- $ 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 18
CALL DGGSVD3( 'N', 'V', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
- $ 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 20
CALL DGGSVD3( 'N', 'N', 'Q', 1, 2, 1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
NT = NT + 11
*
MAXTYP = 26
NTYPES = MIN( MAXTYP, NTYPES )
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
+ CALL XLAENV(1,1)
IF( TSTCHK .AND. TSTERR )
- $ CALL SERRGG( C3, NOUT )
+ & CALL SERRGG( C3, NOUT )
DO 350 I = 1, NPARMS
CALL XLAENV( 1, NBVAL( I ) )
CALL XLAENV( 2, NBMIN( I ) )
*
* Blocked version
*
+ CALL XLAENV(16,1)
CALL SDRGES3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
$ A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
$ A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
* GSV: Generalized Singular Value Decomposition
* ----------------------------------------------
*
+ CALL XLAENV( 1, 1 )
IF( TSTERR )
$ CALL SERRGG( 'GSV', NOUT )
CALL SCKGSV( NN, MVAL, PVAL, NVAL, NTYPES, ISEED, THRESH, NMAX,
* .. Local Scalars ..
CHARACTER*2 C2
INTEGER DUMMYK, DUMMYL, I, IFST, ILO, IHI, ILST, INFO,
- $ J, M, NCYCLE, NT, SDIM, LWORK
+ $ J, M, NCYCLE, NT, SDIM, LWORK, JDUM
REAL ANRM, BNRM, DIF, SCALE, TOLA, TOLB
* ..
* .. Local Arrays ..
LOGICAL BW( NMAX ), SEL( NMAX )
- INTEGER IW( NMAX )
+ INTEGER IW( NMAX ), IDUM(NMAX)
REAL A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
$ Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
$ R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
SRNAMT = 'SGGSVD3'
INFOT = 1
CALL SGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL SGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL SGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 4
CALL SGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL SGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 6
CALL SGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 10
CALL SGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 12
CALL SGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 16
CALL SGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
- $ 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 18
CALL SGGSVD3( 'N', 'V', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
- $ 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 20
CALL SGGSVD3( 'N', 'N', 'Q', 1, 2, 1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
NT = NT + 11
*
MAXTYP = 26
NTYPES = MIN( MAXTYP, NTYPES )
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
+ CALL XLAENV(1,1)
IF( TSTCHK .AND. TSTERR )
$ CALL ZERRGG( C3, NOUT )
DO 350 I = 1, NPARMS
*
* Blocked version
*
+ CALL XLAENV(16,2)
CALL ZDRGEV3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
$ A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
$ A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
* GSV: Generalized Singular Value Decomposition
* ----------------------------------------------
*
+ CALL XLAENV(1,1)
IF( TSTERR )
$ CALL ZERRGG( 'GSV', NOUT )
CALL ZCKGSV( NN, MVAL, PVAL, NVAL, NTYPES, ISEED, THRESH, NMAX,
* ..
* .. Local Arrays ..
LOGICAL BW( NMAX ), SEL( NMAX )
- INTEGER IW( LW )
+ INTEGER IW( LW ), IDUM(NMAX)
DOUBLE PRECISION LS( NMAX ), R1( NMAX ), R2( NMAX ),
$ RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW )
COMPLEX*16 A( NMAX, NMAX ), ALPHA( NMAX ),
SRNAMT = 'ZGGSVD3'
INFOT = 1
CALL ZGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 2
CALL ZGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 3
CALL ZGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 4
CALL ZGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 5
CALL ZGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 6
CALL ZGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 10
CALL ZGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 12
CALL ZGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
- $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 16
CALL ZGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
- $ 2, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 18
CALL ZGGSVD3( 'N', 'V', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
- $ 2, R1, R2, U, 2, V, 1, Q, 1, W, RW, IW, LWORK,
+ $ 2, R1, R2, U, 2, V, 1, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
INFOT = 20
CALL ZGGSVD3( 'N', 'N', 'Q', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
- $ 2, R1, R2, U, 2, V, 2, Q, 1, W, RW, IW, LWORK,
+ $ 2, R1, R2, U, 2, V, 2, Q, 1, W, LWORK, RW, IDUM,
$ INFO )
CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
NT = NT + 11
INFOT = 7
CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ -1, 0, 0, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 8
CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, -1, 0, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 9
CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, -1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 11
CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, -1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 20
CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, -1, A, 1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 22
CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, -1, A, 1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 24
CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, -1, A,
$ 1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
INFOT = 26
CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
$ 1, 1, 1, A, 1, A,
- $ 1, A, 1, A, 1, A,
+ $ 1, A, 1, A, 1, RS,
$ A, 1, A, 1, A, 1, A,
$ -1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )