72 parameter ( nmax = 4 )
82 REAL c( nmax ), r( nmax ), r1( nmax ), r2( nmax ),
83 $ rf( nmax ), rw( nmax )
84 COMPLEX a( nmax, nmax ), af( nmax, nmax ), b( nmax ),
85 $ e( nmax ), w( 2*nmax ), x( nmax )
105 COMMON / infoc / infot, nout, ok, lerr
106 COMMON / srnamc / srnamt
109 INTRINSIC cmplx, real
114 WRITE( nout, fmt = * )
121 a( i, j ) = cmplx( 1. /
REAL( I+J ), -1. /
REAL( I+J ) )
122 af( i, j ) = cmplx( 1. /
REAL( I+J ), -1. /
REAL( I+J ) )
137 IF(
lsamen( 2, c2,
'GE' ) )
THEN
143 CALL cgesv( -1, 0, a, 1, ip, b, 1, info )
144 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
146 CALL cgesv( 0, -1, a, 1, ip, b, 1, info )
147 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
149 CALL cgesv( 2, 1, a, 1, ip, b, 2, info )
150 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
152 CALL cgesv( 2, 1, a, 2, ip, b, 1, info )
153 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
159 CALL cgesvx(
'/',
'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(
'CGESVX', infot, nout, lerr, ok )
163 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
167 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
171 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
175 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
179 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
184 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
189 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
194 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
198 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
202 CALL cgesvx(
'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(
'CGESVX', infot, nout, lerr, ok )
206 ELSE IF(
lsamen( 2, c2,
'GB' ) )
THEN
212 CALL cgbsv( -1, 0, 0, 0, a, 1, ip, b, 1, info )
213 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
215 CALL cgbsv( 1, -1, 0, 0, a, 1, ip, b, 1, info )
216 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
218 CALL cgbsv( 1, 0, -1, 0, a, 1, ip, b, 1, info )
219 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
221 CALL cgbsv( 0, 0, 0, -1, a, 1, ip, b, 1, info )
222 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
224 CALL cgbsv( 1, 1, 1, 0, a, 3, ip, b, 1, info )
225 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
227 CALL cgbsv( 2, 0, 0, 0, a, 1, ip, b, 1, info )
228 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
234 CALL cgbsvx(
'/',
'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(
'CGBSVX', infot, nout, lerr, ok )
238 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
242 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
246 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
250 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
254 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
258 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
262 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
267 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
272 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
277 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
281 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
285 CALL cgbsvx(
'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(
'CGBSVX', infot, nout, lerr, ok )
289 ELSE IF(
lsamen( 2, c2,
'GT' ) )
THEN
295 CALL cgtsv( -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
297 CALL chkxer(
'CGTSV ', infot, nout, lerr, ok )
299 CALL cgtsv( 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
301 CALL chkxer(
'CGTSV ', infot, nout, lerr, ok )
303 CALL cgtsv( 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1, info )
304 CALL chkxer(
'CGTSV ', infot, nout, lerr, ok )
310 CALL cgtsvx(
'/',
'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(
'CGTSVX', infot, nout, lerr, ok )
315 CALL cgtsvx(
'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(
'CGTSVX', infot, nout, lerr, ok )
320 CALL cgtsvx(
'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(
'CGTSVX', infot, nout, lerr, ok )
325 CALL cgtsvx(
'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(
'CGTSVX', infot, nout, lerr, ok )
330 CALL cgtsvx(
'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(
'CGTSVX', infot, nout, lerr, ok )
335 CALL cgtsvx(
'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(
'CGTSVX', infot, nout, lerr, ok )
340 ELSE IF(
lsamen( 2, c2,
'PO' ) )
THEN
346 CALL cposv(
'/', 0, 0, a, 1, b, 1, info )
347 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
349 CALL cposv(
'U', -1, 0, a, 1, b, 1, info )
350 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
352 CALL cposv(
'U', 0, -1, a, 1, b, 1, info )
353 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
355 CALL cposv(
'U', 2, 0, a, 1, b, 2, info )
356 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
358 CALL cposv(
'U', 2, 0, a, 2, b, 1, info )
359 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
365 CALL cposvx(
'/',
'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
366 $ rcond, r1, r2, w, rw, info )
367 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
369 CALL cposvx(
'N',
'/', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
370 $ rcond, r1, r2, w, rw, info )
371 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
373 CALL cposvx(
'N',
'U', -1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
374 $ rcond, r1, r2, w, rw, info )
375 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
377 CALL cposvx(
'N',
'U', 0, -1, a, 1, af, 1, eq, c, b, 1, x, 1,
378 $ rcond, r1, r2, w, rw, info )
379 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
381 CALL cposvx(
'N',
'U', 2, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
382 $ rcond, r1, r2, w, rw, info )
383 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
385 CALL cposvx(
'N',
'U', 2, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
386 $ rcond, r1, r2, w, rw, info )
387 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
390 CALL cposvx(
'F',
'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
391 $ rcond, r1, r2, w, rw, info )
392 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
395 CALL cposvx(
'F',
'U', 1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
396 $ rcond, r1, r2, w, rw, info )
397 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
399 CALL cposvx(
'N',
'U', 2, 0, a, 2, af, 2, eq, c, b, 1, x, 2,
400 $ rcond, r1, r2, w, rw, info )
401 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
403 CALL cposvx(
'N',
'U', 2, 0, a, 2, af, 2, eq, c, b, 2, x, 1,
404 $ rcond, r1, r2, w, rw, info )
405 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
407 ELSE IF(
lsamen( 2, c2,
'PP' ) )
THEN
413 CALL cppsv(
'/', 0, 0, a, b, 1, info )
414 CALL chkxer(
'CPPSV ', infot, nout, lerr, ok )
416 CALL cppsv(
'U', -1, 0, a, b, 1, info )
417 CALL chkxer(
'CPPSV ', infot, nout, lerr, ok )
419 CALL cppsv(
'U', 0, -1, a, b, 1, info )
420 CALL chkxer(
'CPPSV ', infot, nout, lerr, ok )
422 CALL cppsv(
'U', 2, 0, a, b, 1, info )
423 CALL chkxer(
'CPPSV ', infot, nout, lerr, ok )
429 CALL cppsvx(
'/',
'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
430 $ r1, r2, w, rw, info )
431 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
433 CALL cppsvx(
'N',
'/', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
434 $ r1, r2, w, rw, info )
435 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
437 CALL cppsvx(
'N',
'U', -1, 0, a, af, eq, c, b, 1, x, 1, rcond,
438 $ r1, r2, w, rw, info )
439 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
441 CALL cppsvx(
'N',
'U', 0, -1, a, af, eq, c, b, 1, x, 1, rcond,
442 $ r1, r2, w, rw, info )
443 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
446 CALL cppsvx(
'F',
'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
447 $ r1, r2, w, rw, info )
448 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
451 CALL cppsvx(
'F',
'U', 1, 0, a, af, eq, c, b, 1, x, 1, rcond,
452 $ r1, r2, w, rw, info )
453 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
455 CALL cppsvx(
'N',
'U', 2, 0, a, af, eq, c, b, 1, x, 2, rcond,
456 $ r1, r2, w, rw, info )
457 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
459 CALL cppsvx(
'N',
'U', 2, 0, a, af, eq, c, b, 2, x, 1, rcond,
460 $ r1, r2, w, rw, info )
461 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
463 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
469 CALL cpbsv(
'/', 0, 0, 0, a, 1, b, 1, info )
470 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
472 CALL cpbsv(
'U', -1, 0, 0, a, 1, b, 1, info )
473 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
475 CALL cpbsv(
'U', 1, -1, 0, a, 1, b, 1, info )
476 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
478 CALL cpbsv(
'U', 0, 0, -1, a, 1, b, 1, info )
479 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
481 CALL cpbsv(
'U', 1, 1, 0, a, 1, b, 2, info )
482 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
484 CALL cpbsv(
'U', 2, 0, 0, a, 1, b, 1, info )
485 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
491 CALL cpbsvx(
'/',
'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
492 $ rcond, r1, r2, w, rw, info )
493 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
495 CALL cpbsvx(
'N',
'/', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
496 $ rcond, r1, r2, w, rw, info )
497 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
499 CALL cpbsvx(
'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(
'CPBSVX', infot, nout, lerr, ok )
503 CALL cpbsvx(
'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(
'CPBSVX', infot, nout, lerr, ok )
507 CALL cpbsvx(
'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(
'CPBSVX', infot, nout, lerr, ok )
511 CALL cpbsvx(
'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(
'CPBSVX', infot, nout, lerr, ok )
515 CALL cpbsvx(
'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(
'CPBSVX', infot, nout, lerr, ok )
520 CALL cpbsvx(
'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(
'CPBSVX', infot, nout, lerr, ok )
525 CALL cpbsvx(
'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(
'CPBSVX', infot, nout, lerr, ok )
529 CALL cpbsvx(
'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(
'CPBSVX', infot, nout, lerr, ok )
533 CALL cpbsvx(
'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(
'CPBSVX', infot, nout, lerr, ok )
537 ELSE IF(
lsamen( 2, c2,
'PT' ) )
THEN
543 CALL cptsv( -1, 0, r, a( 1, 1 ), b, 1, info )
544 CALL chkxer(
'CPTSV ', infot, nout, lerr, ok )
546 CALL cptsv( 0, -1, r, a( 1, 1 ), b, 1, info )
547 CALL chkxer(
'CPTSV ', infot, nout, lerr, ok )
549 CALL cptsv( 2, 0, r, a( 1, 1 ), b, 1, info )
550 CALL chkxer(
'CPTSV ', infot, nout, lerr, ok )
556 CALL cptsvx(
'/', 0, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
557 $ 1, rcond, r1, r2, w, rw, info )
558 CALL chkxer(
'CPTSVX', infot, nout, lerr, ok )
560 CALL cptsvx(
'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(
'CPTSVX', infot, nout, lerr, ok )
564 CALL cptsvx(
'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(
'CPTSVX', infot, nout, lerr, ok )
568 CALL cptsvx(
'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(
'CPTSVX', infot, nout, lerr, ok )
572 CALL cptsvx(
'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(
'CPTSVX', infot, nout, lerr, ok )
576 ELSE IF(
lsamen( 2, c2,
'HE' ) )
THEN
582 CALL chesv(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
583 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
585 CALL chesv(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
586 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
588 CALL chesv(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
589 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
591 CALL chesv(
'U', 2, 0, a, 1, ip, b, 2, w, 1, info )
592 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
594 CALL chesv(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
595 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
597 CALL chesv(
'U', 0, 0, a, 1, ip, b, 1, w, 0, info )
598 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
600 CALL chesv(
'U', 0, 0, a, 1, ip, b, 1, w, -2, info )
601 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
607 CALL chesvx(
'/',
'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
608 $ rcond, r1, r2, w, 1, rw, info )
609 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
611 CALL chesvx(
'N',
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
612 $ rcond, r1, r2, w, 1, rw, info )
613 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
615 CALL chesvx(
'N',
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
616 $ rcond, r1, r2, w, 1, rw, info )
617 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
619 CALL chesvx(
'N',
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
620 $ rcond, r1, r2, w, 1, rw, info )
621 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
623 CALL chesvx(
'N',
'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
624 $ rcond, r1, r2, w, 4, rw, info )
625 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
627 CALL chesvx(
'N',
'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
628 $ rcond, r1, r2, w, 4, rw, info )
629 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
631 CALL chesvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
632 $ rcond, r1, r2, w, 4, rw, info )
633 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
635 CALL chesvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
636 $ rcond, r1, r2, w, 4, rw, info )
637 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
639 CALL chesvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
640 $ rcond, r1, r2, w, 3, rw, info )
641 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
643 ELSE IF(
lsamen( 2, c2,
'HR' ) )
THEN
647 srnamt =
'CHESV_ROOK'
649 CALL chesv_rook(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
650 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
652 CALL chesv_rook(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
653 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
655 CALL chesv_rook(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
656 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
658 CALL chesv_rook(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
659 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
661 CALL chesv_rook(
'U', 0, 0, a, 1, ip, b, 1, w, 0, info )
662 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
664 CALL chesv_rook(
'U', 0, 0, a, 1, ip, b, 1, w, -2, info )
665 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
667 ELSE IF(
lsamen( 2, c2,
'HK' ) )
THEN
681 CALL chesv_rk(
'/', 0, 0, a, 1, e, ip, b, 1, w, 1, info )
682 CALL chkxer(
'CHESV_RK', infot, nout, lerr, ok )
684 CALL chesv_rk(
'U', -1, 0, a, 1, e, ip, b, 1, w, 1, info )
685 CALL chkxer(
'CHESV_RK', infot, nout, lerr, ok )
687 CALL chesv_rk(
'U', 0, -1, a, 1, e, ip, b, 1, w, 1, info )
688 CALL chkxer(
'CHESV_RK', infot, nout, lerr, ok )
690 CALL chesv_rk(
'U', 2, 0, a, 1, e, ip, b, 2, w, 1, info )
691 CALL chkxer(
'CHESV_RK', infot, nout, lerr, ok )
693 CALL chesv_rk(
'U', 2, 0, a, 2, e, ip, b, 1, w, 1, info )
694 CALL chkxer(
'CHESV_RK', infot, nout, lerr, ok )
696 CALL chesv_rk(
'U', 0, 0, a, 1, e, ip, b, 1, w, 0, info )
697 CALL chkxer(
'CHESV_RK', infot, nout, lerr, ok )
699 CALL chesv_rk(
'U', 0, 0, a, 1, e, ip, b, 1, w, -2, info )
700 CALL chkxer(
'CHESV_RK', infot, nout, lerr, ok )
702 ELSE IF(
lsamen( 2, c2,
'HA' ) )
THEN
708 CALL chesv_aa(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
709 CALL chkxer(
'CHESV_AA', infot, nout, lerr, ok )
711 CALL chesv_aa(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
712 CALL chkxer(
'CHESV_AA', infot, nout, lerr, ok )
714 CALL chesv_aa(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
715 CALL chkxer(
'CHESV_AA', infot, nout, lerr, ok )
717 CALL chesv_aa(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
718 CALL chkxer(
'CHESV_AA', infot, nout, lerr, ok )
720 ELSE IF(
lsamen( 2, c2,
'HP' ) )
THEN
726 CALL chpsv(
'/', 0, 0, a, ip, b, 1, info )
727 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
729 CALL chpsv(
'U', -1, 0, a, ip, b, 1, info )
730 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
732 CALL chpsv(
'U', 0, -1, a, ip, b, 1, info )
733 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
735 CALL chpsv(
'U', 2, 0, a, ip, b, 1, info )
736 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
742 CALL chpsvx(
'/',
'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
744 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
746 CALL chpsvx(
'N',
'/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
748 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
750 CALL chpsvx(
'N',
'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
752 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
754 CALL chpsvx(
'N',
'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
756 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
758 CALL chpsvx(
'N',
'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
760 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
762 CALL chpsvx(
'N',
'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
764 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
766 ELSE IF(
lsamen( 2, c2,
'SY' ) )
THEN
772 CALL csysv(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
773 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
775 CALL csysv(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
776 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
778 CALL csysv(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
779 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
781 CALL csysv(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
782 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
784 CALL csysv(
'U', 0, 0, a, 1, ip, b, 1, w, 0, info )
785 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
787 CALL csysv(
'U', 0, 0, a, 1, ip, b, 1, w, -2, info )
788 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
794 CALL csysvx(
'/',
'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
795 $ rcond, r1, r2, w, 1, rw, info )
796 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
798 CALL csysvx(
'N',
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
799 $ rcond, r1, r2, w, 1, rw, info )
800 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
802 CALL csysvx(
'N',
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
803 $ rcond, r1, r2, w, 1, rw, info )
804 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
806 CALL csysvx(
'N',
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
807 $ rcond, r1, r2, w, 1, rw, info )
808 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
810 CALL csysvx(
'N',
'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
811 $ rcond, r1, r2, w, 4, rw, info )
812 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
814 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
815 $ rcond, r1, r2, w, 4, rw, info )
816 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
818 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
819 $ rcond, r1, r2, w, 4, rw, info )
820 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
822 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
823 $ rcond, r1, r2, w, 4, rw, info )
824 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
826 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
827 $ rcond, r1, r2, w, 3, rw, info )
828 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
830 ELSE IF(
lsamen( 2, c2,
'SR' ) )
THEN
834 srnamt =
'CSYSV_ROOK'
836 CALL csysv_rook(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
837 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
839 CALL csysv_rook(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
840 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
842 CALL csysv_rook(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
843 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
845 CALL csysv_rook(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
846 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
848 CALL csysv_rook(
'U', 0, 0, a, 1, ip, b, 1, w, 0, info )
849 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
851 CALL csysv_rook(
'U', 0, 0, a, 1, ip, b, 1, w, -2, info )
852 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
854 ELSE IF(
lsamen( 2, c2,
'SK' ) )
THEN
868 CALL csysv_rk(
'/', 0, 0, a, 1, e, ip, b, 1, w, 1, info )
869 CALL chkxer(
'CSYSV_RK', infot, nout, lerr, ok )
871 CALL csysv_rk(
'U', -1, 0, a, 1, e, ip, b, 1, w, 1, info )
872 CALL chkxer(
'CSYSV_RK', infot, nout, lerr, ok )
874 CALL csysv_rk(
'U', 0, -1, a, 1, e, ip, b, 1, w, 1, info )
875 CALL chkxer(
'CSYSV_RK', infot, nout, lerr, ok )
877 CALL csysv_rk(
'U', 2, 0, a, 1, e, ip, b, 2, w, 1, info )
878 CALL chkxer(
'CSYSV_RK', infot, nout, lerr, ok )
880 CALL csysv_rk(
'U', 2, 0, a, 2, e, ip, b, 1, w, 1, info )
881 CALL chkxer(
'CSYSV_RK', infot, nout, lerr, ok )
883 CALL csysv_rk(
'U', 0, 0, a, 1, e, ip, b, 1, w, 0, info )
884 CALL chkxer(
'CSYSV_RK', infot, nout, lerr, ok )
886 CALL csysv_rk(
'U', 0, 0, a, 1, e, ip, b, 1, w, -2, info )
887 CALL chkxer(
'CSYSV_RK', infot, nout, lerr, ok )
889 ELSE IF(
lsamen( 2, c2,
'SP' ) )
THEN
895 CALL cspsv(
'/', 0, 0, a, ip, b, 1, info )
896 CALL chkxer(
'CSPSV ', infot, nout, lerr, ok )
898 CALL cspsv(
'U', -1, 0, a, ip, b, 1, info )
899 CALL chkxer(
'CSPSV ', infot, nout, lerr, ok )
901 CALL cspsv(
'U', 0, -1, a, ip, b, 1, info )
902 CALL chkxer(
'CSPSV ', infot, nout, lerr, ok )
904 CALL cspsv(
'U', 2, 0, a, ip, b, 1, info )
905 CALL chkxer(
'CSPSV ', infot, nout, lerr, ok )
911 CALL cspsvx(
'/',
'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
913 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
915 CALL cspsvx(
'N',
'/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
917 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
919 CALL cspsvx(
'N',
'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
921 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
923 CALL cspsvx(
'N',
'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
925 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
927 CALL cspsvx(
'N',
'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
929 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
931 CALL cspsvx(
'N',
'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
933 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
939 WRITE( nout, fmt = 9999 )path
941 WRITE( nout, fmt = 9998 )path
944 9999
FORMAT( 1x, a3,
' drivers passed the tests of the error exits' )
945 9998
FORMAT(
' *** ', a3,
' drivers failed the tests of the error ',
subroutine csysv_rk(UPLO, N, NRHS, A, LDA, E, IPIV, B, LDB, WORK, LWORK, INFO)
CSYSV_RK computes the solution to system of linear equations A * X = B for SY matrices ...
subroutine cgtsv(N, NRHS, DL, D, DU, B, LDB, INFO)
CGTSV computes the solution to system of linear equations A * X = B for GT matrices ...
subroutine cgbsv(N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO)
CGBSV computes the solution to system of linear equations A * X = B for GB matrices (simple driver) ...
subroutine csysv_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
CSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices ...
subroutine cppsvx(FACT, UPLO, N, NRHS, AP, AFP, EQUED, S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CPPSVX computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine cppsv(UPLO, N, NRHS, AP, B, LDB, INFO)
CPPSV computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine chesv_rook(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
CHESV_ROOK computes the solution to a system of linear equations A * X = B for HE matrices using the ...
subroutine cgtsvx(FACT, TRANS, N, NRHS, DL, D, DU, DLF, DF, DUF, DU2, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CGTSVX computes the solution to system of linear equations A * X = B for GT matrices ...
subroutine chesv(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
CHESV computes the solution to system of linear equations A * X = B for HE matrices ...
subroutine cptsv(N, NRHS, D, E, B, LDB, INFO)
CPTSV computes the solution to system of linear equations A * X = B for PT matrices ...
subroutine cpbsv(UPLO, N, KD, NRHS, AB, LDAB, B, LDB, INFO)
CPBSV computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine cspsvx(FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CSPSVX computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine csysv_rook(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
CSYSV_ROOK computes the solution to system of linear equations A * X = B for SY matrices ...
logical function lsamen(N, CA, CB)
LSAMEN
subroutine chesvx(FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, LWORK, RWORK, INFO)
CHESVX computes the solution to system of linear equations A * X = B for HE matrices ...
subroutine cgesvx(FACT, TRANS, N, NRHS, A, LDA, AF, LDAF, IPIV, EQUED, R, C, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CGESVX computes the solution to system of linear equations A * X = B for GE matrices ...
subroutine cgbsvx(FACT, TRANS, N, KL, KU, NRHS, AB, LDAB, AFB, LDAFB, IPIV, EQUED, R, C, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CGBSVX computes the solution to system of linear equations A * X = B for GB matrices ...
subroutine chpsvx(FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CHPSVX computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine csysvx(FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, LWORK, RWORK, INFO)
CSYSVX computes the solution to system of linear equations A * X = B for SY matrices ...
subroutine cposvx(FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, EQUED, S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CPOSVX computes the solution to system of linear equations A * X = B for PO matrices ...
subroutine csysv(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
CSYSV computes the solution to system of linear equations A * X = B for SY matrices ...
subroutine cposv(UPLO, N, NRHS, A, LDA, B, LDB, INFO)
CPOSV computes the solution to system of linear equations A * X = B for PO matrices ...
subroutine chpsv(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
CHPSV computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine cpbsvx(FACT, UPLO, N, KD, NRHS, AB, LDAB, AFB, LDAFB, EQUED, S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CPBSVX computes the solution to system of linear equations A * X = B for OTHER matrices ...
subroutine cptsvx(FACT, N, NRHS, D, E, DF, EF, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO)
CPTSVX computes the solution to system of linear equations A * X = B for PT matrices ...
subroutine chesv_rk(UPLO, N, NRHS, A, LDA, E, IPIV, B, LDB, WORK, LWORK, INFO)
CHESV_RK computes the solution to system of linear equations A * X = B for SY matrices ...
subroutine chesv_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
CHESV_AA computes the solution to system of linear equations A * X = B for HE matrices ...
subroutine cgesv(N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CGESV computes the solution to system of linear equations A * X = B for GE matrices (simple driver) ...
subroutine cspsv(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
CSPSV computes the solution to system of linear equations A * X = B for OTHER matrices ...