summaryrefslogtreecommitdiff
path: root/TESTING/EIG/zerrgg.f
diff options
context:
space:
mode:
authorphilippe.theveny <philippe.theveny@8a072113-8704-0410-8d35-dd094bca7971>2015-02-24 23:50:54 +0000
committerphilippe.theveny <philippe.theveny@8a072113-8704-0410-8d35-dd094bca7971>2015-02-24 23:50:54 +0000
commit6273f536d15680513e8cddfc4d8baa88ad2c64df (patch)
treea7f3303149eda2542ad7cf05fb470b60872e0161 /TESTING/EIG/zerrgg.f
parentc95be035b79cca2ba9e68c961d537344c5390765 (diff)
downloadlapack-6273f536d15680513e8cddfc4d8baa88ad2c64df.tar.gz
lapack-6273f536d15680513e8cddfc4d8baa88ad2c64df.tar.bz2
lapack-6273f536d15680513e8cddfc4d8baa88ad2c64df.zip
Add xGGHD3: blocked Hessenberg reduction, code from Daniel Kressner.
Add xGGES3 and xGGEV3: computation of the Schur form, the Schur vectors, and the generalized eigenvalues using the blocked Hessenberg reduction.
Diffstat (limited to 'TESTING/EIG/zerrgg.f')
-rw-r--r--TESTING/EIG/zerrgg.f176
1 files changed, 156 insertions, 20 deletions
diff --git a/TESTING/EIG/zerrgg.f b/TESTING/EIG/zerrgg.f
index a3f116a3..5ed7ee61 100644
--- a/TESTING/EIG/zerrgg.f
+++ b/TESTING/EIG/zerrgg.f
@@ -2,19 +2,19 @@
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
* Definition:
* ===========
*
* SUBROUTINE ZERRGG( PATH, NUNIT )
-*
+*
* .. Scalar Arguments ..
* CHARACTER*3 PATH
* INTEGER NUNIT
* ..
-*
+*
*
*> \par Purpose:
* =============
@@ -22,8 +22,9 @@
*> \verbatim
*>
*> ZERRGG tests the error exits for ZGGES, ZGGESX, ZGGEV, ZGGEVX,
-*> ZGGGLM, ZGGHRD, ZGGLSE, ZGGQRF, ZGGRQF, ZGGSVD, ZGGSVP, ZHGEQZ,
-*> ZTGEVC, ZTGEXC, ZTGSEN, ZTGSJA, ZTGSNA, ZTGSYL, and ZUNCSD.
+*> ZGGES3, ZGGEV3, ZGGGLM, ZGGHRD, ZGGLSE, ZGGQRF, ZGGRQF, ZGGSVD,
+*> ZGGSVP, ZHGEQZ, ZTGEVC, ZTGEXC, ZTGSEN, ZTGSJA, ZTGSNA, ZTGSYL,
+*> and ZUNCSD.
*> \endverbatim
*
* Arguments:
@@ -44,10 +45,10 @@
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \date November 2011
*
@@ -95,10 +96,10 @@
EXTERNAL LSAMEN, ZLCTES, ZLCTSX
* ..
* .. External Subroutines ..
- EXTERNAL CHKXER, ZGGES, ZGGESX, ZGGEV, ZGGEVX, ZGGGLM,
+ EXTERNAL CHKXER, ZGGES, ZGGESX, ZGGEV, ZGGEVX, ZGGGLM,
$ ZGGHRD, ZGGLSE, ZGGQRF, ZGGRQF, ZGGSVD, ZGGSVP,
$ ZHGEQZ, ZTGEVC, ZTGEXC, ZTGSEN, ZTGSJA, ZTGSNA,
- $ ZTGSYL, ZUNCSD
+ $ ZTGSYL, ZUNCSD, ZGGES3, ZGGEV3, ZGGHD3
* ..
* .. Scalars in Common ..
LOGICAL LERR, OK
@@ -171,6 +172,47 @@
CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
NT = NT + 9
*
+* ZGGHD3
+*
+ SRNAMT = 'ZGGHD3'
+ INFOT = 1
+ CALL ZGGHD3( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
+ $ INFO )
+ CALL CHKXER( 'ZGGHD3', INFOT, NOUT, LERR, OK )
+ INFOT = 2
+ CALL ZGGHD3( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
+ $ INFO )
+ CALL CHKXER( 'ZGGHD3', INFOT, NOUT, LERR, OK )
+ INFOT = 3
+ CALL ZGGHD3( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
+ $ INFO )
+ CALL CHKXER( 'ZGGHD3', INFOT, NOUT, LERR, OK )
+ INFOT = 4
+ CALL ZGGHD3( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW,
+ $ INFO )
+ CALL CHKXER( 'ZGGHD3', INFOT, NOUT, LERR, OK )
+ INFOT = 5
+ CALL ZGGHD3( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, W, LW,
+ $ INFO )
+ CALL CHKXER( 'ZGGHD3', INFOT, NOUT, LERR, OK )
+ INFOT = 7
+ CALL ZGGHD3( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, W, LW,
+ $ INFO )
+ CALL CHKXER( 'ZGGHD3', INFOT, NOUT, LERR, OK )
+ INFOT = 9
+ CALL ZGGHD3( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, W, LW,
+ $ INFO )
+ CALL CHKXER( 'ZGGHD3', INFOT, NOUT, LERR, OK )
+ INFOT = 11
+ CALL ZGGHD3( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, W, LW,
+ $ INFO )
+ CALL CHKXER( 'ZGGHD3', INFOT, NOUT, LERR, OK )
+ INFOT = 13
+ CALL ZGGHD3( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, W, LW,
+ $ INFO )
+ CALL CHKXER( 'ZGGHD3', INFOT, NOUT, LERR, OK )
+ NT = NT + 9
+*
* ZHGEQZ
*
SRNAMT = 'ZHGEQZ'
@@ -520,56 +562,56 @@
$ -1, 0, 0, A, 1, A,
$ 1, A, 1, A, 1, A,
$ A, 1, A, 1, A, 1, A,
- $ 1, W, LW, RW, LW, IW, INFO )
+ $ 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,
$ A, 1, A, 1, A, 1, A,
- $ 1, W, LW, RW, LW, IW, INFO )
+ $ 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,
$ A, 1, A, 1, A, 1, A,
- $ 1, W, LW, RW, LW, IW, INFO )
+ $ 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,
$ A, 1, A, 1, A, 1, A,
- $ 1, W, LW, RW, LW, IW, INFO )
+ $ 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,
$ A, -1, A, 1, A, 1, A,
- $ 1, W, LW, RW, LW, IW, INFO )
+ $ 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,
$ A, 1, A, -1, A, 1, A,
- $ 1, W, LW, RW, LW, IW, INFO )
+ $ 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,
$ A, 1, A, 1, A, -1, A,
- $ 1, W, LW, RW, LW, IW, INFO )
+ $ 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,
$ A, 1, A, 1, A, 1, A,
- $ -1, W, LW, RW, LW, IW, INFO )
+ $ -1, W, LW, RW, LW, IW, INFO )
CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
NT = NT + 8
*
@@ -679,6 +721,55 @@
CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
NT = NT + 11
*
+* ZGGES3
+*
+ SRNAMT = 'ZGGES3'
+ INFOT = 1
+ CALL ZGGES3( '/', 'N', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
+ $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 2
+ CALL ZGGES3( 'N', '/', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
+ $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 3
+ CALL ZGGES3( 'N', 'V', '/', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
+ $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 5
+ CALL ZGGES3( 'N', 'V', 'S', ZLCTES, -1, A, 1, B, 1, SDIM,
+ $ ALPHA, BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 7
+ CALL ZGGES3( 'N', 'V', 'S', ZLCTES, 1, A, 0, B, 1, SDIM, ALPHA,
+ $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 9
+ CALL ZGGES3( 'N', 'V', 'S', ZLCTES, 1, A, 1, B, 0, SDIM, ALPHA,
+ $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 14
+ CALL ZGGES3( 'N', 'V', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
+ $ BETA, Q, 0, U, 1, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 14
+ CALL ZGGES3( 'V', 'V', 'S', ZLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
+ $ BETA, Q, 1, U, 2, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 16
+ CALL ZGGES3( 'N', 'V', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
+ $ BETA, Q, 1, U, 0, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 16
+ CALL ZGGES3( 'V', 'V', 'S', ZLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
+ $ BETA, Q, 2, U, 1, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ INFOT = 18
+ CALL ZGGES3( 'V', 'V', 'S', ZLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
+ $ BETA, Q, 2, U, 2, W, 1, RW, BW, INFO )
+ CALL CHKXER( 'ZGGES3', INFOT, NOUT, LERR, OK )
+ NT = NT + 11
+*
* ZGGESX
*
SRNAMT = 'ZGGESX'
@@ -794,6 +885,51 @@
CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
NT = NT + 10
*
+* ZGGEV3
+*
+ SRNAMT = 'ZGGEV3'
+ INFOT = 1
+ CALL ZGGEV3( '/', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ INFOT = 2
+ CALL ZGGEV3( 'N', '/', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ INFOT = 3
+ CALL ZGGEV3( 'V', 'V', -1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ INFOT = 5
+ CALL ZGGEV3( 'V', 'V', 1, A, 0, B, 1, ALPHA, BETA, Q, 1, U, 1,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ INFOT = 7
+ CALL ZGGEV3( 'V', 'V', 1, A, 1, B, 0, ALPHA, BETA, Q, 1, U, 1,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ INFOT = 11
+ CALL ZGGEV3( 'N', 'V', 1, A, 1, B, 1, ALPHA, BETA, Q, 0, U, 1,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ INFOT = 11
+ CALL ZGGEV3( 'V', 'V', 2, A, 2, B, 2, ALPHA, BETA, Q, 1, U, 2,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ INFOT = 13
+ CALL ZGGEV3( 'V', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q, 2, U, 0,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ INFOT = 13
+ CALL ZGGEV3( 'V', 'V', 2, A, 2, B, 2, ALPHA, BETA, Q, 2, U, 1,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ INFOT = 15
+ CALL ZGGEV3( 'V', 'V', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
+ $ W, 1, RW, INFO )
+ CALL CHKXER( 'ZGGEV3', INFOT, NOUT, LERR, OK )
+ NT = NT + 10
+*
* ZGGEVX
*
SRNAMT = 'ZGGEVX'