79 REAL C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
80 $ RF( NMAX ), RW( NMAX )
81 COMPLEX A( NMAX, NMAX ), ( 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 cmplx, real
111 WRITE( nout, fmt = * )
118 a( i, j ) =
cmplx( 1. / real( i+j ), -1. / real( i+j ) )
119 af( i, j ) =
cmplx( 1. / real( i+j ), -1. / real( i+j ) )
134 IF( lsamen( 2, c2,
'GE' ) )
THEN
140 CALL cgesv( -1, 0, a, 1, ip, b, 1, info )
141 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
143 CALL cgesv( 0, -1, a, 1, ip, b, 1, info )
144 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
146 CALL cgesv( 2, 1, a, 1, ip, b, 2, info )
147 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
149 CALL cgesv( 2, 1, a, 2, ip, b, 1, info )
150 CALL chkxer(
'CGESV ', infot, nout, lerr, ok )
156 CALL cgesvx(
'/',
'N', 0, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
157 $ x, 1, rcond, r1, r2, w, rw, info )
158 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
160 CALL cgesvx( 'n
', '/
', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
161 $ X, 1, RCOND, R1, R2, W, RW, INFO )
162 CALL CHKXER( 'cgesvx', INFOT, NOUT, LERR, OK )
164 CALL CGESVX( 'n
', 'n
', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
165 $ X, 1, RCOND, R1, R2, W, RW, INFO )
166 CALL CHKXER( 'cgesvx', INFOT, NOUT, LERR, OK )
168 CALL CGESVX( 'n
', 'n
', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
169 $ X, 1, RCOND, R1, R2, W, RW, INFO )
170 CALL CHKXER( 'cgesvx', INFOT, NOUT, LERR, OK )
172 CALL CGESVX( 'n
', 'n
', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
173 $ X, 2, RCOND, R1, R2, W, RW, INFO )
174 CALL CHKXER( 'cgesvx', INFOT, NOUT, LERR, OK )
176 CALL CGESVX( 'n
', 'n
', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
177 $ X, 2, RCOND, R1, R2, W, RW, INFO )
178 CALL CHKXER( 'cgesvx', INFOT, NOUT, LERR, OK )
181 CALL CGESVX( 'f
', 'n
', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
182 $ X, 1, RCOND, R1, R2, W, RW, INFO )
183 CALL CHKXER( 'cgesvx', INFOT, NOUT, LERR, OK )
186 CALL CGESVX( 'f
', 'n
', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
187 $ X, 1, RCOND, R1, R2, W, RW, INFO )
188 CALL CHKXER( 'cgesvx', infot, nout, lerr, ok )
191 CALL cgesvx(
'F',
'N', 1, 0, a, 1, af, 1, ip, eq, r, c, b, 1,
192 $ x, 1, rcond, r1, r2, w, rw, info )
193 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
195 CALL cgesvx(
'N',
'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 1,
196 $ x, 2, rcond, r1, r2, w, rw, info )
197 CALL chkxer(
'CGESVX', infot, nout, lerr, ok )
199 CALL cgesvx(
'N',
'N', 2, 1, a, 2, af, 2, ip, eq, r, c, b, 2,
200 $ x, 1, rcond, r1, r2, w, rw, info )
201 CALL chkxer(
'CGESVX', infot, nout, lerr, ok
203 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN
209 CALL cgbsv( -1, 0, 0, 0, a, 1, ip, b, 1, info )
210 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
212 CALL cgbsv( 1, -1, 0, 0, a, 1, ip, b, 1, info )
213 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
215 CALL cgbsv( 1, 0, -1, 0, a, 1, ip, b, 1, info )
216 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
218 CALL cgbsv( 0, 0, 0, -1, a, 1, ip, b, 1, info )
219 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
221 CALL cgbsv( 1, 1, 1, 0, a, 3, ip, b, 1, info )
222 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
224 CALL cgbsv( 2, 0, 0, 0, a, 1, ip, b, 1, info )
225 CALL chkxer(
'CGBSV ', infot, nout, lerr, ok )
231 CALL cgbsvx(
'/',
'N', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
232 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
233 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
235 CALL cgbsvx(
'N',
'/', 0, 0, 0, 0, a, 1, af, 1, ip, eq, r, c,
236 $ b, 1, x, 1, rcond, r1, r2, w, rw, info )
237 CALL chkxer(
'CGBSVX', infot, nout, lerr, ok )
239 CALL cgbsvx(
'N', 'n
', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
240 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
241 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
243 CALL CGBSVX( 'n
', 'n
', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
244 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
245 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
247 CALL CGBSVX( 'n
', 'n
', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
248 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
249 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
251 CALL CGBSVX( 'n
', 'n
', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
252 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
253 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
255 CALL CGBSVX( 'n
', 'n
', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
256 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
257 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
259 CALL CGBSVX( 'n
', 'n
', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
260 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
261 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
264 CALL CGBSVX( 'f
', 'n
', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
265 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
266 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
269 CALL CGBSVX( 'f', 'n
', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
270 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
271 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
274 CALL CGBSVX( 'f
', 'n
', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
275 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
276 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
278 CALL CGBSVX( 'n
', 'n
', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
279 $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
280 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
282 CALL CGBSVX( 'n
', 'n
', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
283 $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
284 CALL CHKXER( 'cgbsvx', INFOT, NOUT, LERR, OK )
286 ELSE IF( LSAMEN( 2, C2, 'gt
' ) ) THEN
292 CALL CGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
294 CALL CHKXER( 'cgtsv ', INFOT, NOUT, LERR, OK )
296 CALL CGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
298 CALL CHKXER( 'cgtsv ', infot, nout, lerr, ok )
300 CALL cgtsv( 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b, 1, info )
301 CALL chkxer(
'CGTSV ', infot, nout, lerr, ok )
307 CALL cgtsvx(
'/',
'N', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
308 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
309 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
310 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
312 CALL cgtsvx(
'N',
'/', 0, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
313 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
314 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
315 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
317 CALL cgtsvx(
'N',
'N', -1, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
318 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
319 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
320 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
322 CALL cgtsvx(
'N',
'N', 0, -1, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
323 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
324 $ ip, b, 1, x, 1, rcond, r1, r2, w, rw, info )
325 CALL chkxer(
'CGTSVX', infot, nout, lerr, ok )
327 CALL cgtsvx(
'N',
'N', 2, 0, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
328 $ af( 1, 1 ), af( 1, 2 ), af( 1, 3 ), af( 1, 4 ),
329 $ ip, b, 1, x, 2, rcond, r1, r2, w, rw, info )
332 CALL CGTSVX( 'n
', 'n
', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
333 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
334 $ IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
335 CALL CHKXER( 'cgtsvx', INFOT, NOUT, LERR, OK )
337 ELSE IF( LSAMEN( 2, C2, 'po
' ) ) THEN
343 CALL CPOSV( '/
', 0, 0, A, 1, B, 1, INFO )
344 CALL CHKXER( 'cposv ', INFOT, NOUT, LERR, OK )
346 CALL CPOSV( 'u
', -1, 0, A, 1, B, 1, INFO )
347 CALL CHKXER( 'cposv ', INFOT, NOUT, LERR, OK )
349 CALL CPOSV( 'u
', 0, -1, A, 1, B, 1, INFO )
350 CALL CHKXER( 'cposv ', INFOT, NOUT, LERR, OK )
352 CALL CPOSV( 'u
', 2, 0, A, 1, B, 2, INFO )
353 CALL CHKXER( 'cposv ', INFOT, NOUT, LERR, OK )
355 CALL CPOSV( 'u
', 2, 0, A, 2, B, 1, INFO )
356 CALL CHKXER( 'cposv ', INFOT, NOUT, LERR, OK )
362 CALL CPOSVX( '/
', 'u
', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
363 $ RCOND, R1, R2, W, RW, INFO )
364 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
366 CALL CPOSVX( 'n
', '/
', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
367 $ RCOND, R1, R2, W, RW, INFO )
368 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
370 CALL CPOSVX( 'n
', 'u
', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
371 $ RCOND, R1, R2, W, RW, INFO )
372 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
374 CALL CPOSVX( 'n
', 'u
', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
375 $ RCOND, R1, R2, W, RW, INFO )
376 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
378 CALL CPOSVX( 'n
', 'u
', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
379 $ RCOND, R1, R2, W, RW, INFO )
380 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
382 CALL CPOSVX( 'n
', 'u
', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
383 $ RCOND, R1, R2, W, RW, INFO )
384 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
387 CALL CPOSVX( 'f
', 'u
', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
388 $ RCOND, R1, R2, W, RW, INFO )
389 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
392 CALL CPOSVX( 'f
', 'u
', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
393 $ RCOND, R1, R2, W, RW, INFO )
394 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
396 CALL CPOSVX( 'n
', 'u
', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
397 $ RCOND, R1, R2, W, RW, INFO )
398 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
400 CALL CPOSVX( 'n
', 'u
', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
401 $ RCOND, R1, R2, W, RW, INFO )
402 CALL CHKXER( 'cposvx', INFOT, NOUT, LERR, OK )
404 ELSE IF( LSAMEN( 2, C2, 'pp
' ) ) THEN
410 CALL CPPSV( '/
', 0, 0, A, B, 1, INFO )
411 CALL CHKXER( 'cppsv ', INFOT, NOUT, LERR, OK )
413 CALL CPPSV( 'u
', -1, 0, A, B, 1, INFO )
414 CALL CHKXER( 'cppsv ', INFOT, NOUT, LERR, OK )
416 CALL CPPSV( 'u
', 0, -1, A, B, 1, INFO )
417 CALL CHKXER( 'cppsv ', INFOT, NOUT, LERR, OK )
419 CALL CPPSV( 'u', 2, 0, a, b, 1, info )
420 CALL chkxer(
'CPPSV ', infot, nout, lerr, ok )
426 CALL cppsvx(
'/',
'U', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
427 $ r1, r2, w, rw, info )
428 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
430 CALL cppsvx(
'N',
'/', 0, 0, a, af, eq, c, b, 1, x, 1, rcond,
431 $ r1, r2, w, rw, info )
432 CALL chkxer(
'CPPSVX', infot, nout, lerr, ok )
434 CALL cppsvx(
'N',
'U', -1, 0, a, af, eq, c, b, 1, x, 1, rcond,
435 $ r1, r2, w, rw, info )
438 CALL CPPSVX( 'n
', 'u
', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
439 $ R1, R2, W, RW, INFO )
440 CALL CHKXER( 'cppsvx', INFOT, NOUT, LERR, OK )
443 CALL CPPSVX( 'f
', 'u
', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
444 $ R1, R2, W, RW, INFO )
445 CALL CHKXER( 'cppsvx', INFOT, NOUT, LERR, OK )
448 CALL CPPSVX( 'f
', 'u
', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
449 $ R1, R2, W, RW, INFO )
450 CALL CHKXER( 'cppsvx', INFOT, NOUT, LERR, OK )
452 CALL CPPSVX( 'n
', 'u
', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
453 $ R1, R2, W, RW, INFO )
454 CALL CHKXER( 'cppsvx', INFOT, NOUT, LERR, OK )
456 CALL CPPSVX( 'n
', 'u
', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
457 $ R1, R2, W, RW, INFO )
458 CALL CHKXER( 'cppsvx', INFOT, NOUT, LERR, OK )
460 ELSE IF( LSAMEN( 2, C2, 'pb
' ) ) THEN
466 CALL CPBSV( '/
', 0, 0, 0, A, 1, B, 1, INFO )
467 CALL CHKXER( 'cpbsv ', INFOT, NOUT, LERR, OK )
469 CALL CPBSV( 'u
', -1, 0, 0, A, 1, B, 1, INFO )
470 CALL CHKXER( 'cpbsv ', INFOT, NOUT, LERR, OK )
472 CALL CPBSV( 'u
', 1, -1, 0, A, 1, B, 1, INFO )
473 CALL CHKXER( 'cpbsv ', INFOT, NOUT, LERR, OK )
475 CALL CPBSV( 'u
', 0, 0, -1, A, 1, B, 1, INFO )
476 CALL CHKXER( 'cpbsv ', INFOT, NOUT, LERR, OK )
478 CALL CPBSV( 'u
', 1, 1, 0, A, 1, B, 2, INFO )
479 CALL CHKXER( 'cpbsv ', INFOT, NOUT, LERR, OK )
481 CALL CPBSV( 'u
', 2, 0, 0, A, 1, B, 1, INFO )
482 CALL CHKXER( 'cpbsv ', INFOT, NOUT, LERR, OK )
488 CALL CPBSVX( '/
', 'u
', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
489 $ RCOND, R1, R2, W, RW, INFO )
490 CALL CHKXER( 'cpbsvx', INFOT, NOUT, LERR, OK )
492 CALL CPBSVX( 'n
', '/
', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
493 $ RCOND, R1, R2, W, RW, INFO )
494 CALL CHKXER( 'cpbsvx', INFOT, NOUT, LERR, OK )
496 CALL CPBSVX( 'n
', 'u
', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
497 $ 1, RCOND, R1, R2, W, RW, INFO )
498 CALL CHKXER( 'cpbsvx', INFOT, NOUT, LERR, OK )
500 CALL CPBSVX( 'n
', 'u
', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
501 $ 1, RCOND, R1, R2, W, RW, INFO )
502 CALL CHKXER( 'cpbsvx', INFOT, NOUT, LERR, OK )
504 CALL CPBSVX( 'n
', 'u
', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
505 $ 1, RCOND, R1, R2, W, RW, INFO )
506 CALL CHKXER( 'cpbsvx', INFOT, NOUT, LERR, OK )
508 CALL CPBSVX( 'n
', 'u
', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
509 $ RCOND, R1, R2, W, RW, INFO )
510 CALL CHKXER( 'cpbsvx', INFOT, NOUT, LERR, OK )
512 CALL CPBSVX( 'n
', 'u
', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
513 $ RCOND, R1, R2, W, RW, INFO )
514 CALL CHKXER( 'cpbsvx', INFOT, NOUT, LERR, OK )
517 CALL CPBSVX( 'f
', 'u
', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
518 $ RCOND, R1, R2, W, RW, INFO )
519 CALL CHKXER( 'cpbsvx', INFOT, NOUT, LERR, OK )
522 CALL CPBSVX( 'f
', 'u
', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
523 $ RCOND, R1, R2, W, RW, INFO )
524 CALL CHKXER( 'cpbsvx', INFOT, NOUT, LERR, OK )
526 CALL CPBSVX( 'n
', 'u
', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
527 $ RCOND, R1, R2, W, RW, INFO )
528 CALL CHKXER( 'cpbsvx', infot, nout, lerr, ok )
530 CALL cpbsvx(
'N',
'U', 2, 0, 0, a, 1, af, 1, eq, c, b, 2, x, 1,
531 $ rcond, r1, r2, w, rw, info )
532 CALL chkxer(
'CPBSVX', infot, nout, lerr, ok )
534 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN
540 CALL cptsv( -1, 0, r, a( 1, 1 ), b, 1, info )
543 CALL CPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
544 CALL CHKXER( 'cptsv ', INFOT, NOUT, LERR, OK )
546 CALL CPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
547 CALL CHKXER( 'cptsv ', INFOT, NOUT, LERR, OK )
553 CALL CPTSVX( '/
', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
554 $ 1, RCOND, R1, R2, W, RW, INFO )
555 CALL CHKXER( 'cptsvx', INFOT, NOUT, LERR, OK )
557 CALL CPTSVX( 'n
', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
558 $ 1, RCOND, R1, R2, W, RW, INFO )
559 CALL CHKXER( 'cptsvx', INFOT, NOUT, LERR, OK )
561 CALL CPTSVX( 'n
', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
562 $ 1, RCOND, R1, R2, W, RW, INFO )
563 CALL CHKXER( 'cptsvx', infot, nout, lerr, ok )
565 CALL cptsvx(
'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 1, x,
566 $ 2, rcond, r1, r2, w, rw, info )
567 CALL chkxer(
'CPTSVX', infot, nout, lerr, ok )
569 CALL cptsvx(
'N', 2, 0, r, a( 1, 1 ), rf, af( 1, 1 ), b, 2, x,
570 $ 1, rcond, r1, r2, w, rw, info )
571 CALL chkxer(
'CPTSVX', infot, nout, lerr, ok )
573 ELSE IF( lsamen( 2, c2,
'HE' ) )
THEN
579 CALL chesv(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
580 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
582 CALL chesv(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
583 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
585 CALL chesv(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
586 CALL chkxer(
'CHESV ', infot, nout, lerr, ok )
588 CALL chesv(
'U', 2, 0, a, 1, ip, b, 2, w, 1, info )
591 CALL CHESV( 'u
', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
592 CALL CHKXER( 'chesv ', INFOT, NOUT, LERR, OK )
594 CALL CHESV( 'u
', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
595 CALL CHKXER( 'chesv ', INFOT, NOUT, LERR, OK )
597 CALL CHESV( 'u
', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
598 CALL CHKXER( 'chesv ', INFOT, NOUT, LERR, OK )
604 CALL CHESVX( '/
', 'u
', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
605 $ RCOND, R1, R2, W, 1, RW, INFO )
606 CALL CHKXER( 'chesvx', INFOT, NOUT, LERR, OK )
608 CALL CHESVX( 'n
', '/
', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
609 $ RCOND, R1, R2, W, 1, RW, INFO )
610 CALL CHKXER( 'chesvx', INFOT, NOUT, LERR, OK )
612 CALL CHESVX( 'n
', 'u
', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
613 $ RCOND, R1, R2, W, 1, RW, INFO )
614 CALL CHKXER( 'chesvx', INFOT, NOUT, LERR, OK )
616 CALL CHESVX( 'n
', 'u
', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
617 $ RCOND, R1, R2, W, 1, RW, INFO )
618 CALL CHKXER( 'chesvx', INFOT, NOUT, LERR, OK )
620 CALL CHESVX( 'n
', 'u
', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
621 $ RCOND, R1, R2, W, 4, RW, INFO )
622 CALL CHKXER( 'chesvx', INFOT, NOUT, LERR, OK )
624 CALL CHESVX( 'n
', 'u
', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
625 $ RCOND, R1, R2, W, 4, RW, INFO )
626 CALL CHKXER( 'chesvx', INFOT, NOUT, LERR, OK )
628 CALL CHESVX( 'n
', 'u
', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
629 $ RCOND, R1, R2, W, 4, RW, INFO )
630 CALL CHKXER( 'chesvx', INFOT, NOUT, LERR, OK )
632 CALL CHESVX( 'n
', 'u
', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
633 $ RCOND, R1, R2, W, 4, RW, INFO )
634 CALL CHKXER( 'chesvx', INFOT, NOUT, LERR, OK )
636 CALL CHESVX( 'n
', 'u
', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
637 $ RCOND, R1, R2, W, 3, RW, INFO )
638 CALL CHKXER( 'chesvx', INFOT, NOUT, LERR, OK )
640 ELSE IF( LSAMEN( 2, C2, 'hr
' ) ) THEN
646 CALL CHESV_ROOK( '/
', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
647 CALL CHKXER( 'chesv_rook', INFOT, NOUT, LERR, OK )
649 CALL CHESV_ROOK( 'u
', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
650 CALL CHKXER( 'chesv_rook', INFOT, NOUT, LERR, OK )
652 CALL CHESV_ROOK( 'u
', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
653 CALL CHKXER( 'chesv_rook', INFOT, NOUT, LERR, OK )
655 CALL CHESV_ROOK( 'u
', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
656 CALL CHKXER( 'chesv_rook', INFOT, NOUT, LERR, OK )
658 CALL CHESV_ROOK( 'u
', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
659 CALL CHKXER( 'chesv_rook', INFOT, NOUT, LERR, OK )
661 CALL CHESV_ROOK( 'u
', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
662 CALL CHKXER( 'chesv_rook', INFOT, NOUT, LERR, OK )
664 ELSE IF( LSAMEN( 2, C2, 'hk
' ) ) THEN
678 CALL CHESV_RK( '/
', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
679 CALL CHKXER( 'chesv_rk', INFOT, NOUT, LERR, OK )
681 CALL CHESV_RK( 'u
', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
682 CALL CHKXER( 'chesv_rk', INFOT, NOUT, LERR, OK )
684 CALL CHESV_RK( 'u
', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
685 CALL CHKXER( 'chesv_rk', INFOT, NOUT, LERR, OK )
687 CALL CHESV_RK( 'u
', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
688 CALL CHKXER( 'chesv_rk', INFOT, NOUT, LERR, OK )
690 CALL CHESV_RK( 'u
', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
691 CALL CHKXER( 'chesv_rk', INFOT, NOUT, LERR, OK )
693 CALL CHESV_RK( 'u
', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
694 CALL CHKXER( 'chesv_rk', INFOT, NOUT, LERR, OK )
696 CALL CHESV_RK( 'u
', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
697 CALL CHKXER( 'chesv_rk', INFOT, NOUT, LERR, OK )
699 ELSE IF( LSAMEN( 2, C2, 'ha
' ) ) THEN
705 CALL CHESV_AA( '/
', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
706 CALL CHKXER( 'chesv_aa', INFOT, NOUT, LERR, OK )
708 CALL CHESV_AA( 'u
', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
709 CALL CHKXER( 'chesv_aa', INFOT, NOUT, LERR, OK )
711 CALL CHESV_AA( 'u
', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
712 CALL CHKXER( 'chesv_aa', INFOT, NOUT, LERR, OK )
714 CALL CHESV_AA( 'u
', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
715 CALL CHKXER( 'chesv_aa', INFOT, NOUT, LERR, OK )
717 ELSE IF( LSAMEN( 2, C2, 'h2
' ) ) THEN
723 CALL CHESV_AA_2STAGE( '/
', 0, 0, A, 1, A, 1, IP, IP, B, 1,
727 CALL CHESV_AA_2STAGE( 'u
', -1, 0, A, 1, A, 1, IP, IP, B, 1,
731 CALL CHESV_AA_2STAGE( 'u
', 0, -1, A, 1, A, 1, IP, IP, B, 1,
735 CALL CHESV_AA_2STAGE( 'u
', 2, 1, A, 1, A, 1, IP, IP, B, 1,
739 CALL CHESV_AA_2STAGE( 'u
', 2, 1, A, 2, A, 8, IP, IP, B, 1,
743 CALL CHESV_AA_2STAGE( 'u', 2, 1, a, 2, a, 1, ip, ip, b, 2,
745 CALL chkxer(
'CHESV_AA_2STAGE', infot, nout, lerr, ok )
747 ELSE IF( lsamen( 2, c2,
'S2' ) )
THEN
751 srnamt =
'CSYSV_AA_2STAGE'
753 CALL csysv_aa_2stage(
'/', 0, 0, a, 1, a, 1, ip, ip, b, 1,
755 CALL chkxer(
'CSYSV_AA_2STAGE', infot, nout, lerr, ok )
757 CALL csysv_aa_2stage(
'U', -1, 0, a, 1, a, 1, ip, ip, b, 1,
759 CALL chkxer(
'CSYSV_AA_2STAGE', infot, nout, lerr, ok )
761 CALL csysv_aa_2stage(
'U', 0, -1, a, 1, a, 1, ip, ip, b, 1,
763 CALL chkxer(
'CSYSV_AA_2STAGE', infot, nout, lerr, ok )
765 CALL csysv_aa_2stage(
'U', 2, 1, a, 1, a, 1, ip, ip, b, 1,
767 CALL chkxer(
'CSYSV_AA_2STAGE', infot, nout, lerr, ok )
769 CALL csysv_aa_2stage(
'U', 2, 1, a, 2, a, 8, ip, ip, b, 1,
771 CALL chkxer(
'CSYSV_AA_2STAGE', infot, nout, lerr, ok )
773 CALL csysv_aa_2stage(
'U', 2, 1, a, 2, a, 1, ip, ip, b, 2,
775 CALL chkxer(
'CSYSV_AA_2STAGE', infot, nout, lerr, ok )
777 ELSE IF( lsamen( 2, c2,
'HP' ) )
THEN
783 CALL chpsv(
'/', 0, 0, a, ip, b, 1, info )
784 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
786 CALL chpsv(
'U', -1, 0, a, ip, b, 1, info )
787 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
789 CALL chpsv(
'U', 0, -1, a, ip, b, 1, info )
790 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
792 CALL chpsv(
'U', 2, 0, a, ip, b, 1, info )
793 CALL chkxer(
'CHPSV ', infot, nout, lerr, ok )
799 CALL chpsvx(
'/',
'U', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
801 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
803 CALL chpsvx(
'N',
'/', 0, 0, a, af, ip, b, 1, x, 1, rcond, r1,
805 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
807 CALL chpsvx(
'N',
'U', -1, 0, a, af, ip, b, 1, x, 1, rcond, r1,
809 CALL chkxer(
'CHPSVX', infot
811 CALL chpsvx(
'N',
'U', 0, -1, a, af, ip, b, 1, x, 1, rcond, r1,
813 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
815 CALL chpsvx(
'N',
'U', 2, 0, a, af, ip, b, 1, x, 2, rcond, r1,
817 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
819 CALL chpsvx(
'N',
'U', 2, 0, a, af, ip, b, 2, x, 1, rcond, r1,
821 CALL chkxer(
'CHPSVX', infot, nout, lerr, ok )
823 ELSE IF( lsamen( 2, c2,
'SY' ) )
THEN
829 CALL csysv(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
830 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
832 CALL csysv(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
833 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
835 CALL csysv(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
836 CALL chkxer(
'CSYSV ', infot, nout, lerr, ok )
838 CALL csysv(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
841 CALL CSYSV( 'u
', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
842 CALL CHKXER( 'csysv ', INFOT, NOUT, LERR, OK )
844 CALL CSYSV( 'u
', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
845 CALL CHKXER( 'csysv ', INFOT, NOUT, LERR, OK )
851 CALL CSYSVX( '/
', 'u
', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
852 $ RCOND, R1, R2, W, 1, RW, INFO )
853 CALL CHKXER( 'csysvx', INFOT, NOUT, LERR, OK )
855 CALL CSYSVX( 'n
', '/
', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
856 $ RCOND, R1, R2, W, 1, RW, INFO )
857 CALL CHKXER( 'csysvx', INFOT, NOUT, LERR, OK )
859 CALL CSYSVX( 'n
', 'u', -1, 0, a, 1, af, 1, ip, b, 1, x, 1,
860 $ rcond, r1, r2, w, 1, rw, info )
861 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
863 CALL csysvx(
'N',
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1,
864 $ rcond, r1, r2, w, 1, rw, info )
865 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
867 CALL csysvx(
'N',
'U', 2, 0, a, 1, af, 2, ip, b, 2, x, 2,
868 $ rcond, r1, r2, w, 4, rw, info )
869 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
871 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 1, ip, b, 2, x, 2,
873 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
875 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 1, x, 2,
876 $ rcond, r1, r2, w, 4, rw, info )
877 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
879 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 1,
880 $ rcond, r1, r2, w, 4, rw, info )
881 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
883 CALL csysvx(
'N',
'U', 2, 0, a, 2, af, 2, ip, b, 2, x, 2,
884 $ rcond, r1, r2, w, 3, rw, info )
885 CALL chkxer(
'CSYSVX', infot, nout, lerr, ok )
887 ELSE IF( lsamen( 2, c2,
'SR' ) )
THEN
891 srnamt =
'CSYSV_ROOK'
893 CALL csysv_rook(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
894 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
896 CALL csysv_rook(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
897 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
899 CALL csysv_rook(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
900 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
902 CALL csysv_rook(
'U', 2, 0, a, 2, ip, b, 1, w, 1, info )
903 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
905 CALL csysv_rook(
'U', 0, 0, a, 1, ip, b, 1, w, 0, info )
906 CALL chkxer(
'CSYSV_ROOK', infot, nout, lerr, ok )
908 CALL csysv_rook(
'U', 0, 0, a, 1, ip, b, 1, w, -2, info )
911 ELSE IF( LSAMEN( 2, C2, 'sk
' ) ) THEN
925 CALL CSYSV_RK( '/
', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
926 CALL CHKXER( 'csysv_rk', INFOT, NOUT, LERR, OK )
928 CALL CSYSV_RK( 'u
', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
929 CALL CHKXER( 'csysv_rk', INFOT, NOUT, LERR, OK )
931 CALL CSYSV_RK( 'u
', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
932 CALL CHKXER( 'csysv_rk', INFOT, NOUT, LERR, OK )
934 CALL CSYSV_RK( 'u
', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
935 CALL CHKXER( 'csysv_rk', INFOT, NOUT, LERR, OK )
937 CALL CSYSV_RK( 'u
', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
938 CALL CHKXER( 'csysv_rk', INFOT, NOUT, LERR, OK )
940 CALL CSYSV_RK( 'u
', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
941 CALL CHKXER( 'csysv_rk', INFOT, NOUT, LERR, OK )
943 CALL CSYSV_RK( 'u
', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
944 CALL CHKXER( 'csysv_rk', INFOT, NOUT, LERR, OK )
946 ELSE IF( LSAMEN( 2, C2, 'sp
' ) ) THEN
952 CALL CSPSV( '/
', 0, 0, A, IP, B, 1, INFO )
953 CALL CHKXER( 'cspsv ', INFOT, NOUT, LERR, OK )
955 CALL CSPSV( 'u
', -1, 0, A, IP, B, 1, INFO )
956 CALL CHKXER( 'cspsv ', INFOT, NOUT, LERR, OK )
958 CALL CSPSV( 'u
', 0, -1, A, IP, B, 1, INFO )
959 CALL CHKXER( 'cspsv ', INFOT, NOUT, LERR, OK )
961 CALL CSPSV( 'u
', 2, 0, A, IP, B, 1, INFO )
962 CALL CHKXER( 'cspsv ', INFOT, NOUT, LERR, OK )
968 CALL CSPSVX( '/
', 'u
', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
970 CALL CHKXER( 'cspsvx', INFOT, NOUT, LERR, OK )
972 CALL CSPSVX( 'n
', '/
', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
974 CALL CHKXER( 'cspsvx', INFOT, NOUT, LERR, OK )
976 CALL CSPSVX( 'n
', 'u
', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
978 CALL CHKXER( 'cspsvx', INFOT, NOUT, LERR, OK )
980 CALL CSPSVX( 'n
', 'u
', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
982 CALL CHKXER( 'cspsvx', INFOT, NOUT, LERR, OK )
984 CALL CSPSVX( 'n
', 'u
', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
986 CALL CHKXER( 'cspsvx', INFOT, NOUT, LERR, OK )
988 CALL CSPSVX( 'n
', 'u
', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
990 CALL CHKXER( 'cspsvx', INFOT, NOUT, LERR, OK )
996 WRITE( NOUT, FMT = 9999 )PATH
998 WRITE( NOUT, FMT = 9998 )PATH
1001 9999 FORMAT( 1X, A3, ' drivers passed
the tests of
the error exits
' )
1002 9998 FORMAT( ' ***
', A3, ' drivers failed
the tests of
the error
',