75 DOUBLE PRECISION RCOND
79 DOUBLE PRECISION C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
80 $ RF( NMAX ), RW( NMAX )
81 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
82 $ E( NMAX ), W( 2*NMAX ), X( NMAX )
102 COMMON / infoc / infot, nout, ok, lerr
103 COMMON / srnamc / srnamt
106 INTRINSIC dble, dcmplx
111 WRITE( nout, fmt = * )
118 a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
119 $ -1.d0 / dble( i+j ) )
120 af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
121 $ -1.d0 / dble( i+j ) )
136 IF( lsamen( 2, c2,
'GE' ) )
THEN
142 CALL zgesv( -1, 0, a, 1, ip, b, 1, info )
143 CALL chkxer(
'ZGESV ', infot, nout, lerr, ok )
145 CALL zgesv( 0, -1, a, 1, ip, b, 1, info )
146 CALL chkxer(
'ZGESV ', infot, nout, lerr, ok )
148 CALL zgesv( 2, 1, a, 1, ip, b, 2, info )
149 CALL chkxer(
'ZGESV ', infot, nout, lerr, ok )
151 CALL zgesv( 2, 1, a, 2, ip, b, 1, info )
152 CALL chkxer(
'ZGESV ', infot, nout, lerr, ok )
158 CALL zgesvx(
'/',
'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
159 $ x, 1, rcond, r1, r2, w, rw, info )
160 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
162 CALL zgesvx( 'n
', '/
', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
163 $ X, 1, RCOND, R1, R2, W, RW, INFO )
164 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
166 CALL ZGESVX( 'n
', 'n
', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
167 $ X, 1, RCOND, R1, R2, W, RW, INFO )
168 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
170 CALL ZGESVX( 'n
', 'n
', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
171 $ X, 1, RCOND, R1, R2, W, RW, INFO )
172 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
174 CALL ZGESVX( 'n
', 'n
', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
175 $ X, 2, RCOND, R1, R2, W, RW, INFO )
176 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
178 CALL ZGESVX( 'n
', 'n
', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
179 $ X, 2, RCOND, R1, R2, W, RW, INFO )
180 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
183 CALL ZGESVX( 'f
', 'n
', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
184 $ X, 1, RCOND, R1, R2, W, RW, INFO )
185 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
188 CALL ZGESVX( 'f
', 'n
', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
189 $ X, 1, RCOND, R1, R2, W, RW, INFO )
190 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
193 CALL ZGESVX( 'f
', 'n
', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
194 $ X, 1, RCOND, R1, R2, W, RW, INFO )
195 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
197 CALL ZGESVX( 'n
', 'n
', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
198 $ X, 2, RCOND, R1, R2, W, RW, INFO )
199 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
201 CALL ZGESVX( 'n
', 'n
', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
202 $ X, 1, RCOND, R1, R2, W, RW, INFO )
203 CALL CHKXER( 'zgesvx', INFOT, NOUT, LERR, OK )
205 ELSE IF( LSAMEN( 2, C2, 'gb
' ) ) THEN
211 CALL ZGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
212 CALL CHKXER( 'zgbsv ', INFOT, NOUT, LERR, OK )
214 CALL ZGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
215 CALL CHKXER( 'zgbsv ', INFOT, NOUT, LERR, OK )
217 CALL ZGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
218 CALL CHKXER( 'zgbsv ', INFOT, NOUT, LERR, OK )
220 CALL ZGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
221 CALL CHKXER( 'zgbsv ', INFOT, NOUT, LERR, OK )
223 CALL ZGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
224 CALL CHKXER( 'zgbsv ', INFOT, NOUT, LERR, OK )
226 CALL ZGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
227 CALL CHKXER( 'zgbsv ', INFOT, NOUT, LERR, OK )
233 CALL ZGBSVX( '/
', 'n
', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
234 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
235 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
237 CALL ZGBSVX( 'n
', '/
', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
238 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
239 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
241 CALL ZGBSVX( 'n
', 'n
', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
242 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
243 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
245 CALL ZGBSVX( 'n
', 'n
', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
246 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
247 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
249 CALL ZGBSVX( 'n
', 'n
', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
250 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
251 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
253 CALL ZGBSVX( 'n
', 'n
', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
254 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
255 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
257 CALL ZGBSVX( 'n
', 'n
', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
258 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
259 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
261 CALL ZGBSVX( 'n
', 'n
', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
262 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
263 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
266 CALL ZGBSVX( 'f
', 'n
', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
267 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
268 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
271 CALL ZGBSVX( 'f
', 'n
', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
272 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
273 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
276 CALL ZGBSVX( 'f
', 'n
', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
277 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
278 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
280 CALL ZGBSVX( 'n
', 'n
', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
281 $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
282 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
284 CALL ZGBSVX( 'n
', 'n
', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
285 $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
286 CALL CHKXER( 'zgbsvx', INFOT, NOUT, LERR, OK )
288 ELSE IF( LSAMEN( 2, C2, 'gt
' ) ) THEN
294 CALL ZGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
296 CALL CHKXER( 'zgtsv ', INFOT, NOUT, LERR, OK )
298 CALL ZGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
300 CALL CHKXER( 'zgtsv ', infot, nout, lerr, ok )
302 CALL zgtsv( 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1, info )
303 CALL chkxer(
'ZGTSV ', infot, nout, lerr, ok )
309 CALL zgtsvx(
'/',
'N', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
310 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
311 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
312 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
314 CALL zgtsvx(
'N',
'/', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
315 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
316 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
317 CALL chkxer(
'ZGTSVX', infot, nout,
319 CALL zgtsvx(
'N',
'N', -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
320 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
321 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
322 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
324 CALL zgtsvx(
'N',
'N', 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
325 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
326 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
327 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
329 CALL zgtsvx(
'N',
'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
330 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
331 $ ip, b, 1, x, 2, rcond, r1, r2, w, rw, info )
332 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
334 CALL zgtsvx(
'N',
'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
335 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
336 $ ip, b, 2, x, 1, rcond, r1, r2, w, rw, info )
337 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
339 ELSE IF( lsamen( 2, c2,
'PO' ) )
THEN
345 CALL zposv(
'/', 0, 0, a, 1, b, 1, info )
346 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
348 CALL zposv(
'U', -1, 0, a, 1, b, 1, info )
349 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
351 CALL zposv(
'U', 0, -1, a, 1, b, 1, info )
352 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
354 CALL zposv(
'U', 2, 0, a, 1, b, 2, info )
355 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
357 CALL zposv(
'U', 2, 0, a, 2, b, 1, info )
358 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
364 CALL zposvx(
'/',
'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
365 $ rcond, r1, r2, w, rw, info )
366 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
368 CALL zposvx(
'N',
'/', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
369 $ rcond, r1, r2, w, rw, info )
370 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
372 CALL zposvx(
'N',
'U', -1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
373 $ rcond, r1, r2, w, rw, info )
374 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
376 CALL zposvx(
'N',
'U', 0, -1, a, 1, af, 1, eq, c, b, 1, x, 1,
377 $ rcond, r1, r2, w, rw, info )
378 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
380 CALL zposvx(
'N',
'U', 2, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
381 $ rcond, r1, r2, w, rw, info )
382 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
384 CALL zposvx(
'N',
'U', 2, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
385 $ rcond, r1, r2, w, rw, info )
386 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
389 CALL zposvx(
'F',
'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
390 $ rcond, r1, r2, w, rw, info )
391 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
394 CALL zposvx(
'F',
'U', 1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
395 $ rcond, r1, r2, w, rw, info )
396 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
398 CALL zposvx(
'N',
'U', 2, 0, a, 2, af, 2, eq, c, b, 1, x, 2,
399 $ rcond, r1, r2, w, rw, info )
400 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
402 CALL zposvx(
'N',
'U', 2, 0, a, 2, af, 2, eq, c, b, 2, x, 1,
403 $ rcond, r1, r2, w, rw, info )
404 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
406 ELSE IF( lsamen( 2, c2,
'PP' ) )
THEN
412 CALL zppsv(
'/', 0, 0, a, b, 1, info )
413 CALL chkxer(
'ZPPSV ', infot, nout, lerr, ok )
415 CALL zppsv(
'U', -1, 0, a, b, 1, info )
416 CALL chkxer(
'ZPPSV ', infot, nout, lerr, ok )
418 CALL zppsv(
'U', 0, -1, a, b, 1, info )
419 CALL chkxer(
'ZPPSV ', infot, nout, lerr, ok )
421 CALL zppsv(
'U', 2, 0, a, b, 1, info )
422 CALL chkxer(
'ZPPSV ', infot, nout, lerr, ok )
428 CALL zppsvx(
'/',
'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
429 $ r1, r2, w, rw, info )
430 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
432 CALL zppsvx(
'N',
'/', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
433 $ r1, r2, w, rw, info )
434 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
436 CALL zppsvx(
'N',
'U', -1, 0, a, af, eq, c, b, 1, x, 1, rcond,
437 $ r1, r2, w, rw, info )
438 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
440 CALL zppsvx(
'N',
'U', 0, -1, a, af, eq, c, b, 1, x, 1, rcond,
441 $ r1, r2, w, rw, info )
442 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
445 CALL zppsvx(
'F',
'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
446 $ r1, r2, w, rw, info )
447 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
450 CALL zppsvx(
'F',
'U', 1, 0, a, af, eq, c, b, 1, x, 1, rcond,
451 $ r1, r2, w, rw, info )
452 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
454 CALL zppsvx(
'N',
'U', 2, 0, a, af, eq, c, b, 1, x, 2, rcond,
455 $ r1, r2, w, rw, info )
456 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
458 CALL zppsvx(
'N',
'U', 2, 0, a, af, eq, c, b, 2, x, 1, rcond,
459 $ r1, r2, w, rw, info )
460 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
462 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
468 CALL zpbsv(
'/', 0, 0, 0, a, 1, b,
469 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
471 CALL zpbsv(
'U', -1, 0, 0, a, 1, b, 1, info )
472 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
474 CALL zpbsv(
'U', 1, -1, 0, a, 1, b, 1, info )
475 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
477 CALL zpbsv(
'U', 0, 0, -1, a, 1, b, 1, info )
478 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
480 CALL zpbsv(
'U', 1, 1, 0, a, 1, b, 2, info )
481 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
483 CALL zpbsv(
'U', 2, 0, 0, a, 1, b, 1, info )
484 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
490 CALL zpbsvx(
'/',
'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
491 $ rcond, r1, r2, w, rw, info )
492 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
494 CALL zpbsvx( 'n
', '/
', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
495 $ RCOND, R1, R2, W, RW, INFO )
496 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
498 CALL ZPBSVX( 'n
', 'u
', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
499 $ 1, RCOND, R1, R2, W, RW, INFO )
500 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
502 CALL ZPBSVX( 'n
', 'u
', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
503 $ 1, RCOND, R1, R2, W, RW, INFO )
504 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
506 CALL ZPBSVX( 'n
', 'u
', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
507 $ 1, RCOND, R1, R2, W, RW, INFO )
508 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
510 CALL ZPBSVX( 'n
', 'u
', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
511 $ RCOND, R1, R2, W, RW, INFO )
512 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
514 CALL ZPBSVX( 'n
', 'u
', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
515 $ RCOND, R1, R2, W, RW, INFO )
516 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
519 CALL ZPBSVX( 'f
', 'u
', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
520 $ RCOND, R1, R2, W, RW, INFO )
521 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
524 CALL ZPBSVX( 'f
', 'u
', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
525 $ RCOND, R1, R2, W, RW, INFO )
526 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
528 CALL ZPBSVX( 'n
', 'u
', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
529 $ RCOND, R1, R2, W, RW, INFO )
530 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
532 CALL ZPBSVX( 'n
', 'u
', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
533 $ RCOND, R1, R2, W, RW, INFO )
534 CALL CHKXER( 'zpbsvx', INFOT, NOUT, LERR, OK )
536 ELSE IF( LSAMEN( 2, C2, 'pt
' ) ) THEN
542 CALL ZPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
543 CALL CHKXER( 'zptsv ', INFOT, NOUT, LERR, OK )
545 CALL ZPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
546 CALL CHKXER( 'zptsv ', INFOT, NOUT, LERR, OK )
548 CALL ZPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
549 CALL CHKXER( 'zptsv ', INFOT, NOUT, LERR, OK )
555 CALL ZPTSVX( '/
', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
556 $ 1, RCOND, R1, R2, W, RW, INFO )
557 CALL CHKXER( 'zptsvx', INFOT, NOUT, LERR, OK )
559 CALL ZPTSVX( 'n
', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
560 $ 1, RCOND, R1, R2, W, RW, INFO )
561 CALL CHKXER( 'zptsvx', INFOT, NOUT, LERR, OK )
563 CALL ZPTSVX( 'n
', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
564 $ 1, RCOND, R1, R2, W, RW, INFO )
565 CALL CHKXER( 'zptsvx', INFOT, NOUT, LERR, OK )
567 CALL ZPTSVX( 'n
', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
568 $ 2, RCOND, R1, R2, W, RW, INFO )
569 CALL CHKXER( 'zptsvx', INFOT, NOUT, LERR, OK )
571 CALL ZPTSVX( 'n
', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
572 $ 1, RCOND, R1, R2, W, RW, INFO )
573 CALL CHKXER( 'zptsvx', INFOT, NOUT, LERR, OK )
575 ELSE IF( LSAMEN( 2, C2, 'he
' ) ) THEN
581 CALL ZHESV( '/
', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
582 CALL CHKXER( 'zhesv ', INFOT, NOUT, LERR, OK )
584 CALL ZHESV( 'u
', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
585 CALL CHKXER( 'zhesv ', INFOT, NOUT, LERR, OK )
587 CALL ZHESV( 'u
', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
588 CALL CHKXER( 'zhesv ', INFOT, NOUT, LERR, OK )
590 CALL ZHESV( 'u
', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
591 CALL CHKXER( 'zhesv ', INFOT, NOUT, LERR, OK )
593 CALL ZHESV( 'u
', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
594 CALL CHKXER( 'zhesv ', INFOT, NOUT, LERR, OK )
596 CALL ZHESV( 'u
', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
597 CALL CHKXER( 'zhesv ', INFOT, NOUT, LERR, OK )
599 CALL ZHESV( 'u
', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
600 CALL CHKXER( 'zhesv ', INFOT, NOUT, LERR, OK )
606 CALL ZHESVX( '/
', 'u
', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
607 $ RCOND, R1, R2, W, 1, RW, INFO )
608 CALL CHKXER( 'zhesvx', INFOT, NOUT, LERR, OK )
610 CALL ZHESVX( 'n
', '/
', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
611 $ RCOND, R1, R2, W, 1, RW, INFO )
612 CALL CHKXER( 'zhesvx', INFOT, NOUT, LERR, OK )
614 CALL ZHESVX( 'n
', 'u
', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
615 $ RCOND, R1, R2, W, 1, RW, INFO )
616 CALL CHKXER( 'zhesvx', INFOT, NOUT, LERR, OK )
618 CALL ZHESVX( 'n
', 'u
', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
619 $ RCOND, R1, R2, W, 1, RW, INFO )
620 CALL CHKXER( 'zhesvx', INFOT, NOUT, LERR, OK )
622 CALL ZHESVX( 'n
', 'u
', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
623 $ RCOND, R1, R2, W, 4, RW, INFO )
624 CALL CHKXER( 'zhesvx', INFOT, NOUT, LERR, OK )
626 CALL ZHESVX( 'n
', 'u
', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
627 $ RCOND, R1, R2, W, 4, RW, INFO )
628 CALL CHKXER( 'zhesvx', INFOT, NOUT, LERR, OK )
630 CALL ZHESVX( 'n
', 'u
', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
631 $ RCOND, R1, R2, W, 4, RW, INFO )
632 CALL CHKXER( 'zhesvx', INFOT, NOUT, LERR, OK )
634 CALL ZHESVX( 'n
', 'u
', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
635 $ RCOND, R1, R2, W, 4, RW, INFO )
636 CALL CHKXER( 'zhesvx', INFOT, NOUT, LERR, OK )
638 CALL ZHESVX( 'n
', 'u
', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
639 $ RCOND, R1, R2, W, 3, RW, INFO )
640 CALL CHKXER( 'zhesvx', INFOT, NOUT, LERR, OK )
642 ELSE IF( LSAMEN( 2, C2, 'hr
' ) ) THEN
648 CALL ZHESV_ROOK( '/
', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
649 CALL CHKXER( 'zhesv_rook', INFOT, NOUT, LERR, OK )
651 CALL ZHESV_ROOK( 'u
', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
652 CALL CHKXER( 'zhesv_rook', INFOT, NOUT, LERR, OK )
654 CALL ZHESV_ROOK( 'u
', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
655 CALL CHKXER( 'zhesv_rook', INFOT, NOUT, LERR, OK )
657 CALL ZHESV_ROOK( 'u
', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
658 CALL CHKXER( 'zhesv_rook', INFOT, NOUT, LERR, OK )
660 CALL ZHESV_ROOK( 'u
', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
661 CALL CHKXER( 'zhesv_rook', INFOT, NOUT, LERR, OK )
663 CALL ZHESV_ROOK( 'u
', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
664 CALL CHKXER( 'zhesv_rook', INFOT, NOUT, LERR, OK )
666 ELSE IF( LSAMEN( 2, C2, 'hk
' ) ) THEN
680 CALL ZHESV_RK( '/
', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
681 CALL CHKXER( 'zhesv_rk', INFOT, NOUT, LERR, OK )
683 CALL ZHESV_RK( 'u
', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
684 CALL CHKXER( 'zhesv_rk', INFOT, NOUT, LERR, OK )
686 CALL ZHESV_RK( 'u
', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
687 CALL CHKXER( 'zhesv_rk', INFOT, NOUT, LERR, OK )
689 CALL ZHESV_RK( 'u
', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
690 CALL CHKXER( 'zhesv_rk', INFOT, NOUT, LERR, OK )
692 CALL ZHESV_RK( 'u
', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
693 CALL CHKXER( 'zhesv_rk', INFOT, NOUT, LERR, OK )
695 CALL ZHESV_RK( 'u
', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
696 CALL CHKXER( 'zhesv_rk', INFOT, NOUT, LERR, OK )
698 CALL ZHESV_RK( 'u
', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
699 CALL CHKXER( 'zhesv_rk', INFOT, NOUT, LERR, OK )
701 ELSE IF( LSAMEN( 2, C2, 'ha
' ) ) THEN
707 CALL ZHESV_AA( '/
', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
708 CALL CHKXER( 'zhesv_aa', INFOT, NOUT, LERR, OK )
710 CALL ZHESV_AA( 'u
', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
711 CALL CHKXER( 'zhesv_aa', INFOT, NOUT, LERR, OK )
713 CALL ZHESV_AA( 'u
', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
714 CALL CHKXER( 'zhesv_aa', INFOT, NOUT, LERR, OK )
716 CALL ZHESV_AA( 'u
', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
717 CALL CHKXER( 'zhesv_aa', INFOT, NOUT, LERR, OK )
719 ELSE IF( LSAMEN( 2, C2, 'h2
' ) ) THEN
725 CALL ZHESV_AA_2STAGE( '/
', 0, 0, A, 1, A, 1, IP, IP, B, 1,
729 CALL ZHESV_AA_2STAGE( 'u
', -1, 0, A, 1, A, 1, IP, IP, B, 1,
733 CALL ZHESV_AA_2STAGE( 'u
', 0, -1, A, 1, A, 1, IP, IP, B, 1,
737 CALL ZHESV_AA_2STAGE( 'u
', 2, 1, A, 1, A, 1, IP, IP, B, 1,
741 CALL ZHESV_AA_2STAGE( 'u
', 2, 1, A, 2, A, 8, IP, IP, B, 1,
745 CALL ZHESV_AA_2STAGE( 'u
', 2, 1, A, 2, A, 1, IP, IP, B, 2,
749 ELSE IF( LSAMEN( 2, C2, 's2
' ) ) THEN
755 CALL ZSYSV_AA_2STAGE( '/
', 0, 0, A, 1, A, 1, IP, IP, B, 1,
759 CALL ZSYSV_AA_2STAGE( 'u
', -1, 0, A, 1, A, 1, IP, IP, B, 1,
763 CALL ZSYSV_AA_2STAGE( 'u
', 0, -1, A, 1, A, 1, IP, IP, B, 1,
767 CALL ZSYSV_AA_2STAGE( 'u
', 2, 1, A, 1, A, 1, IP, IP, B, 1,
771 CALL ZSYSV_AA_2STAGE( 'u
', 2, 1, A, 2, A, 8, IP, IP, B, 1,
775 CALL ZSYSV_AA_2STAGE( 'u
', 2, 1, A, 2, A, 1, IP, IP, B, 2,
779 ELSE IF( LSAMEN( 2, C2, 'hp
' ) ) THEN
785 CALL ZHPSV( '/
', 0, 0, A, IP, B, 1, INFO )
786 CALL CHKXER( 'zhpsv ', INFOT, NOUT, LERR, OK )
788 CALL ZHPSV( 'u
', -1, 0, A, IP, B, 1, INFO )
789 CALL CHKXER( 'zhpsv ', INFOT, NOUT, LERR, OK )
791 CALL ZHPSV( 'u
', 0, -1, A, IP, B, 1, INFO )
792 CALL CHKXER( 'zhpsv ', INFOT, NOUT, LERR, OK )
794 CALL ZHPSV( 'u
', 2, 0, A, IP, B, 1, INFO )
795 CALL CHKXER( 'zhpsv ', INFOT, NOUT, LERR, OK )
801 CALL ZHPSVX( '/
', 'u
', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
803 CALL CHKXER( 'zhpsvx', INFOT, NOUT, LERR, OK )
805 CALL ZHPSVX( 'n
', '/
', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
807 CALL CHKXER( 'zhpsvx', INFOT, NOUT, LERR, OK )
809 CALL ZHPSVX( 'n
', 'u
', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
811 CALL CHKXER( 'zhpsvx', INFOT, NOUT, LERR, OK )
813 CALL ZHPSVX( 'n
', 'u
', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
815 CALL CHKXER( 'zhpsvx', INFOT, NOUT, LERR, OK )
817 CALL ZHPSVX( 'n
', 'u
', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
819 CALL CHKXER( 'zhpsvx', INFOT, NOUT, LERR, OK )
821 CALL ZHPSVX( 'n
', 'u
', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
823 CALL CHKXER( 'zhpsvx', INFOT, NOUT, LERR, OK )
825 ELSE IF( LSAMEN( 2, C2, 'sy
' ) ) THEN
831 CALL ZSYSV( '/
', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
832 CALL CHKXER( 'zsysv ', INFOT, NOUT, LERR, OK )
834 CALL ZSYSV( 'u
', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
835 CALL CHKXER( 'zsysv ', INFOT, NOUT, LERR, OK )
837 CALL ZSYSV( 'u
', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
838 CALL CHKXER( 'zsysv ', INFOT, NOUT, LERR, OK )
840 CALL ZSYSV( 'u
', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
841 CALL CHKXER( 'zsysv ', INFOT, NOUT, LERR, OK )
843 CALL ZSYSV( 'u
', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
844 CALL CHKXER( 'zsysv ', INFOT, NOUT, LERR, OK )
846 CALL ZSYSV( 'u
', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
847 CALL CHKXER( 'zsysv ', INFOT, NOUT, LERR, OK )
853 CALL ZSYSVX( '/
', 'u
', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
854 $ RCOND, R1, R2, W, 1, RW, INFO )
855 CALL CHKXER( 'zsysvx', INFOT, NOUT, LERR, OK )
857 CALL ZSYSVX( 'n
', '/
', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
858 $ RCOND, R1, R2, W, 1, RW, INFO )
859 CALL CHKXER( 'zsysvx', INFOT, NOUT, LERR, OK )
861 CALL ZSYSVX( 'n
', 'u
', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
862 $ RCOND, R1, R2, W, 1, RW, INFO )
863 CALL CHKXER( 'zsysvx', INFOT, NOUT, LERR, OK )
865 CALL ZSYSVX( 'n',
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
867 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
869 CALL zsysvx(
'N',
'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
870 $ rcond, r1, r2, w, 4, rw, info )
871 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
873 CALL zsysvx(
'N',
'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
874 $ rcond, r1, r2, w, 4, rw, info )
875 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
877 CALL zsysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
878 $ rcond, r1, r2, w, 4, rw, info )
879 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
881 CALL zsysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
882 $ rcond, r1, r2, w, 4, rw, info )
883 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
885 CALL zsysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
886 $ rcond, r1, r2, w, 3, rw, info )
887 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
889 ELSE IF( lsamen( 2, c2,
'SR' ) )
THEN
893 srnamt =
'ZSYSV_ROOK'
895 CALL zsysv_rook(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
896 CALL chkxer(
'ZSYSV_ROOK', infot, nout, lerr, ok )
898 CALL zsysv_rook(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
899 CALL chkxer(
'ZSYSV_ROOK', infot, nout, lerr, ok )
901 CALL zsysv_rook( 'u
', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
902 CALL CHKXER( 'zsysv_rook', INFOT, NOUT, LERR, OK )
904 CALL ZSYSV_ROOK( 'u
', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
905 CALL CHKXER( 'zsysv_rook', INFOT, NOUT, LERR, OK )
907 CALL ZSYSV_ROOK( 'u
', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
908 CALL CHKXER( 'zsysv_rook', INFOT, NOUT, LERR, OK )
910 CALL ZSYSV_ROOK( 'u
', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
912 ELSE IF( LSAMEN( 2, C2, 'sk
' ) ) THEN
926 CALL ZSYSV_RK( '/
', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
927 CALL CHKXER( 'zsysv_rk', INFOT, NOUT, LERR, OK )
929 CALL ZSYSV_RK( 'u
', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
930 CALL CHKXER( 'zsysv_rk', INFOT, NOUT, LERR, OK )
932 CALL ZSYSV_RK( 'u
', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
933 CALL CHKXER( 'zsysv_rk', INFOT, NOUT, LERR, OK )
935 CALL ZSYSV_RK( 'u
', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
936 CALL CHKXER( 'zsysv_rk', INFOT, NOUT, LERR, OK )
938 CALL ZSYSV_RK( 'u
', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
939 CALL CHKXER( 'zsysv_rk', INFOT, NOUT, LERR, OK )
941 CALL ZSYSV_RK( 'u
', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
942 CALL CHKXER( 'zsysv_rk', INFOT, NOUT, LERR, OK )
944 CALL ZSYSV_RK( 'u
', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
945 CALL CHKXER( 'zsysv_rk', INFOT, NOUT, LERR, OK )
947 ELSE IF( LSAMEN( 2, C2, 'sp
' ) ) THEN
953 CALL ZSPSV( '/
', 0, 0, A, IP, B, 1, INFO )
954 CALL CHKXER( 'zspsv ', INFOT, NOUT, LERR, OK )
956 CALL ZSPSV( 'u
', -1, 0, A, IP, B, 1, INFO )
957 CALL CHKXER( 'zspsv ', INFOT, NOUT, LERR, OK )
959 CALL ZSPSV( 'u
', 0, -1, A, IP, B, 1, INFO )
960 CALL CHKXER( 'zspsv ', INFOT, NOUT, LERR, OK )
962 CALL ZSPSV( 'u
', 2, 0, A, IP, B, 1, INFO )
963 CALL CHKXER( 'zspsv ', INFOT, NOUT, LERR, OK )
969 CALL ZSPSVX( '/
', 'u
', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
971 CALL CHKXER( 'zspsvx', INFOT, NOUT, LERR, OK )
973 CALL ZSPSVX( 'n
', '/
', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
975 CALL CHKXER( 'zspsvx', INFOT, NOUT, LERR, OK )
977 CALL ZSPSVX( 'n
', 'u
', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
979 CALL CHKXER( 'zspsvx', INFOT, NOUT, LERR, OK )
981 CALL ZSPSVX( 'n
', 'u
', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
983 CALL CHKXER( 'zspsvx', INFOT, NOUT, LERR, OK )
985 CALL ZSPSVX( 'n
', 'u
', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
987 CALL CHKXER( 'zspsvx', INFOT, NOUT, LERR, OK )
989 CALL ZSPSVX( 'n
', 'u
', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
991 CALL CHKXER( 'zspsvx', INFOT, NOUT, LERR, OK )
997 WRITE( NOUT, FMT = 9999 )PATH
999 WRITE( NOUT, FMT = 9998 )PATH
1002 9999 FORMAT( 1X, A3, ' drivers passed
the tests of
the error exits' )
1003 9998
FORMAT(
' *** ', a3,
' drivers failed the tests of the error ',