72 parameter ( nmax = 4 )
78 DOUBLE PRECISION rcond
82 DOUBLE PRECISION c( nmax ), r( nmax ), r1( nmax ), r2( nmax ),
83 $ rf( nmax ), rw( nmax )
84 COMPLEX*16 a( nmax, nmax ), af( nmax, nmax ), b( nmax ),
85 $ w( 2*nmax ), x( nmax )
104 COMMON / infoc / infot, nout, ok, lerr
105 COMMON / srnamc / srnamt
108 INTRINSIC dble, dcmplx
113 WRITE( nout, fmt = * )
120 a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
121 $ -1.d0 / dble( i+j ) )
122 af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
123 $ -1.d0 / dble( i+j ) )
137 IF(
lsamen( 2, c2,
'GE' ) )
THEN
143 CALL zgesv( -1, 0, a, 1, ip, b, 1, info )
144 CALL chkxer(
'ZGESV ', infot, nout, lerr, ok )
146 CALL zgesv( 0, -1, a, 1, ip, b, 1, info )
147 CALL chkxer(
'ZGESV ', infot, nout, lerr, ok )
149 CALL zgesv( 2, 1, a, 1, ip, b, 2, info )
150 CALL chkxer(
'ZGESV ', infot, nout, lerr, ok )
152 CALL zgesv( 2, 1, a, 2, ip, b, 1, info )
153 CALL chkxer(
'ZGESV ', infot, nout, lerr, ok )
159 CALL zgesvx(
'/',
'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
160 $ x, 1, rcond, r1, r2, w, rw, info )
161 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
163 CALL zgesvx(
'N',
'/', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
164 $ x, 1, rcond, r1, r2, w, rw, info )
165 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
167 CALL zgesvx(
'N',
'N', -1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
168 $ x, 1, rcond, r1, r2, w, rw, info )
169 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
171 CALL zgesvx(
'N',
'N', 0, -1, a, 1, af, 1, ip, eq, r, c, b, 1,
172 $ x, 1, rcond, r1, r2, w, rw, info )
173 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
175 CALL zgesvx(
'N',
'N', 2, 1, a, 1, af, 2, ip, eq, r, c, b, 2,
176 $ x, 2, rcond, r1, r2, w, rw, info )
177 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
179 CALL zgesvx(
'N',
'N', 2, 1, a, 2, af, 1, ip, eq, r, c, b, 2,
180 $ x, 2, rcond, r1, r2, w, rw, info )
181 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
184 CALL zgesvx(
'F',
'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
185 $ x, 1, rcond, r1, r2, w, rw, info )
186 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
189 CALL zgesvx(
'F',
'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
190 $ x, 1, rcond, r1, r2, w, rw, info )
191 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
194 CALL zgesvx(
'F',
'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
195 $ x, 1, rcond, r1, r2, w, rw, info )
196 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
198 CALL zgesvx(
'N',
'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 1,
199 $ x, 2, rcond, r1, r2, w, rw, info )
200 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
202 CALL zgesvx(
'N',
'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 2,
203 $ x, 1, rcond, r1, r2, w, rw, info )
204 CALL chkxer(
'ZGESVX', infot, nout, lerr, ok )
206 ELSE IF(
lsamen( 2, c2,
'GB' ) )
THEN
212 CALL zgbsv( -1, 0, 0, 0, a, 1, ip, b, 1, info )
213 CALL chkxer(
'ZGBSV ', infot, nout, lerr, ok )
215 CALL zgbsv( 1, -1, 0, 0, a, 1, ip, b, 1, info )
216 CALL chkxer(
'ZGBSV ', infot, nout, lerr, ok )
218 CALL zgbsv( 1, 0, -1, 0, a, 1, ip, b, 1, info )
219 CALL chkxer(
'ZGBSV ', infot, nout, lerr, ok )
221 CALL zgbsv( 0, 0, 0, -1, a, 1, ip, b, 1, info )
222 CALL chkxer(
'ZGBSV ', infot, nout, lerr, ok )
224 CALL zgbsv( 1, 1, 1, 0, a, 3, ip, b, 1, info )
225 CALL chkxer(
'ZGBSV ', infot, nout, lerr, ok )
227 CALL zgbsv( 2, 0, 0, 0, a, 1, ip, b, 1, info )
228 CALL chkxer(
'ZGBSV ', infot, nout, lerr, ok )
234 CALL zgbsvx(
'/',
'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
235 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
236 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
238 CALL zgbsvx(
'N',
'/', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
239 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
240 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
242 CALL zgbsvx(
'N',
'N', -1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
243 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
244 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
246 CALL zgbsvx(
'N',
'N', 1, -1, 0, 0, a, 1, af, 1, ip, eq, r, c,
247 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
248 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
250 CALL zgbsvx(
'N',
'N', 1, 0, -1, 0, a, 1, af, 1, ip, eq, r, c,
251 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
252 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
254 CALL zgbsvx(
'N',
'N', 0, 0, 0, -1, a, 1, af, 1, ip, eq, r, c,
255 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
256 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
258 CALL zgbsvx(
'N',
'N', 1, 1, 1, 0, a, 2, af, 4, ip, eq, r, c,
259 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
260 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
262 CALL zgbsvx(
'N',
'N', 1, 1, 1, 0, a, 3, af, 3, ip, eq, r, c,
263 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
264 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
267 CALL zgbsvx(
'F',
'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
268 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
269 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
272 CALL zgbsvx(
'F',
'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
273 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
274 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
277 CALL zgbsvx(
'F',
'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
278 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
279 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
281 CALL zgbsvx(
'N',
'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
282 $ b, 1, x, 2, rcond, r1, r2, w, rw, info )
283 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
285 CALL zgbsvx(
'N',
'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
286 $ b, 2, x, 1, rcond, r1, r2, w, rw, info )
287 CALL chkxer(
'ZGBSVX', infot, nout, lerr, ok )
289 ELSE IF(
lsamen( 2, c2,
'GT' ) )
THEN
295 CALL zgtsv( -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
297 CALL chkxer(
'ZGTSV ', infot, nout, lerr, ok )
299 CALL zgtsv( 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
301 CALL chkxer(
'ZGTSV ', infot, nout, lerr, ok )
303 CALL zgtsv( 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1, info )
304 CALL chkxer(
'ZGTSV ', infot, nout, lerr, ok )
310 CALL zgtsvx(
'/',
'N', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
311 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
312 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
313 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
315 CALL zgtsvx(
'N',
'/', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
316 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
317 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
318 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
320 CALL zgtsvx(
'N',
'N', -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
321 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
322 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
323 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
325 CALL zgtsvx(
'N',
'N', 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
326 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
327 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
328 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
330 CALL zgtsvx(
'N',
'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
331 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
332 $ ip, b, 1, x, 2, rcond, r1, r2, w, rw, info )
333 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
335 CALL zgtsvx(
'N',
'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
336 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
337 $ ip, b, 2, x, 1, rcond, r1, r2, w, rw, info )
338 CALL chkxer(
'ZGTSVX', infot, nout, lerr, ok )
340 ELSE IF(
lsamen( 2, c2,
'PO' ) )
THEN
346 CALL zposv(
'/', 0, 0, a, 1, b, 1, info )
347 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
349 CALL zposv(
'U', -1, 0, a, 1, b, 1, info )
350 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
352 CALL zposv(
'U', 0, -1, a, 1, b, 1, info )
353 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
355 CALL zposv(
'U', 2, 0, a, 1, b, 2, info )
356 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
358 CALL zposv(
'U', 2, 0, a, 2, b, 1, info )
359 CALL chkxer(
'ZPOSV ', infot, nout, lerr, ok )
365 CALL zposvx(
'/',
'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
366 $ rcond, r1, r2, w, rw, info )
367 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
369 CALL zposvx(
'N',
'/', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
370 $ rcond, r1, r2, w, rw, info )
371 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
373 CALL zposvx(
'N',
'U', -1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
374 $ rcond, r1, r2, w, rw, info )
375 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
377 CALL zposvx(
'N',
'U', 0, -1, a, 1, af, 1, eq, c, b, 1, x, 1,
378 $ rcond, r1, r2, w, rw, info )
379 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
381 CALL zposvx(
'N',
'U', 2, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
382 $ rcond, r1, r2, w, rw, info )
383 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
385 CALL zposvx(
'N',
'U', 2, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
386 $ rcond, r1, r2, w, rw, info )
387 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
390 CALL zposvx(
'F',
'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
391 $ rcond, r1, r2, w, rw, info )
392 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
395 CALL zposvx(
'F',
'U', 1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
396 $ rcond, r1, r2, w, rw, info )
397 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
399 CALL zposvx(
'N',
'U', 2, 0, a, 2, af, 2, eq, c, b, 1, x, 2,
400 $ rcond, r1, r2, w, rw, info )
401 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
403 CALL zposvx(
'N',
'U', 2, 0, a, 2, af, 2, eq, c, b, 2, x, 1,
404 $ rcond, r1, r2, w, rw, info )
405 CALL chkxer(
'ZPOSVX', infot, nout, lerr, ok )
407 ELSE IF(
lsamen( 2, c2,
'PP' ) )
THEN
413 CALL zppsv(
'/', 0, 0, a, b, 1, info )
414 CALL chkxer(
'ZPPSV ', infot, nout, lerr, ok )
416 CALL zppsv(
'U', -1, 0, a, b, 1, info )
417 CALL chkxer(
'ZPPSV ', infot, nout, lerr, ok )
419 CALL zppsv(
'U', 0, -1, a, b, 1, info )
420 CALL chkxer(
'ZPPSV ', infot, nout, lerr, ok )
422 CALL zppsv(
'U', 2, 0, a, b, 1, info )
423 CALL chkxer(
'ZPPSV ', infot, nout, lerr, ok )
429 CALL zppsvx(
'/',
'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
430 $ r1, r2, w, rw, info )
431 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
433 CALL zppsvx(
'N',
'/', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
434 $ r1, r2, w, rw, info )
435 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
437 CALL zppsvx(
'N',
'U', -1, 0, a, af, eq, c, b, 1, x, 1, rcond,
438 $ r1, r2, w, rw, info )
439 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
441 CALL zppsvx(
'N',
'U', 0, -1, a, af, eq, c, b, 1, x, 1, rcond,
442 $ r1, r2, w, rw, info )
443 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
446 CALL zppsvx(
'F',
'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
447 $ r1, r2, w, rw, info )
448 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
451 CALL zppsvx(
'F',
'U', 1, 0, a, af, eq, c, b, 1, x, 1, rcond,
452 $ r1, r2, w, rw, info )
453 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
455 CALL zppsvx(
'N',
'U', 2, 0, a, af, eq, c, b, 1, x, 2, rcond,
456 $ r1, r2, w, rw, info )
457 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
459 CALL zppsvx(
'N',
'U', 2, 0, a, af, eq, c, b, 2, x, 1, rcond,
460 $ r1, r2, w, rw, info )
461 CALL chkxer(
'ZPPSVX', infot, nout, lerr, ok )
463 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
469 CALL zpbsv(
'/', 0, 0, 0, a, 1, b, 1, info )
470 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
472 CALL zpbsv(
'U', -1, 0, 0, a, 1, b, 1, info )
473 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
475 CALL zpbsv(
'U', 1, -1, 0, a, 1, b, 1, info )
476 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
478 CALL zpbsv(
'U', 0, 0, -1, a, 1, b, 1, info )
479 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
481 CALL zpbsv(
'U', 1, 1, 0, a, 1, b, 2, info )
482 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
484 CALL zpbsv(
'U', 2, 0, 0, a, 1, b, 1, info )
485 CALL chkxer(
'ZPBSV ', infot, nout, lerr, ok )
491 CALL zpbsvx(
'/',
'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
492 $ rcond, r1, r2, w, rw, info )
493 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
495 CALL zpbsvx(
'N',
'/', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
496 $ rcond, r1, r2, w, rw, info )
497 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
499 CALL zpbsvx(
'N',
'U', -1, 0, 0, a, 1, af, 1, eq, c, b, 1, x,
500 $ 1, rcond, r1, r2, w, rw, info )
501 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
503 CALL zpbsvx(
'N',
'U', 1, -1, 0, a, 1, af, 1, eq, c, b, 1, x,
504 $ 1, rcond, r1, r2, w, rw, info )
505 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
507 CALL zpbsvx(
'N',
'U', 0, 0, -1, a, 1, af, 1, eq, c, b, 1, x,
508 $ 1, rcond, r1, r2, w, rw, info )
509 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
511 CALL zpbsvx(
'N',
'U', 1, 1, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
512 $ rcond, r1, r2, w, rw, info )
513 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
515 CALL zpbsvx(
'N',
'U', 1, 1, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
516 $ rcond, r1, r2, w, rw, info )
517 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
520 CALL zpbsvx(
'F',
'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
521 $ rcond, r1, r2, w, rw, info )
522 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
525 CALL zpbsvx(
'F',
'U', 1, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
526 $ rcond, r1, r2, w, rw, info )
527 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
529 CALL zpbsvx(
'N',
'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 2,
530 $ rcond, r1, r2, w, rw, info )
531 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
533 CALL zpbsvx(
'N',
'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 2, x, 1,
534 $ rcond, r1, r2, w, rw, info )
535 CALL chkxer(
'ZPBSVX', infot, nout, lerr, ok )
537 ELSE IF(
lsamen( 2, c2,
'PT' ) )
THEN
543 CALL zptsv( -1, 0, r, a( 1, 1 ), b, 1, info )
544 CALL chkxer(
'ZPTSV ', infot, nout, lerr, ok )
546 CALL zptsv( 0, -1, r, a( 1, 1 ), b, 1, info )
547 CALL chkxer(
'ZPTSV ', infot, nout, lerr, ok )
549 CALL zptsv( 2, 0, r, a( 1, 1 ), b, 1, info )
550 CALL chkxer(
'ZPTSV ', infot, nout, lerr, ok )
556 CALL zptsvx(
'/', 0, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
557 $ 1, rcond, r1, r2, w, rw, info )
558 CALL chkxer(
'ZPTSVX', infot, nout, lerr, ok )
560 CALL zptsvx(
'N', -1, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
561 $ 1, rcond, r1, r2, w, rw, info )
562 CALL chkxer(
'ZPTSVX', infot, nout, lerr, ok )
564 CALL zptsvx(
'N', 0, -1, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
565 $ 1, rcond, r1, r2, w, rw, info )
566 CALL chkxer(
'ZPTSVX', infot, nout, lerr, ok )
568 CALL zptsvx(
'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
569 $ 2, rcond, r1, r2, w, rw, info )
570 CALL chkxer(
'ZPTSVX', infot, nout, lerr, ok )
572 CALL zptsvx(
'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 2, x,
573 $ 1, rcond, r1, r2, w, rw, info )
574 CALL chkxer(
'ZPTSVX', infot, nout, lerr, ok )
576 ELSE IF(
lsamen( 2, c2,
'HE' ) )
THEN
582 CALL zhesv(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
583 CALL chkxer(
'ZHESV ', infot, nout, lerr, ok )
585 CALL zhesv(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
586 CALL chkxer(
'ZHESV ', infot, nout, lerr, ok )
588 CALL zhesv(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
589 CALL chkxer(
'ZHESV ', infot, nout, lerr, ok )
591 CALL zhesv(
'U', 2, 0, a, 1, ip, b, 2, w, 1, info )
592 CALL chkxer(
'ZHESV ', infot, nout, lerr, ok )
594 CALL zhesv(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
595 CALL chkxer(
'ZHESV ', infot, nout, lerr, ok )
601 CALL zhesvx(
'/',
'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
602 $ rcond, r1, r2, w, 1, rw, info )
603 CALL chkxer(
'ZHESVX', infot, nout, lerr, ok )
605 CALL zhesvx(
'N',
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
606 $ rcond, r1, r2, w, 1, rw, info )
607 CALL chkxer(
'ZHESVX', infot, nout, lerr, ok )
609 CALL zhesvx(
'N',
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
610 $ rcond, r1, r2, w, 1, rw, info )
611 CALL chkxer(
'ZHESVX', infot, nout, lerr, ok )
613 CALL zhesvx(
'N',
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
614 $ rcond, r1, r2, w, 1, rw, info )
615 CALL chkxer(
'ZHESVX', infot, nout, lerr, ok )
617 CALL zhesvx(
'N',
'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
618 $ rcond, r1, r2, w, 4, rw, info )
619 CALL chkxer(
'ZHESVX', infot, nout, lerr, ok )
621 CALL zhesvx(
'N',
'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
622 $ rcond, r1, r2, w, 4, rw, info )
623 CALL chkxer(
'ZHESVX', infot, nout, lerr, ok )
625 CALL zhesvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
626 $ rcond, r1, r2, w, 4, rw, info )
627 CALL chkxer(
'ZHESVX', infot, nout, lerr, ok )
629 CALL zhesvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
630 $ rcond, r1, r2, w, 4, rw, info )
631 CALL chkxer(
'ZHESVX', infot, nout, lerr, ok )
633 CALL zhesvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
634 $ rcond, r1, r2, w, 3, rw, info )
635 CALL chkxer(
'ZHESVX', infot, nout, lerr, ok )
637 ELSE IF(
lsamen( 2, c2,
'HR' ) )
THEN
641 srnamt =
'ZHESV_ROOK'
643 CALL zhesv_rook(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
644 CALL chkxer(
'ZHESV_ROOK', infot, nout, lerr, ok )
646 CALL zhesv_rook(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
647 CALL chkxer(
'ZHESV_ROOK', infot, nout, lerr, ok )
649 CALL zhesv_rook(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
650 CALL chkxer(
'ZHESV_ROOK', infot, nout, lerr, ok )
652 CALL zhesv_rook(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
653 CALL chkxer(
'ZHESV_ROOK', infot, nout, lerr, ok )
655 ELSE IF(
lsamen( 2, c2,
'HP' ) )
THEN
661 CALL zhpsv(
'/', 0, 0, a, ip, b, 1, info )
662 CALL chkxer(
'ZHPSV ', infot, nout, lerr, ok )
664 CALL zhpsv(
'U', -1, 0, a, ip, b, 1, info )
665 CALL chkxer(
'ZHPSV ', infot, nout, lerr, ok )
667 CALL zhpsv(
'U', 0, -1, a, ip, b, 1, info )
668 CALL chkxer(
'ZHPSV ', infot, nout, lerr, ok )
670 CALL zhpsv(
'U', 2, 0, a, ip, b, 1, info )
671 CALL chkxer(
'ZHPSV ', infot, nout, lerr, ok )
677 CALL zhpsvx(
'/',
'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
679 CALL chkxer(
'ZHPSVX', infot, nout, lerr, ok )
681 CALL zhpsvx(
'N',
'/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
683 CALL chkxer(
'ZHPSVX', infot, nout, lerr, ok )
685 CALL zhpsvx(
'N',
'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
687 CALL chkxer(
'ZHPSVX', infot, nout, lerr, ok )
689 CALL zhpsvx(
'N',
'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
691 CALL chkxer(
'ZHPSVX', infot, nout, lerr, ok )
693 CALL zhpsvx(
'N',
'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
695 CALL chkxer(
'ZHPSVX', infot, nout, lerr, ok )
697 CALL zhpsvx(
'N',
'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
699 CALL chkxer(
'ZHPSVX', infot, nout, lerr, ok )
701 ELSE IF(
lsamen( 2, c2,
'SY' ) )
THEN
707 CALL zsysv(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
708 CALL chkxer(
'ZSYSV ', infot, nout, lerr, ok )
710 CALL zsysv(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
711 CALL chkxer(
'ZSYSV ', infot, nout, lerr, ok )
713 CALL zsysv(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
714 CALL chkxer(
'ZSYSV ', infot, nout, lerr, ok )
716 CALL zsysv(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
717 CALL chkxer(
'ZSYSV ', infot, nout, lerr, ok )
723 CALL zsysvx(
'/',
'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
724 $ rcond, r1, r2, w, 1, rw, info )
725 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
727 CALL zsysvx(
'N',
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
728 $ rcond, r1, r2, w, 1, rw, info )
729 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
731 CALL zsysvx(
'N',
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
732 $ rcond, r1, r2, w, 1, rw, info )
733 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
735 CALL zsysvx(
'N',
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
736 $ rcond, r1, r2, w, 1, rw, info )
737 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
739 CALL zsysvx(
'N',
'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
740 $ rcond, r1, r2, w, 4, rw, info )
741 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
743 CALL zsysvx(
'N',
'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
744 $ rcond, r1, r2, w, 4, rw, info )
745 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
747 CALL zsysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
748 $ rcond, r1, r2, w, 4, rw, info )
749 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
751 CALL zsysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
752 $ rcond, r1, r2, w, 4, rw, info )
753 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
755 CALL zsysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
756 $ rcond, r1, r2, w, 3, rw, info )
757 CALL chkxer(
'ZSYSVX', infot, nout, lerr, ok )
759 ELSE IF(
lsamen( 2, c2,
'SR' ) )
THEN
763 srnamt =
'ZSYSV_ROOK'
765 CALL zsysv_rook(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
766 CALL chkxer(
'ZSYSV_ROOK', infot, nout, lerr, ok )
768 CALL zsysv_rook(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
769 CALL chkxer(
'ZSYSV_ROOK', infot, nout, lerr, ok )
771 CALL zsysv_rook(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
772 CALL chkxer(
'ZSYSV_ROOK', infot, nout, lerr, ok )
774 CALL zsysv_rook(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
775 CALL chkxer(
'ZSYSV_ROOK', infot, nout, lerr, ok )
777 ELSE IF(
lsamen( 2, c2,
'SP' ) )
THEN
783 CALL zspsv(
'/', 0, 0, a, ip, b, 1, info )
784 CALL chkxer(
'ZSPSV ', infot, nout, lerr, ok )
786 CALL zspsv(
'U', -1, 0, a, ip, b, 1, info )
787 CALL chkxer(
'ZSPSV ', infot, nout, lerr, ok )
789 CALL zspsv(
'U', 0, -1, a, ip, b, 1, info )
790 CALL chkxer(
'ZSPSV ', infot, nout, lerr, ok )
792 CALL zspsv(
'U', 2, 0, a, ip, b, 1, info )
793 CALL chkxer(
'ZSPSV ', infot, nout, lerr, ok )
799 CALL zspsvx(
'/',
'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
801 CALL chkxer(
'ZSPSVX', infot, nout, lerr, ok )
803 CALL zspsvx(
'N',
'/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
805 CALL chkxer(
'ZSPSVX', infot, nout, lerr, ok )
807 CALL zspsvx(
'N',
'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
809 CALL chkxer(
'ZSPSVX', infot, nout, lerr, ok )
811 CALL zspsvx(
'N',
'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
813 CALL chkxer(
'ZSPSVX', infot, nout, lerr, ok )
815 CALL zspsvx(
'N',
'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
817 CALL chkxer(
'ZSPSVX', infot, nout, lerr, ok )
819 CALL zspsvx(
'N',
'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
821 CALL chkxer(
'ZSPSVX', infot, nout, lerr, ok )
827 WRITE( nout, fmt = 9999 )path
829 WRITE( nout, fmt = 9998 )path
832 9999
FORMAT( 1x, a3,
' drivers passed the tests of the error exits' )
833 9998
FORMAT(
' *** ', a3,
' drivers failed the tests of the error ',
subroutine zgbsv(N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO)
ZGBSV computes the solution to system of linear equations A * X = B for GB matrices (simple driver) ...
logical function lsamen(N, CA, CB)
LSAMEN
subroutine zgtsvx(FACT, TRANS, N, NRHS, DL, D, DU, DLF, DF, DUF, DU2, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
ZGTSVX computes the solution to system of linear equations A * X = B for GT matrices ...
subroutine zsysv(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
ZSYSV computes the solution to system of linear equations A * X = B for SY matrices ...
subroutine zsysvx(FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, LWORK, RWORK, INFO)
ZSYSVX computes the solution to system of linear equations A * X = B for SY matrices ...
subroutine zposv(UPLO, N, NRHS, A, LDA, B, LDB, INFO)
ZPOSV computes the solution to system of linear equations A * X = B for PO matrices ...
subroutine zgesv(N, NRHS, A, LDA, IPIV, B, LDB, INFO)
ZGESV computes the solution to system of linear equations A * X = B for GE matrices (simple driver) ...
subroutine zhpsv(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
ZHPSV computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine zspsv(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
ZSPSV computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine zgbsvx(FACT, TRANS, N, KL, KU, NRHS, AB, LDAB, AFB, LDAFB, IPIV, EQUED, R, C, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
ZGBSVX computes the solution to system of linear equations A * X = B for GB matrices ...
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine zspsvx(FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
ZSPSVX computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine zhesv(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
ZHESV computes the solution to system of linear equations A * X = B for HE matrices ...
subroutine zpbsv(UPLO, N, KD, NRHS, AB, LDAB, B, LDB, INFO)
ZPBSV computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine zptsvx(FACT, N, NRHS, D, E, DF, EF, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
ZPTSVX computes the solution to system of linear equations A * X = B for PT matrices ...
subroutine zppsv(UPLO, N, NRHS, AP, B, LDB, INFO)
ZPPSV computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine zhesv_rook(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
ZHESV_ROOK computes the solution to a system of linear equations A * X = B for HE matrices using the ...
subroutine zgesvx(FACT, TRANS, N, NRHS, A, LDA, AF, LDAF, IPIV, EQUED, R, C, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
ZGESVX computes the solution to system of linear equations A * X = B for GE matrices ...
subroutine zpbsvx(FACT, UPLO, N, KD, NRHS, AB, LDAB, AFB, LDAFB, EQUED, S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
ZPBSVX computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine zhesvx(FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, LWORK, RWORK, INFO)
ZHESVX computes the solution to system of linear equations A * X = B for HE matrices ...
subroutine zppsvx(FACT, UPLO, N, NRHS, AP, AFP, EQUED, S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
ZPPSVX computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine zhpsvx(FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
ZHPSVX computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine zposvx(FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, EQUED, S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
ZPOSVX computes the solution to system of linear equations A * X = B for PO matrices ...
subroutine zptsv(N, NRHS, D, E, B, LDB, INFO)
ZPTSV computes the solution to system of linear equations A * X = B for PT matrices ...
subroutine zsysv_rook(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
ZSYSV_ROOK computes the solution to system of linear equations A * X = B for SY matrices ...
subroutine zgtsv(N, NRHS, DL, D, DU, B, LDB, INFO)
ZGTSV computes the solution to system of linear equations A * X = B for GT matrices ...