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