00001 SUBROUTINE ZERRGG( PATH, NUNIT )
00002
00003
00004
00005
00006
00007
00008 CHARACTER*3 PATH
00009 INTEGER NUNIT
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
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
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
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
00053 LOGICAL LSAMEN, ZLCTES, ZLCTSX
00054 EXTERNAL LSAMEN, ZLCTES, ZLCTSX
00055
00056
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
00063 LOGICAL LERR, OK
00064 CHARACTER*32 SRNAMT
00065 INTEGER INFOT, NOUT
00066
00067
00068 COMMON / INFOC / INFOT, NOUT, OK, LERR
00069 COMMON / SRNAMC / SRNAMT
00070
00071
00072
00073 NOUT = NUNIT
00074 WRITE( NOUT, FMT = * )
00075 C2 = PATH( 2: 3 )
00076
00077
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
00098
00099 IF( LSAMEN( 2, C2, 'GG' ) ) THEN
00100
00101
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
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
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
00216
00217 ELSE IF( LSAMEN( 3, PATH, 'GSV' ) ) THEN
00218
00219
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
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
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
00389
00390 ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN
00391
00392
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
00430
00431 ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN
00432
00433
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
00471
00472 ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN
00473
00474
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
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
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
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
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
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
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
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
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
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
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
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
00955
00956 END