LAPACK 3.3.1
Linear Algebra PACKage
|
00001 SUBROUTINE ZERRGG( PATH, NUNIT ) 00002 * 00003 * -- LAPACK test routine (version 3.1) -- 00004 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. 00005 * November 2006 00006 * 00007 * .. Scalar Arguments .. 00008 CHARACTER*3 PATH 00009 INTEGER NUNIT 00010 * .. 00011 * 00012 * Purpose 00013 * ======= 00014 * 00015 * ZERRGG tests the error exits for ZGGES, ZGGESX, ZGGEV, ZGGEVX, 00016 * ZGGGLM, ZGGHRD, ZGGLSE, ZGGQRF, ZGGRQF, ZGGSVD, ZGGSVP, ZHGEQZ, 00017 * ZTGEVC, ZTGEXC, ZTGSEN, ZTGSJA, ZTGSNA, and ZTGSYL. 00018 * 00019 * Arguments 00020 * ========= 00021 * 00022 * PATH (input) CHARACTER*3 00023 * The LAPACK path name for the routines to be tested. 00024 * 00025 * NUNIT (input) INTEGER 00026 * The unit number for output. 00027 * 00028 * ===================================================================== 00029 * 00030 * .. Parameters .. 00031 INTEGER NMAX, LW 00032 PARAMETER ( NMAX = 3, LW = 6*NMAX ) 00033 DOUBLE PRECISION ONE, ZERO 00034 PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) 00035 * .. 00036 * .. Local Scalars .. 00037 CHARACTER*2 C2 00038 INTEGER DUMMYK, DUMMYL, I, IFST, ILST, INFO, J, M, 00039 $ NCYCLE, NT, SDIM 00040 DOUBLE PRECISION ANRM, BNRM, DIF, SCALE, TOLA, TOLB 00041 * .. 00042 * .. Local Arrays .. 00043 LOGICAL BW( NMAX ), SEL( NMAX ) 00044 INTEGER IW( LW ) 00045 DOUBLE PRECISION LS( NMAX ), R1( NMAX ), R2( NMAX ), 00046 $ RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW ) 00047 COMPLEX*16 A( NMAX, NMAX ), ALPHA( NMAX ), 00048 $ B( NMAX, NMAX ), BETA( NMAX ), Q( NMAX, NMAX ), 00049 $ TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ), 00050 $ W( LW ), Z( NMAX, NMAX ) 00051 * .. 00052 * .. External Functions .. 00053 LOGICAL LSAMEN, ZLCTES, ZLCTSX 00054 EXTERNAL LSAMEN, ZLCTES, ZLCTSX 00055 * .. 00056 * .. External Subroutines .. 00057 EXTERNAL CHKXER, ZGGES, ZGGESX, ZGGEV, ZGGEVX, ZGGGLM, 00058 $ ZGGHRD, ZGGLSE, ZGGQRF, ZGGRQF, ZGGSVD, ZGGSVP, 00059 $ ZHGEQZ, ZTGEVC, ZTGEXC, ZTGSEN, ZTGSJA, ZTGSNA, 00060 $ ZTGSYL 00061 * .. 00062 * .. Scalars in Common .. 00063 LOGICAL LERR, OK 00064 CHARACTER*32 SRNAMT 00065 INTEGER INFOT, NOUT 00066 * .. 00067 * .. Common blocks .. 00068 COMMON / INFOC / INFOT, NOUT, OK, LERR 00069 COMMON / SRNAMC / SRNAMT 00070 * .. 00071 * .. Executable Statements .. 00072 * 00073 NOUT = NUNIT 00074 WRITE( NOUT, FMT = * ) 00075 C2 = PATH( 2: 3 ) 00076 * 00077 * Set the variables to innocuous values. 00078 * 00079 DO 20 J = 1, NMAX 00080 SEL( J ) = .TRUE. 00081 DO 10 I = 1, NMAX 00082 A( I, J ) = ZERO 00083 B( I, J ) = ZERO 00084 10 CONTINUE 00085 20 CONTINUE 00086 DO 30 I = 1, NMAX 00087 A( I, I ) = ONE 00088 B( I, I ) = ONE 00089 30 CONTINUE 00090 OK = .TRUE. 00091 TOLA = 1.0D0 00092 TOLB = 1.0D0 00093 IFST = 1 00094 ILST = 1 00095 NT = 0 00096 * 00097 * Test error exits for the GG path. 00098 * 00099 IF( LSAMEN( 2, C2, 'GG' ) ) THEN 00100 * 00101 * ZGGHRD 00102 * 00103 SRNAMT = 'ZGGHRD' 00104 INFOT = 1 00105 CALL ZGGHRD( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO ) 00106 CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK ) 00107 INFOT = 2 00108 CALL ZGGHRD( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO ) 00109 CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK ) 00110 INFOT = 3 00111 CALL ZGGHRD( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO ) 00112 CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK ) 00113 INFOT = 4 00114 CALL ZGGHRD( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO ) 00115 CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK ) 00116 INFOT = 5 00117 CALL ZGGHRD( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, INFO ) 00118 CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK ) 00119 INFOT = 7 00120 CALL ZGGHRD( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, INFO ) 00121 CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK ) 00122 INFOT = 9 00123 CALL ZGGHRD( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, INFO ) 00124 CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK ) 00125 INFOT = 11 00126 CALL ZGGHRD( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO ) 00127 CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK ) 00128 INFOT = 13 00129 CALL ZGGHRD( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO ) 00130 CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK ) 00131 NT = NT + 9 00132 * 00133 * ZHGEQZ 00134 * 00135 SRNAMT = 'ZHGEQZ' 00136 INFOT = 1 00137 CALL ZHGEQZ( '/', 'N', 'N', 0, 1, 0, A, 1, B, 1, ALPHA, BETA, 00138 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00139 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00140 INFOT = 2 00141 CALL ZHGEQZ( 'E', '/', 'N', 0, 1, 0, A, 1, B, 1, ALPHA, BETA, 00142 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00143 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00144 INFOT = 3 00145 CALL ZHGEQZ( 'E', 'N', '/', 0, 1, 0, A, 1, B, 1, ALPHA, BETA, 00146 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00147 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00148 INFOT = 4 00149 CALL ZHGEQZ( 'E', 'N', 'N', -1, 0, 0, A, 1, B, 1, ALPHA, BETA, 00150 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00151 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00152 INFOT = 5 00153 CALL ZHGEQZ( 'E', 'N', 'N', 0, 0, 0, A, 1, B, 1, ALPHA, BETA, 00154 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00155 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00156 INFOT = 6 00157 CALL ZHGEQZ( 'E', 'N', 'N', 0, 1, 1, A, 1, B, 1, ALPHA, BETA, 00158 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00159 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00160 INFOT = 8 00161 CALL ZHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 1, B, 2, ALPHA, BETA, 00162 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00163 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00164 INFOT = 10 00165 CALL ZHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 2, B, 1, ALPHA, BETA, 00166 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00167 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00168 INFOT = 14 00169 CALL ZHGEQZ( 'E', 'V', 'N', 2, 1, 1, A, 2, B, 2, ALPHA, BETA, 00170 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00171 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00172 INFOT = 16 00173 CALL ZHGEQZ( 'E', 'N', 'V', 2, 1, 1, A, 2, B, 2, ALPHA, BETA, 00174 $ Q, 1, Z, 1, W, 1, RW, INFO ) 00175 CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK ) 00176 NT = NT + 10 00177 * 00178 * ZTGEVC 00179 * 00180 SRNAMT = 'ZTGEVC' 00181 INFOT = 1 00182 CALL ZTGEVC( '/', 'A', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W, 00183 $ RW, INFO ) 00184 CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK ) 00185 INFOT = 2 00186 CALL ZTGEVC( 'R', '/', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W, 00187 $ RW, INFO ) 00188 CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK ) 00189 INFOT = 4 00190 CALL ZTGEVC( 'R', 'A', SEL, -1, A, 1, B, 1, Q, 1, Z, 1, 0, M, 00191 $ W, RW, INFO ) 00192 CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK ) 00193 INFOT = 6 00194 CALL ZTGEVC( 'R', 'A', SEL, 2, A, 1, B, 2, Q, 1, Z, 2, 0, M, W, 00195 $ RW, INFO ) 00196 CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK ) 00197 INFOT = 8 00198 CALL ZTGEVC( 'R', 'A', SEL, 2, A, 2, B, 1, Q, 1, Z, 2, 0, M, W, 00199 $ RW, INFO ) 00200 CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK ) 00201 INFOT = 10 00202 CALL ZTGEVC( 'L', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W, 00203 $ RW, INFO ) 00204 CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK ) 00205 INFOT = 12 00206 CALL ZTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W, 00207 $ RW, INFO ) 00208 CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK ) 00209 INFOT = 13 00210 CALL ZTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 2, 1, M, W, 00211 $ RW, INFO ) 00212 CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK ) 00213 NT = NT + 8 00214 * 00215 * Test error exits for the GSV path. 00216 * 00217 ELSE IF( LSAMEN( 3, PATH, 'GSV' ) ) THEN 00218 * 00219 * ZGGSVD 00220 * 00221 SRNAMT = 'ZGGSVD' 00222 INFOT = 1 00223 CALL ZGGSVD( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00224 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO ) 00225 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00226 INFOT = 2 00227 CALL ZGGSVD( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00228 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO ) 00229 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00230 INFOT = 3 00231 CALL ZGGSVD( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00232 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO ) 00233 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00234 INFOT = 4 00235 CALL ZGGSVD( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00236 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO ) 00237 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00238 INFOT = 5 00239 CALL ZGGSVD( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B, 00240 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO ) 00241 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00242 INFOT = 6 00243 CALL ZGGSVD( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B, 00244 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO ) 00245 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00246 INFOT = 10 00247 CALL ZGGSVD( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B, 00248 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO ) 00249 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00250 INFOT = 12 00251 CALL ZGGSVD( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B, 00252 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO ) 00253 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00254 INFOT = 16 00255 CALL ZGGSVD( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B, 00256 $ 2, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO ) 00257 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00258 INFOT = 18 00259 CALL ZGGSVD( 'N', 'V', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B, 00260 $ 2, R1, R2, U, 2, V, 1, Q, 1, W, RW, IW, INFO ) 00261 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00262 INFOT = 20 00263 CALL ZGGSVD( 'N', 'N', 'Q', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B, 00264 $ 2, R1, R2, U, 2, V, 2, Q, 1, W, RW, IW, INFO ) 00265 CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK ) 00266 NT = NT + 11 00267 * 00268 * ZGGSVP 00269 * 00270 SRNAMT = 'ZGGSVP' 00271 INFOT = 1 00272 CALL ZGGSVP( '/', 'N', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB, 00273 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W, 00274 $ INFO ) 00275 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00276 INFOT = 2 00277 CALL ZGGSVP( 'N', '/', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB, 00278 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W, 00279 $ INFO ) 00280 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00281 INFOT = 3 00282 CALL ZGGSVP( 'N', 'N', '/', 0, 0, 0, A, 1, B, 1, TOLA, TOLB, 00283 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W, 00284 $ INFO ) 00285 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00286 INFOT = 4 00287 CALL ZGGSVP( 'N', 'N', 'N', -1, 0, 0, A, 1, B, 1, TOLA, TOLB, 00288 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W, 00289 $ INFO ) 00290 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00291 INFOT = 5 00292 CALL ZGGSVP( 'N', 'N', 'N', 0, -1, 0, A, 1, B, 1, TOLA, TOLB, 00293 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W, 00294 $ INFO ) 00295 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00296 INFOT = 6 00297 CALL ZGGSVP( 'N', 'N', 'N', 0, 0, -1, A, 1, B, 1, TOLA, TOLB, 00298 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W, 00299 $ INFO ) 00300 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00301 INFOT = 8 00302 CALL ZGGSVP( 'N', 'N', 'N', 2, 1, 1, A, 1, B, 1, TOLA, TOLB, 00303 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W, 00304 $ INFO ) 00305 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00306 INFOT = 10 00307 CALL ZGGSVP( 'N', 'N', 'N', 1, 2, 1, A, 1, B, 1, TOLA, TOLB, 00308 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W, 00309 $ INFO ) 00310 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00311 INFOT = 16 00312 CALL ZGGSVP( 'U', 'N', 'N', 2, 2, 2, A, 2, B, 2, TOLA, TOLB, 00313 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W, 00314 $ INFO ) 00315 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00316 INFOT = 18 00317 CALL ZGGSVP( 'N', 'V', 'N', 2, 2, 2, A, 2, B, 2, TOLA, TOLB, 00318 $ DUMMYK, DUMMYL, U, 2, V, 1, Q, 1, IW, RW, TAU, W, 00319 $ INFO ) 00320 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00321 INFOT = 20 00322 CALL ZGGSVP( 'N', 'N', 'Q', 2, 2, 2, A, 2, B, 2, TOLA, TOLB, 00323 $ DUMMYK, DUMMYL, U, 2, V, 2, Q, 1, IW, RW, TAU, W, 00324 $ INFO ) 00325 CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK ) 00326 NT = NT + 11 00327 * 00328 * ZTGSJA 00329 * 00330 SRNAMT = 'ZTGSJA' 00331 INFOT = 1 00332 CALL ZTGSJA( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00333 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 00334 $ NCYCLE, INFO ) 00335 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00336 INFOT = 2 00337 CALL ZTGSJA( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00338 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 00339 $ NCYCLE, INFO ) 00340 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00341 INFOT = 3 00342 CALL ZTGSJA( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00343 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 00344 $ NCYCLE, INFO ) 00345 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00346 INFOT = 4 00347 CALL ZTGSJA( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00348 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 00349 $ NCYCLE, INFO ) 00350 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00351 INFOT = 5 00352 CALL ZTGSJA( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B, 00353 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 00354 $ NCYCLE, INFO ) 00355 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00356 INFOT = 6 00357 CALL ZTGSJA( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B, 00358 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 00359 $ NCYCLE, INFO ) 00360 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00361 INFOT = 10 00362 CALL ZTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 0, B, 00363 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 00364 $ NCYCLE, INFO ) 00365 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00366 INFOT = 12 00367 CALL ZTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00368 $ 0, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 00369 $ NCYCLE, INFO ) 00370 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00371 INFOT = 18 00372 CALL ZTGSJA( 'U', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00373 $ 1, TOLA, TOLB, R1, R2, U, 0, V, 1, Q, 1, W, 00374 $ NCYCLE, INFO ) 00375 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00376 INFOT = 20 00377 CALL ZTGSJA( 'N', 'V', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00378 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 0, Q, 1, W, 00379 $ NCYCLE, INFO ) 00380 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00381 INFOT = 22 00382 CALL ZTGSJA( 'N', 'N', 'Q', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 00383 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 0, W, 00384 $ NCYCLE, INFO ) 00385 CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK ) 00386 NT = NT + 11 00387 * 00388 * Test error exits for the GLM path. 00389 * 00390 ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN 00391 * 00392 * ZGGGLM 00393 * 00394 SRNAMT = 'ZGGGLM' 00395 INFOT = 1 00396 CALL ZGGGLM( -1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00397 $ INFO ) 00398 CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK ) 00399 INFOT = 2 00400 CALL ZGGGLM( 0, -1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00401 $ INFO ) 00402 CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK ) 00403 INFOT = 2 00404 CALL ZGGGLM( 0, 1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00405 $ INFO ) 00406 CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK ) 00407 INFOT = 3 00408 CALL ZGGGLM( 0, 0, -1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00409 $ INFO ) 00410 CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK ) 00411 INFOT = 3 00412 CALL ZGGGLM( 1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00413 $ INFO ) 00414 CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK ) 00415 INFOT = 5 00416 CALL ZGGGLM( 0, 0, 0, A, 0, B, 1, TAU, ALPHA, BETA, W, LW, 00417 $ INFO ) 00418 CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK ) 00419 INFOT = 7 00420 CALL ZGGGLM( 0, 0, 0, A, 1, B, 0, TAU, ALPHA, BETA, W, LW, 00421 $ INFO ) 00422 CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK ) 00423 INFOT = 12 00424 CALL ZGGGLM( 1, 1, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, 1, 00425 $ INFO ) 00426 CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK ) 00427 NT = NT + 8 00428 * 00429 * Test error exits for the LSE path. 00430 * 00431 ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN 00432 * 00433 * ZGGLSE 00434 * 00435 SRNAMT = 'ZGGLSE' 00436 INFOT = 1 00437 CALL ZGGLSE( -1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00438 $ INFO ) 00439 CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK ) 00440 INFOT = 2 00441 CALL ZGGLSE( 0, -1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00442 $ INFO ) 00443 CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK ) 00444 INFOT = 3 00445 CALL ZGGLSE( 0, 0, -1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00446 $ INFO ) 00447 CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK ) 00448 INFOT = 3 00449 CALL ZGGLSE( 0, 0, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00450 $ INFO ) 00451 CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK ) 00452 INFOT = 3 00453 CALL ZGGLSE( 0, 1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW, 00454 $ INFO ) 00455 CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK ) 00456 INFOT = 5 00457 CALL ZGGLSE( 0, 0, 0, A, 0, B, 1, TAU, ALPHA, BETA, W, LW, 00458 $ INFO ) 00459 CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK ) 00460 INFOT = 7 00461 CALL ZGGLSE( 0, 0, 0, A, 1, B, 0, TAU, ALPHA, BETA, W, LW, 00462 $ INFO ) 00463 CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK ) 00464 INFOT = 12 00465 CALL ZGGLSE( 1, 1, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, 1, 00466 $ INFO ) 00467 CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK ) 00468 NT = NT + 8 00469 * 00470 * Test error exits for the GQR path. 00471 * 00472 ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN 00473 * 00474 * ZGGQRF 00475 * 00476 SRNAMT = 'ZGGQRF' 00477 INFOT = 1 00478 CALL ZGGQRF( -1, 0, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO ) 00479 CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK ) 00480 INFOT = 2 00481 CALL ZGGQRF( 0, -1, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO ) 00482 CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK ) 00483 INFOT = 3 00484 CALL ZGGQRF( 0, 0, -1, A, 1, ALPHA, B, 1, BETA, W, LW, INFO ) 00485 CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK ) 00486 INFOT = 5 00487 CALL ZGGQRF( 0, 0, 0, A, 0, ALPHA, B, 1, BETA, W, LW, INFO ) 00488 CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK ) 00489 INFOT = 8 00490 CALL ZGGQRF( 0, 0, 0, A, 1, ALPHA, B, 0, BETA, W, LW, INFO ) 00491 CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK ) 00492 INFOT = 11 00493 CALL ZGGQRF( 1, 1, 2, A, 1, ALPHA, B, 1, BETA, W, 1, INFO ) 00494 CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK ) 00495 NT = NT + 6 00496 * 00497 * ZGGRQF 00498 * 00499 SRNAMT = 'ZGGRQF' 00500 INFOT = 1 00501 CALL ZGGRQF( -1, 0, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO ) 00502 CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK ) 00503 INFOT = 2 00504 CALL ZGGRQF( 0, -1, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO ) 00505 CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK ) 00506 INFOT = 3 00507 CALL ZGGRQF( 0, 0, -1, A, 1, ALPHA, B, 1, BETA, W, LW, INFO ) 00508 CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK ) 00509 INFOT = 5 00510 CALL ZGGRQF( 0, 0, 0, A, 0, ALPHA, B, 1, BETA, W, LW, INFO ) 00511 CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK ) 00512 INFOT = 8 00513 CALL ZGGRQF( 0, 0, 0, A, 1, ALPHA, B, 0, BETA, W, LW, INFO ) 00514 CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK ) 00515 INFOT = 11 00516 CALL ZGGRQF( 1, 1, 2, A, 1, ALPHA, B, 1, BETA, W, 1, INFO ) 00517 CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK ) 00518 NT = NT + 6 00519 * 00520 * Test error exits for the ZGS, ZGV, ZGX, and ZXV paths. 00521 * 00522 ELSE IF( LSAMEN( 3, PATH, 'ZGS' ) .OR. 00523 $ LSAMEN( 3, PATH, 'ZGV' ) .OR. 00524 $ LSAMEN( 3, PATH, 'ZGX' ) .OR. LSAMEN( 3, PATH, 'ZXV' ) ) 00525 $ THEN 00526 * 00527 * ZGGES 00528 * 00529 SRNAMT = 'ZGGES ' 00530 INFOT = 1 00531 CALL ZGGES( '/', 'N', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA, 00532 $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO ) 00533 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00534 INFOT = 2 00535 CALL ZGGES( 'N', '/', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA, 00536 $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO ) 00537 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00538 INFOT = 3 00539 CALL ZGGES( 'N', 'V', '/', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA, 00540 $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO ) 00541 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00542 INFOT = 5 00543 CALL ZGGES( 'N', 'V', 'S', ZLCTES, -1, A, 1, B, 1, SDIM, ALPHA, 00544 $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO ) 00545 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00546 INFOT = 7 00547 CALL ZGGES( 'N', 'V', 'S', ZLCTES, 1, A, 0, B, 1, SDIM, ALPHA, 00548 $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO ) 00549 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00550 INFOT = 9 00551 CALL ZGGES( 'N', 'V', 'S', ZLCTES, 1, A, 1, B, 0, SDIM, ALPHA, 00552 $ BETA, Q, 1, U, 1, W, 1, RW, BW, INFO ) 00553 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00554 INFOT = 14 00555 CALL ZGGES( 'N', 'V', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA, 00556 $ BETA, Q, 0, U, 1, W, 1, RW, BW, INFO ) 00557 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00558 INFOT = 14 00559 CALL ZGGES( 'V', 'V', 'S', ZLCTES, 2, A, 2, B, 2, SDIM, ALPHA, 00560 $ BETA, Q, 1, U, 2, W, 1, RW, BW, INFO ) 00561 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00562 INFOT = 16 00563 CALL ZGGES( 'N', 'V', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA, 00564 $ BETA, Q, 1, U, 0, W, 1, RW, BW, INFO ) 00565 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00566 INFOT = 16 00567 CALL ZGGES( 'V', 'V', 'S', ZLCTES, 2, A, 2, B, 2, SDIM, ALPHA, 00568 $ BETA, Q, 2, U, 1, W, 1, RW, BW, INFO ) 00569 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00570 INFOT = 18 00571 CALL ZGGES( 'V', 'V', 'S', ZLCTES, 2, A, 2, B, 2, SDIM, ALPHA, 00572 $ BETA, Q, 2, U, 2, W, 1, RW, BW, INFO ) 00573 CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK ) 00574 NT = NT + 11 00575 * 00576 * ZGGESX 00577 * 00578 SRNAMT = 'ZGGESX' 00579 INFOT = 1 00580 CALL ZGGESX( '/', 'N', 'S', ZLCTSX, 'N', 1, A, 1, B, 1, SDIM, 00581 $ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW, 00582 $ 1, BW, INFO ) 00583 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00584 INFOT = 2 00585 CALL ZGGESX( 'N', '/', 'S', ZLCTSX, 'N', 1, A, 1, B, 1, SDIM, 00586 $ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW, 00587 $ 1, BW, INFO ) 00588 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00589 INFOT = 3 00590 CALL ZGGESX( 'V', 'V', '/', ZLCTSX, 'N', 1, A, 1, B, 1, SDIM, 00591 $ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW, 00592 $ 1, BW, INFO ) 00593 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00594 INFOT = 5 00595 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, '/', 1, A, 1, B, 1, SDIM, 00596 $ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW, 00597 $ 1, BW, INFO ) 00598 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00599 INFOT = 6 00600 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', -1, A, 1, B, 1, SDIM, 00601 $ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW, 00602 $ 1, BW, INFO ) 00603 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00604 INFOT = 8 00605 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 1, A, 0, B, 1, SDIM, 00606 $ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW, 00607 $ 1, BW, INFO ) 00608 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00609 INFOT = 10 00610 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 1, A, 1, B, 0, SDIM, 00611 $ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW, 00612 $ 1, BW, INFO ) 00613 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00614 INFOT = 15 00615 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 1, A, 1, B, 1, SDIM, 00616 $ ALPHA, BETA, Q, 0, U, 1, RCE, RCV, W, 1, RW, IW, 00617 $ 1, BW, INFO ) 00618 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00619 INFOT = 15 00620 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 2, A, 2, B, 2, SDIM, 00621 $ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW, 00622 $ 1, BW, INFO ) 00623 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00624 INFOT = 17 00625 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 1, A, 1, B, 1, SDIM, 00626 $ ALPHA, BETA, Q, 1, U, 0, RCE, RCV, W, 1, RW, IW, 00627 $ 1, BW, INFO ) 00628 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00629 INFOT = 17 00630 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 2, A, 2, B, 2, SDIM, 00631 $ ALPHA, BETA, Q, 2, U, 1, RCE, RCV, W, 1, RW, IW, 00632 $ 1, BW, INFO ) 00633 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00634 INFOT = 21 00635 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 2, A, 2, B, 2, SDIM, 00636 $ ALPHA, BETA, Q, 2, U, 2, RCE, RCV, W, 1, RW, IW, 00637 $ 1, BW, INFO ) 00638 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00639 INFOT = 24 00640 CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'V', 1, A, 1, B, 1, SDIM, 00641 $ ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 32, RW, IW, 00642 $ 0, BW, INFO ) 00643 CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK ) 00644 NT = NT + 13 00645 * 00646 * ZGGEV 00647 * 00648 SRNAMT = 'ZGGEV ' 00649 INFOT = 1 00650 CALL ZGGEV( '/', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1, 00651 $ W, 1, RW, INFO ) 00652 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00653 INFOT = 2 00654 CALL ZGGEV( 'N', '/', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1, 00655 $ W, 1, RW, INFO ) 00656 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00657 INFOT = 3 00658 CALL ZGGEV( 'V', 'V', -1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1, 00659 $ W, 1, RW, INFO ) 00660 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00661 INFOT = 5 00662 CALL ZGGEV( 'V', 'V', 1, A, 0, B, 1, ALPHA, BETA, Q, 1, U, 1, 00663 $ W, 1, RW, INFO ) 00664 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00665 INFOT = 7 00666 CALL ZGGEV( 'V', 'V', 1, A, 1, B, 0, ALPHA, BETA, Q, 1, U, 1, 00667 $ W, 1, RW, INFO ) 00668 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00669 INFOT = 11 00670 CALL ZGGEV( 'N', 'V', 1, A, 1, B, 1, ALPHA, BETA, Q, 0, U, 1, 00671 $ W, 1, RW, INFO ) 00672 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00673 INFOT = 11 00674 CALL ZGGEV( 'V', 'V', 2, A, 2, B, 2, ALPHA, BETA, Q, 1, U, 2, 00675 $ W, 1, RW, INFO ) 00676 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00677 INFOT = 13 00678 CALL ZGGEV( 'V', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q, 2, U, 0, 00679 $ W, 1, RW, INFO ) 00680 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00681 INFOT = 13 00682 CALL ZGGEV( 'V', 'V', 2, A, 2, B, 2, ALPHA, BETA, Q, 2, U, 1, 00683 $ W, 1, RW, INFO ) 00684 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00685 INFOT = 15 00686 CALL ZGGEV( 'V', 'V', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1, 00687 $ W, 1, RW, INFO ) 00688 CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK ) 00689 NT = NT + 10 00690 * 00691 * ZGGEVX 00692 * 00693 SRNAMT = 'ZGGEVX' 00694 INFOT = 1 00695 CALL ZGGEVX( '/', 'N', 'N', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q, 00696 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00697 $ RW, IW, BW, INFO ) 00698 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00699 INFOT = 2 00700 CALL ZGGEVX( 'N', '/', 'N', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q, 00701 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00702 $ RW, IW, BW, INFO ) 00703 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00704 INFOT = 3 00705 CALL ZGGEVX( 'N', 'N', '/', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q, 00706 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00707 $ RW, IW, BW, INFO ) 00708 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00709 INFOT = 4 00710 CALL ZGGEVX( 'N', 'N', 'N', '/', 1, A, 1, B, 1, ALPHA, BETA, Q, 00711 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00712 $ RW, IW, BW, INFO ) 00713 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00714 INFOT = 5 00715 CALL ZGGEVX( 'N', 'N', 'N', 'N', -1, A, 1, B, 1, ALPHA, BETA, 00716 $ Q, 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 00717 $ 1, RW, IW, BW, INFO ) 00718 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00719 INFOT = 7 00720 CALL ZGGEVX( 'N', 'N', 'N', 'N', 1, A, 0, B, 1, ALPHA, BETA, Q, 00721 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00722 $ RW, IW, BW, INFO ) 00723 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00724 INFOT = 9 00725 CALL ZGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 0, ALPHA, BETA, Q, 00726 $ 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00727 $ RW, IW, BW, INFO ) 00728 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00729 INFOT = 13 00730 CALL ZGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q, 00731 $ 0, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00732 $ RW, IW, BW, INFO ) 00733 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00734 INFOT = 13 00735 CALL ZGGEVX( 'N', 'V', 'N', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q, 00736 $ 1, U, 2, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00737 $ RW, IW, BW, INFO ) 00738 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00739 INFOT = 15 00740 CALL ZGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q, 00741 $ 1, U, 0, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00742 $ RW, IW, BW, INFO ) 00743 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00744 INFOT = 15 00745 CALL ZGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q, 00746 $ 2, U, 1, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1, 00747 $ RW, IW, BW, INFO ) 00748 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00749 INFOT = 25 00750 CALL ZGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q, 00751 $ 2, U, 2, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 0, 00752 $ RW, IW, BW, INFO ) 00753 CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK ) 00754 NT = NT + 12 00755 * 00756 * ZTGEXC 00757 * 00758 SRNAMT = 'ZTGEXC' 00759 INFOT = 3 00760 CALL ZTGEXC( .TRUE., .TRUE., -1, A, 1, B, 1, Q, 1, Z, 1, IFST, 00761 $ ILST, INFO ) 00762 CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK ) 00763 INFOT = 5 00764 CALL ZTGEXC( .TRUE., .TRUE., 1, A, 0, B, 1, Q, 1, Z, 1, IFST, 00765 $ ILST, INFO ) 00766 CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK ) 00767 INFOT = 7 00768 CALL ZTGEXC( .TRUE., .TRUE., 1, A, 1, B, 0, Q, 1, Z, 1, IFST, 00769 $ ILST, INFO ) 00770 CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK ) 00771 INFOT = 9 00772 CALL ZTGEXC( .FALSE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST, 00773 $ ILST, INFO ) 00774 CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK ) 00775 INFOT = 9 00776 CALL ZTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST, 00777 $ ILST, INFO ) 00778 CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK ) 00779 INFOT = 11 00780 CALL ZTGEXC( .TRUE., .FALSE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST, 00781 $ ILST, INFO ) 00782 CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK ) 00783 INFOT = 11 00784 CALL ZTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST, 00785 $ ILST, INFO ) 00786 CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK ) 00787 NT = NT + 7 00788 * 00789 * ZTGSEN 00790 * 00791 SRNAMT = 'ZTGSEN' 00792 INFOT = 1 00793 CALL ZTGSEN( -1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA, 00794 $ BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 00795 $ INFO ) 00796 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00797 INFOT = 5 00798 CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, -1, A, 1, B, 1, ALPHA, 00799 $ BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 00800 $ INFO ) 00801 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00802 INFOT = 7 00803 CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 0, B, 1, ALPHA, 00804 $ BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 00805 $ INFO ) 00806 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00807 INFOT = 9 00808 CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 0, ALPHA, 00809 $ BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 00810 $ INFO ) 00811 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00812 INFOT = 13 00813 CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA, 00814 $ BETA, Q, 0, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 00815 $ INFO ) 00816 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00817 INFOT = 15 00818 CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA, 00819 $ BETA, Q, 1, Z, 0, M, TOLA, TOLB, RCV, W, 1, IW, 1, 00820 $ INFO ) 00821 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00822 INFOT = 21 00823 CALL ZTGSEN( 3, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA, 00824 $ BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, -5, IW, 00825 $ 1, INFO ) 00826 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00827 INFOT = 23 00828 CALL ZTGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA, 00829 $ BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 00830 $ 0, INFO ) 00831 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00832 INFOT = 23 00833 CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA, 00834 $ BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 00835 $ 0, INFO ) 00836 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00837 INFOT = 23 00838 CALL ZTGSEN( 5, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA, 00839 $ BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 00840 $ 1, INFO ) 00841 CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK ) 00842 NT = NT + 11 00843 * 00844 * ZTGSNA 00845 * 00846 SRNAMT = 'ZTGSNA' 00847 INFOT = 1 00848 CALL ZTGSNA( '/', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 00849 $ 1, M, W, 1, IW, INFO ) 00850 CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK ) 00851 INFOT = 2 00852 CALL ZTGSNA( 'B', '/', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 00853 $ 1, M, W, 1, IW, INFO ) 00854 CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK ) 00855 INFOT = 4 00856 CALL ZTGSNA( 'B', 'A', SEL, -1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 00857 $ 1, M, W, 1, IW, INFO ) 00858 CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK ) 00859 INFOT = 6 00860 CALL ZTGSNA( 'B', 'A', SEL, 1, A, 0, B, 1, Q, 1, U, 1, R1, R2, 00861 $ 1, M, W, 1, IW, INFO ) 00862 CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK ) 00863 INFOT = 8 00864 CALL ZTGSNA( 'B', 'A', SEL, 1, A, 1, B, 0, Q, 1, U, 1, R1, R2, 00865 $ 1, M, W, 1, IW, INFO ) 00866 CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK ) 00867 INFOT = 10 00868 CALL ZTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 0, U, 1, R1, R2, 00869 $ 1, M, W, 1, IW, INFO ) 00870 CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK ) 00871 INFOT = 12 00872 CALL ZTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 0, R1, R2, 00873 $ 1, M, W, 1, IW, INFO ) 00874 CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK ) 00875 INFOT = 15 00876 CALL ZTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 00877 $ 0, M, W, 1, IW, INFO ) 00878 CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK ) 00879 INFOT = 18 00880 CALL ZTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 00881 $ 1, M, W, 0, IW, INFO ) 00882 CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK ) 00883 NT = NT + 9 00884 * 00885 * ZTGSYL 00886 * 00887 SRNAMT = 'ZTGSYL' 00888 INFOT = 1 00889 CALL ZTGSYL( '/', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 00890 $ SCALE, DIF, W, 1, IW, INFO ) 00891 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00892 INFOT = 2 00893 CALL ZTGSYL( 'N', -1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 00894 $ SCALE, DIF, W, 1, IW, INFO ) 00895 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00896 INFOT = 3 00897 CALL ZTGSYL( 'N', 0, 0, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 00898 $ SCALE, DIF, W, 1, IW, INFO ) 00899 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00900 INFOT = 4 00901 CALL ZTGSYL( 'N', 0, 1, 0, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 00902 $ SCALE, DIF, W, 1, IW, INFO ) 00903 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00904 INFOT = 6 00905 CALL ZTGSYL( 'N', 0, 1, 1, A, 0, B, 1, Q, 1, U, 1, V, 1, Z, 1, 00906 $ SCALE, DIF, W, 1, IW, INFO ) 00907 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00908 INFOT = 8 00909 CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 0, Q, 1, U, 1, V, 1, Z, 1, 00910 $ SCALE, DIF, W, 1, IW, INFO ) 00911 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00912 INFOT = 10 00913 CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 0, U, 1, V, 1, Z, 1, 00914 $ SCALE, DIF, W, 1, IW, INFO ) 00915 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00916 INFOT = 12 00917 CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 0, V, 1, Z, 1, 00918 $ SCALE, DIF, W, 1, IW, INFO ) 00919 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00920 INFOT = 14 00921 CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 0, Z, 1, 00922 $ SCALE, DIF, W, 1, IW, INFO ) 00923 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00924 INFOT = 16 00925 CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 0, 00926 $ SCALE, DIF, W, 1, IW, INFO ) 00927 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00928 INFOT = 20 00929 CALL ZTGSYL( 'N', 1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 00930 $ SCALE, DIF, W, 1, IW, INFO ) 00931 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00932 INFOT = 20 00933 CALL ZTGSYL( 'N', 2, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 00934 $ SCALE, DIF, W, 1, IW, INFO ) 00935 CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK ) 00936 NT = NT + 12 00937 END IF 00938 * 00939 * Print a summary line. 00940 * 00941 IF( OK ) THEN 00942 WRITE( NOUT, FMT = 9999 )PATH, NT 00943 ELSE 00944 WRITE( NOUT, FMT = 9998 )PATH 00945 END IF 00946 * 00947 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits (', 00948 $ I3, ' tests done)' ) 00949 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ', 00950 $ 'exits ***' ) 00951 * 00952 RETURN 00953 * 00954 * End of ZERRGG 00955 * 00956 END