75 DOUBLE PRECISION RCOND
79 DOUBLE PRECISION ( 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, lerr, ok )
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, 1, INFO )
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
646 srnamt =
'ZHESV_ROOK'
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 )
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,
769 CALL chkxer(
'ZSYSV_AA_2STAGE', infot, nout, lerr, ok )
771 CALL zsysv_aa_2stage(
'U', 2, 1, a, 2, a, 8, ip, ip, b, 1,
773 CALL chkxer(
'ZSYSV_AA_2STAGE', infot, nout, lerr, ok )
775 CALL zsysv_aa_2stage(
'U', 2, 1, a, 2, a, 1, ip, ip, b, 2,
777 CALL chkxer(
'ZSYSV_AA_2STAGE', infot, nout, lerr, ok )
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
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,
866 $ rcond, r1, r2, w, 1, rw, info )
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
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 ',