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 $ w( 2*nmax ), x( nmax )
104 COMMON / infoc / infot, nout, ok, lerr
105 COMMON / srnamc / srnamt
108 INTRINSIC cmplx, real
113 WRITE( nout, fmt = * )
120 a( i, j ) = cmplx( 1. /
REAL( I+J ), -1. /
REAL( I+J ) )
121 af( i, j ) = cmplx( 1. /
REAL( I+J ), -1. /
REAL( I+J ) )
135 IF(
lsamen( 2, c2,
'GE' ) )
THEN
141 CALL cgesv( -1, 0, a, 1, ip, b, 1, info )
142 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
144 CALL cgesv( 0, -1, a, 1, ip, b, 1, info )
145 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
147 CALL cgesv( 2, 1, a, 1, ip, b, 2, info )
148 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
150 CALL cgesv( 2, 1, a, 2, ip, b, 1, info )
151 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
157 CALL cgesvx(
'/',
'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
158 $ x, 1, rcond, r1, r2, w, rw, info )
159 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
161 CALL cgesvx(
'N',
'/', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
162 $ x, 1, rcond, r1, r2, w, rw, info )
163 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
165 CALL cgesvx(
'N',
'N', -1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
166 $ x, 1, rcond, r1, r2, w, rw, info )
167 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
169 CALL cgesvx(
'N',
'N', 0, -1, a, 1, af, 1, ip, eq, r, c, b, 1,
170 $ x, 1, rcond, r1, r2, w, rw, info )
171 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
173 CALL cgesvx(
'N',
'N', 2, 1, a, 1, af, 2, ip, eq, r, c, b, 2,
174 $ x, 2, rcond, r1, r2, w, rw, info )
175 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
177 CALL cgesvx(
'N',
'N', 2, 1, a, 2, af, 1, ip, eq, r, c, b, 2,
178 $ x, 2, rcond, r1, r2, w, rw, info )
179 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
182 CALL cgesvx(
'F',
'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
183 $ x, 1, rcond, r1, r2, w, rw, info )
184 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
187 CALL cgesvx(
'F',
'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
188 $ x, 1, rcond, r1, r2, w, rw, info )
189 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
192 CALL cgesvx(
'F',
'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
193 $ x, 1, rcond, r1, r2, w, rw, info )
194 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
196 CALL cgesvx(
'N',
'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 1,
197 $ x, 2, rcond, r1, r2, w, rw, info )
198 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
200 CALL cgesvx(
'N',
'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 2,
201 $ x, 1, rcond, r1, r2, w, rw, info )
202 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
204 ELSE IF(
lsamen( 2, c2,
'GB' ) )
THEN
210 CALL cgbsv( -1, 0, 0, 0, a, 1, ip, b, 1, info )
211 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
213 CALL cgbsv( 1, -1, 0, 0, a, 1, ip, b, 1, info )
214 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
216 CALL cgbsv( 1, 0, -1, 0, a, 1, ip, b, 1, info )
217 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
219 CALL cgbsv( 0, 0, 0, -1, a, 1, ip, b, 1, info )
220 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
222 CALL cgbsv( 1, 1, 1, 0, a, 3, ip, b, 1, info )
223 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
225 CALL cgbsv( 2, 0, 0, 0, a, 1, ip, b, 1, info )
226 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
232 CALL cgbsvx(
'/',
'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
233 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
234 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
236 CALL cgbsvx(
'N',
'/', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
237 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
238 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
240 CALL cgbsvx(
'N',
'N', -1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
241 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
242 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
244 CALL cgbsvx(
'N',
'N', 1, -1, 0, 0, a, 1, af, 1, ip, eq, r, c,
245 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
246 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
248 CALL cgbsvx(
'N',
'N', 1, 0, -1, 0, a, 1, af, 1, ip, eq, r, c,
249 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
250 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
252 CALL cgbsvx(
'N',
'N', 0, 0, 0, -1, a, 1, af, 1, ip, eq, r, c,
253 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
254 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
256 CALL cgbsvx(
'N',
'N', 1, 1, 1, 0, a, 2, af, 4, ip, eq, r, c,
257 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
258 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
260 CALL cgbsvx(
'N',
'N', 1, 1, 1, 0, a, 3, af, 3, ip, eq, r, c,
261 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
262 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
265 CALL cgbsvx(
'F',
'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
266 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
267 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
270 CALL cgbsvx(
'F',
'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
271 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
272 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
275 CALL cgbsvx(
'F',
'N', 1, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
276 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
277 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
279 CALL cgbsvx(
'N',
'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
280 $ b, 1, x, 2, rcond, r1, r2, w, rw, info )
281 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
283 CALL cgbsvx(
'N',
'N', 2, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
284 $ b, 2, x, 1, rcond, r1, r2, w, rw, info )
285 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
287 ELSE IF(
lsamen( 2, c2,
'GT' ) )
THEN
293 CALL cgtsv( -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
295 CALL chkxer(
'CGTSV ', infot, nout, lerr, ok )
297 CALL cgtsv( 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1,
299 CALL chkxer(
'CGTSV ', infot, nout, lerr, ok )
301 CALL cgtsv( 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1, info )
302 CALL chkxer(
'CGTSV ', infot, nout, lerr, ok )
308 CALL cgtsvx(
'/',
'N', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
309 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
310 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
311 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
313 CALL cgtsvx(
'N',
'/', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
314 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
315 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
316 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
318 CALL cgtsvx(
'N',
'N', -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
319 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
320 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
321 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
323 CALL cgtsvx(
'N',
'N', 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
324 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
325 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
326 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
328 CALL cgtsvx(
'N',
'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
329 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
330 $ ip, b, 1, x, 2, rcond, r1, r2, w, rw, info )
331 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
333 CALL cgtsvx(
'N',
'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
334 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
335 $ ip, b, 2, x, 1, rcond, r1, r2, w, rw, info )
336 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
338 ELSE IF(
lsamen( 2, c2,
'PO' ) )
THEN
344 CALL cposv(
'/', 0, 0, a, 1, b, 1, info )
345 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
347 CALL cposv(
'U', -1, 0, a, 1, b, 1, info )
348 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
350 CALL cposv(
'U', 0, -1, a, 1, b, 1, info )
351 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
353 CALL cposv(
'U', 2, 0, a, 1, b, 2, info )
354 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
356 CALL cposv(
'U', 2, 0, a, 2, b, 1, info )
357 CALL chkxer(
'CPOSV ', infot, nout, lerr, ok )
363 CALL cposvx(
'/',
'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
364 $ rcond, r1, r2, w, rw, info )
365 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
367 CALL cposvx(
'N',
'/', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
368 $ rcond, r1, r2, w, rw, info )
369 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
371 CALL cposvx(
'N',
'U', -1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
372 $ rcond, r1, r2, w, rw, info )
373 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
375 CALL cposvx(
'N',
'U', 0, -1, a, 1, af, 1, eq, c, b, 1, x, 1,
376 $ rcond, r1, r2, w, rw, info )
377 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
379 CALL cposvx(
'N',
'U', 2, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
380 $ rcond, r1, r2, w, rw, info )
381 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
383 CALL cposvx(
'N',
'U', 2, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
384 $ rcond, r1, r2, w, rw, info )
385 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
388 CALL cposvx(
'F',
'U', 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
389 $ rcond, r1, r2, w, rw, info )
390 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
393 CALL cposvx(
'F',
'U', 1, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
394 $ rcond, r1, r2, w, rw, info )
395 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
397 CALL cposvx(
'N',
'U', 2, 0, a, 2, af, 2, eq, c, b, 1, x, 2,
398 $ rcond, r1, r2, w, rw, info )
399 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
401 CALL cposvx(
'N',
'U', 2, 0, a, 2, af, 2, eq, c, b, 2, x, 1,
402 $ rcond, r1, r2, w, rw, info )
403 CALL chkxer(
'CPOSVX', infot, nout, lerr, ok )
405 ELSE IF(
lsamen( 2, c2,
'PP' ) )
THEN
411 CALL cppsv(
'/', 0, 0, a, b, 1, info )
412 CALL chkxer(
'CPPSV ', infot, nout, lerr, ok )
414 CALL cppsv(
'U', -1, 0, a, b, 1, info )
415 CALL chkxer(
'CPPSV ', infot, nout, lerr, ok )
417 CALL cppsv(
'U', 0, -1, a, b, 1, info )
418 CALL chkxer(
'CPPSV ', infot, nout, lerr, ok )
420 CALL cppsv(
'U', 2, 0, a, b, 1, info )
421 CALL chkxer(
'CPPSV ', infot, nout, lerr, ok )
427 CALL cppsvx(
'/',
'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
428 $ r1, r2, w, rw, info )
429 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
431 CALL cppsvx(
'N',
'/', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
432 $ r1, r2, w, rw, info )
433 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
435 CALL cppsvx(
'N',
'U', -1, 0, a, af, eq, c, b, 1, x, 1, rcond,
436 $ r1, r2, w, rw, info )
437 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
439 CALL cppsvx(
'N',
'U', 0, -1, a, af, eq, c, b, 1, x, 1, rcond,
440 $ r1, r2, w, rw, info )
441 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
444 CALL cppsvx(
'F',
'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
445 $ r1, r2, w, rw, info )
446 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
449 CALL cppsvx(
'F',
'U', 1, 0, a, af, eq, c, b, 1, x, 1, rcond,
450 $ r1, r2, w, rw, info )
451 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
453 CALL cppsvx(
'N',
'U', 2, 0, a, af, eq, c, b, 1, x, 2, rcond,
454 $ r1, r2, w, rw, info )
455 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
457 CALL cppsvx(
'N',
'U', 2, 0, a, af, eq, c, b, 2, x, 1, rcond,
458 $ r1, r2, w, rw, info )
459 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
461 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
467 CALL cpbsv(
'/', 0, 0, 0, a, 1, b, 1, info )
468 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
470 CALL cpbsv(
'U', -1, 0, 0, a, 1, b, 1, info )
471 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
473 CALL cpbsv(
'U', 1, -1, 0, a, 1, b, 1, info )
474 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
476 CALL cpbsv(
'U', 0, 0, -1, a, 1, b, 1, info )
477 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
479 CALL cpbsv(
'U', 1, 1, 0, a, 1, b, 2, info )
480 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
482 CALL cpbsv(
'U', 2, 0, 0, a, 1, b, 1, info )
483 CALL chkxer(
'CPBSV ', infot, nout, lerr, ok )
489 CALL cpbsvx(
'/',
'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
490 $ rcond, r1, r2, w, rw, info )
491 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
493 CALL cpbsvx(
'N',
'/', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
494 $ rcond, r1, r2, w, rw, info )
495 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
497 CALL cpbsvx(
'N',
'U', -1, 0, 0, a, 1, af, 1, eq, c, b, 1, x,
498 $ 1, rcond, r1, r2, w, rw, info )
499 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
501 CALL cpbsvx(
'N',
'U', 1, -1, 0, a, 1, af, 1, eq, c, b, 1, x,
502 $ 1, rcond, r1, r2, w, rw, info )
503 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
505 CALL cpbsvx(
'N',
'U', 0, 0, -1, a, 1, af, 1, eq, c, b, 1, x,
506 $ 1, rcond, r1, r2, w, rw, info )
507 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
509 CALL cpbsvx(
'N',
'U', 1, 1, 0, a, 1, af, 2, eq, c, b, 2, x, 2,
510 $ rcond, r1, r2, w, rw, info )
511 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
513 CALL cpbsvx(
'N',
'U', 1, 1, 0, a, 2, af, 1, eq, c, b, 2, x, 2,
514 $ rcond, r1, r2, w, rw, info )
515 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
518 CALL cpbsvx(
'F',
'U', 0, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
519 $ rcond, r1, r2, w, rw, info )
520 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
523 CALL cpbsvx(
'F',
'U', 1, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 1,
524 $ rcond, r1, r2, w, rw, info )
525 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
527 CALL cpbsvx(
'N',
'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 1, x, 2,
528 $ rcond, r1, r2, w, rw, info )
529 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
531 CALL cpbsvx(
'N',
'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 2, x, 1,
532 $ rcond, r1, r2, w, rw, info )
533 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
535 ELSE IF(
lsamen( 2, c2,
'PT' ) )
THEN
541 CALL cptsv( -1, 0, r, a( 1, 1 ), b, 1, info )
542 CALL chkxer(
'CPTSV ', infot, nout, lerr, ok )
544 CALL cptsv( 0, -1, r, a( 1, 1 ), b, 1, info )
545 CALL chkxer(
'CPTSV ', infot, nout, lerr, ok )
547 CALL cptsv( 2, 0, r, a( 1, 1 ), b, 1, info )
548 CALL chkxer(
'CPTSV ', infot, nout, lerr, ok )
554 CALL cptsvx(
'/', 0, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
555 $ 1, rcond, r1, r2, w, rw, info )
556 CALL chkxer(
'CPTSVX', infot, nout, lerr, ok )
558 CALL cptsvx(
'N', -1, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
559 $ 1, rcond, r1, r2, w, rw, info )
560 CALL chkxer(
'CPTSVX', infot, nout, lerr, ok )
562 CALL cptsvx(
'N', 0, -1, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
563 $ 1, rcond, r1, r2, w, rw, info )
564 CALL chkxer(
'CPTSVX', infot, nout, lerr, ok )
566 CALL cptsvx(
'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
567 $ 2, rcond, r1, r2, w, rw, info )
568 CALL chkxer(
'CPTSVX', infot, nout, lerr, ok )
570 CALL cptsvx(
'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 2, x,
571 $ 1, rcond, r1, r2, w, rw, info )
572 CALL chkxer(
'CPTSVX', infot, nout, lerr, ok )
574 ELSE IF(
lsamen( 2, c2,
'HE' ) )
THEN
580 CALL chesv(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
581 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
583 CALL chesv(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
584 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
586 CALL chesv(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
587 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
589 CALL chesv(
'U', 2, 0, a, 1, ip, b, 2, w, 1, info )
590 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
592 CALL chesv(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
593 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
599 CALL chesvx(
'/',
'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
600 $ rcond, r1, r2, w, 1, rw, info )
601 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
603 CALL chesvx(
'N',
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
604 $ rcond, r1, r2, w, 1, rw, info )
605 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
607 CALL chesvx(
'N',
'U', -1, 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',
'U', 0, -1, 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', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
616 $ rcond, r1, r2, w, 4, rw, info )
617 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
619 CALL chesvx(
'N',
'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
620 $ rcond, r1, r2, w, 4, rw, info )
621 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
623 CALL chesvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 1, 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, 2, ip, b, 2, x, 1,
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, 2, x, 2,
632 $ rcond, r1, r2, w, 3, rw, info )
633 CALL chkxer(
'CHESVX', infot, nout, lerr, ok )
635 ELSE IF(
lsamen( 2, c2,
'HR' ) )
THEN
639 srnamt =
'CHESV_ROOK'
641 CALL chesv_rook(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
642 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
644 CALL chesv_rook(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
645 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
647 CALL chesv_rook(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
648 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
650 CALL chesv_rook(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
651 CALL chkxer(
'CHESV_ROOK', infot, nout, lerr, ok )
653 ELSE IF(
lsamen( 2, c2,
'HP' ) )
THEN
659 CALL chpsv(
'/', 0, 0, a, ip, b, 1, info )
660 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
662 CALL chpsv(
'U', -1, 0, a, ip, b, 1, info )
663 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
665 CALL chpsv(
'U', 0, -1, a, ip, b, 1, info )
666 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
668 CALL chpsv(
'U', 2, 0, a, ip, b, 1, info )
669 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
675 CALL chpsvx(
'/',
'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
677 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
679 CALL chpsvx(
'N',
'/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
681 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
683 CALL chpsvx(
'N',
'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
685 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
687 CALL chpsvx(
'N',
'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
689 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
691 CALL chpsvx(
'N',
'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
693 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
695 CALL chpsvx(
'N',
'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
697 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
699 ELSE IF(
lsamen( 2, c2,
'SY' ) )
THEN
705 CALL csysv(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
706 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
708 CALL csysv(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
709 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
711 CALL csysv(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
712 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
714 CALL csysv(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
715 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
721 CALL csysvx(
'/',
'U', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
722 $ rcond, r1, r2, w, 1, rw, info )
723 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
725 CALL csysvx(
'N',
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1,
726 $ rcond, r1, r2, w, 1, rw, info )
727 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
729 CALL csysvx(
'N',
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
730 $ rcond, r1, r2, w, 1, rw, info )
731 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
733 CALL csysvx(
'N',
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
734 $ rcond, r1, r2, w, 1, rw, info )
735 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
737 CALL csysvx(
'N',
'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
738 $ rcond, r1, r2, w, 4, rw, info )
739 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
741 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
742 $ rcond, r1, r2, w, 4, rw, info )
743 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
745 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
746 $ rcond, r1, r2, w, 4, rw, info )
747 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
749 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
750 $ rcond, r1, r2, w, 4, rw, info )
751 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
753 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
754 $ rcond, r1, r2, w, 3, rw, info )
755 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
757 ELSE IF(
lsamen( 2, c2,
'SR' ) )
THEN
761 srnamt =
'CSYSV_ROOK'
763 CALL csysv_rook(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
764 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
766 CALL csysv_rook(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
767 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
769 CALL csysv_rook(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
770 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
772 CALL csysv_rook(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
773 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
775 ELSE IF(
lsamen( 2, c2,
'SP' ) )
THEN
781 CALL cspsv(
'/', 0, 0, a, ip, b, 1, info )
782 CALL chkxer(
'CSPSV ', infot, nout, lerr, ok )
784 CALL cspsv(
'U', -1, 0, a, ip, b, 1, info )
785 CALL chkxer(
'CSPSV ', infot, nout, lerr, ok )
787 CALL cspsv(
'U', 0, -1, a, ip, b, 1, info )
788 CALL chkxer(
'CSPSV ', infot, nout, lerr, ok )
790 CALL cspsv(
'U', 2, 0, a, ip, b, 1, info )
791 CALL chkxer(
'CSPSV ', infot, nout, lerr, ok )
797 CALL cspsvx(
'/',
'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
799 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
801 CALL cspsvx(
'N',
'/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
803 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
805 CALL cspsvx(
'N',
'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
807 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
809 CALL cspsvx(
'N',
'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
811 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
813 CALL cspsvx(
'N',
'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
815 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
817 CALL cspsvx(
'N',
'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
819 CALL chkxer(
'CSPSVX', infot, nout, lerr, ok )
825 WRITE( nout, fmt = 9999 )path
827 WRITE( nout, fmt = 9998 )path
830 9999
FORMAT( 1x, a3,
' drivers passed the tests of the error exits' )
831 9998
FORMAT(
' *** ', a3,
' drivers failed the tests of the error ',
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 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 cspsv(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
CSPSV computes the solution to system of linear equations A * X = B for OTHER matrices ...
logical function lsamen(N, CA, CB)
LSAMEN
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 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 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 cptsv(N, NRHS, D, E, B, LDB, INFO)
CPTSV computes the solution to system of linear equations A * X = B for PT 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 ...
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 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 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 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 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 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 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 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 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 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 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 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 ...