76 REAL R1( NMAX ), R2( NMAX ), RW( )
77 COMPLEX A( NMAX, NMAX ), B( NMAX ), W( NMAX ),
95 COMMON / infoc / infot, nout, ok, lerr
96 COMMON / srnamc / srnamt
101 WRITE( nout, fmt = * )
111 IF( lsamen( 2, c2,
'TR' ) )
THEN
117 CALL ctrtri(
'/',
'N', 0, a, 1, info )
118 CALL chkxer(
'CTRTRI', infot, nout, lerr, ok )
120 CALL ctrtri(
'U',
'/', 0, a, 1, info )
123 CALL CTRTRI( 'u
', 'n
', -1, A, 1, INFO )
124 CALL CHKXER( 'ctrtri', INFOT, NOUT, LERR, OK )
126 CALL CTRTRI( 'u
', 'n
', 2, A, 1, INFO )
127 CALL CHKXER( 'ctrtri', INFOT, NOUT, LERR, OK )
133 CALL CTRTI2( '/
', 'n
', 0, A, 1, INFO )
134 CALL CHKXER( 'ctrti2', INFOT, NOUT, LERR, OK )
136 CALL CTRTI2( 'u',
'/', 0, a, 1, info )
137 CALL chkxer(
'CTRTI2', infot, nout, lerr, ok )
139 CALL ctrti2(
'U',
'N', -1, a, 1, info )
140 CALL chkxer(
'CTRTI2', infot, nout, lerr, ok )
142 CALL ctrti2(
'U',
'N', 2, a, 1, info )
143 CALL chkxer(
'CTRTI2', infot, nout, lerr, ok )
150 CALL ctrtrs(
'/',
'N',
'N', 0, 0, a, 1, x, 1, info )
151 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
153 CALL ctrtrs(
'U',
'/',
'N', 0, 0, a, 1, x, 1, info )
154 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
156 CALL ctrtrs(
'U',
'N',
'/', 0, 0, a, 1, x, 1, info )
157 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
159 CALL ctrtrs(
'U',
'N',
'N', -1, 0, a, 1, x, 1, info )
160 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
162 CALL ctrtrs(
'U',
'N',
'N', 0, -1, a, 1, x, 1, info )
163 CALL chkxer(
'CTRTRS', infot, nout, lerr, ok )
170 CALL ctrrfs(
'/',
'N',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
172 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
174 CALL ctrrfs(
'U',
'/',
'N', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
176 CALL chkxer(
'CTRRFS', infot, nout, lerr, ok )
178 CALL ctrrfs(
'U',
'N',
'/', 0, 0, a, 1, b, 1, x, 1, r1, r2, w,
182 CALL CTRRFS( 'u
', 'n
', 'n
', -1, 0, A, 1, B, 1, X, 1, R1, R2, W,
184 CALL CHKXER( 'ctrrfs', INFOT, NOUT, LERR, OK )
186 CALL CTRRFS( 'u
', 'n
', 'n
', 0, -1, A, 1, B, 1, X, 1, R1, R2, W,
188 CALL CHKXER( 'ctrrfs', INFOT, NOUT, LERR, OK )
190 CALL CTRRFS( 'u
', 'n
', 'n
', 2, 1, A, 1, B, 2, X, 2, R1, R2, W,
192 CALL CHKXER( 'ctrrfs', INFOT, NOUT, LERR, OK )
194 CALL CTRRFS( 'u
', 'n
', 'n
', 2, 1, A, 2, B, 1, X, 2, R1, R2, W,
196 CALL CHKXER( 'ctrrfs', INFOT, NOUT, LERR, OK )
198 CALL CTRRFS( 'u
', 'n
', 'n
', 2, 1, A, 2, B, 2, X, 1, R1, R2, W,
200 CALL CHKXER( 'ctrrfs', INFOT, NOUT, LERR, OK )
206 CALL CTRCON( '/
', 'u
', 'n
', 0, A, 1, RCOND, W, RW, INFO )
207 CALL CHKXER( 'ctrcon', INFOT, NOUT, LERR, OK )
209 CALL CTRCON( '1
', '/
', 'n
', 0, A, 1, RCOND, W, RW, INFO )
210 CALL CHKXER( 'ctrcon', INFOT, NOUT, LERR, OK )
212 CALL CTRCON( '1
', 'u
', '/
', 0, A, 1, RCOND, W, RW, INFO )
213 CALL CHKXER( 'ctrcon', INFOT, NOUT, LERR, OK )
215 CALL CTRCON( '1
', 'u
', 'n
', -1, A, 1, RCOND, W, RW, INFO )
216 CALL CHKXER( 'ctrcon', INFOT, NOUT, LERR, OK )
218 CALL CTRCON( '1
', 'u
', 'n
', 2, A, 1, RCOND, W, RW, INFO )
219 CALL CHKXER( 'ctrcon', INFOT, NOUT, LERR, OK )
225 CALL CLATRS( '/
', 'n
', 'n
', 'n
', 0, A, 1, X, SCALE, RW, INFO )
226 CALL CHKXER( 'clatrs', INFOT, NOUT, LERR, OK )
228 CALL CLATRS( 'u
', '/',
'N',
'N', 0, a, 1, x, scale, rw, info )
229 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
231 CALL clatrs(
'U',
'N',
'/',
'N', 0, a, 1, x, scale, rw, info )
232 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
234 CALL clatrs(
'U',
'N',
'N',
'/', 0, a, 1, x, scale, rw, info )
235 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
237 CALL clatrs(
'U',
'N',
'N',
'N', -1, a, 1, x, scale, rw, info )
238 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
240 CALL clatrs(
'U',
'N',
'N',
'N', 2, a, 1, x, scale, rw, info )
241 CALL chkxer(
'CLATRS', infot, nout, lerr, ok )
245 ELSE IF( lsamen( 2, c2,
'TP' ) )
THEN
251 CALL ctptri(
'/',
'N', 0, a, info )
252 CALL chkxer(
'CTPTRI', infot, nout, lerr, ok )
254 CALL ctptri(
'U',
'/', 0, a, info )
255 CALL chkxer(
'CTPTRI', infot, nout, lerr, ok )
257 CALL ctptri(
'U',
'N', -1, a, info )
258 CALL chkxer(
'CTPTRI', infot, nout, lerr, ok )
264 CALL ctptrs(
'/', 'n
', 'n
', 0, 0, A, X, 1, INFO )
265 CALL CHKXER( 'ctptrs', INFOT, NOUT, LERR, OK )
267 CALL CTPTRS( 'u
', '/
', 'n
', 0, 0, A, X, 1, INFO )
268 CALL CHKXER( 'ctptrs', INFOT, NOUT, LERR, OK )
270 CALL CTPTRS( 'u
', 'n
', '/
', 0, 0, A, X, 1, INFO )
271 CALL CHKXER( 'ctptrs', INFOT, NOUT, LERR, OK )
273 CALL CTPTRS( 'u
', 'n
', 'n
', -1, 0, A, X, 1, INFO )
274 CALL CHKXER( 'ctptrs', INFOT, NOUT, LERR, OK )
276 CALL CTPTRS( 'u
', 'n
', 'n
', 0, -1, A, X, 1, INFO )
277 CALL CHKXER( 'ctptrs', INFOT, NOUT, LERR, OK )
279 CALL CTPTRS( 'u
', 'n
', 'n
', 2, 1, A, X, 1, INFO )
280 CALL CHKXER( 'ctptrs', INFOT, NOUT, LERR, OK )
286 CALL CTPRFS( '/
', 'n
', 'n
', 0, 0, A, B, 1, X, 1, R1, R2, W, RW,
288 CALL CHKXER( 'ctprfs', INFOT, NOUT, LERR, OK )
290 CALL CTPRFS( 'u
', '/
', 'n
', 0, 0, A, B, 1, X, 1, R1, R2, W, RW,
292 CALL CHKXER( 'ctprfs', INFOT, NOUT, LERR, OK )
294 CALL CTPRFS( 'u
', 'n
', '/
', 0, 0, A, B, 1, X, 1, R1, R2, W, RW,
296 CALL CHKXER( 'ctprfs', INFOT, NOUT, LERR, OK )
298 CALL CTPRFS( 'u
', 'n
', 'n
', -1, 0, A, B, 1, X, 1, R1, R2, W,
300 CALL CHKXER( 'ctprfs', INFOT, NOUT, LERR, OK )
302 CALL CTPRFS( 'u
', 'n',
'N', 0, -1, a, b, 1, x, 1, r1, r2, w,
304 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
306 CALL ctprfs(
'U',
'N',
'N', 2, 1, a, b, 1, x, 2, r1, r2, w, rw,
308 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
310 CALL ctprfs(
'U',
'N',
'N', 2, 1, a, b, 2, x, 1, r1, r2, w, rw,
312 CALL chkxer(
'CTPRFS', infot, nout, lerr, ok )
318 CALL ctpcon(
'/',
'U',
'N', 0, a, rcond, w, rw, info )
319 CALL chkxer(
'CTPCON', infot, nout, lerr, ok )
321 CALL ctpcon(
'1',
'/',
'N', 0, a, rcond, w, rw, info )
324 CALL CTPCON( '1
', 'u
', '/
', 0, A, RCOND, W, RW, INFO )
325 CALL CHKXER( 'ctpcon', INFOT, NOUT, LERR, OK )
327 CALL CTPCON( '1
', 'u
', 'n
', -1, A, RCOND, W, RW, INFO )
328 CALL CHKXER( 'ctpcon', INFOT, NOUT, LERR, OK )
334 CALL CLATPS( '/
', 'n
', 'n
', 'n
', 0, A, X, SCALE, RW, INFO )
335 CALL CHKXER( 'clatps', INFOT, NOUT, LERR, OK )
337 CALL CLATPS( 'u
', '/
', 'n
', 'n
', 0, A, X, SCALE, RW, INFO )
338 CALL CHKXER( 'clatps', INFOT, NOUT, LERR, OK )
340 CALL CLATPS( 'u
', 'n
', '/
', 'n
', 0, A, X, SCALE, RW, INFO )
341 CALL CHKXER( 'clatps', INFOT, NOUT, LERR, OK )
343 CALL CLATPS( 'u
', 'n
', 'n
', '/
', 0, A, X, SCALE, RW, INFO )
344 CALL CHKXER( 'clatps', INFOT, NOUT, LERR, OK )
346 CALL CLATPS( 'u
', 'n
', 'n
', 'n
', -1, A, X, SCALE, RW, INFO )
347 CALL CHKXER( 'clatps', INFOT, NOUT, LERR, OK )
351 ELSE IF( LSAMEN( 2, C2, 'tb
' ) ) THEN
357 CALL CTBTRS( '/
', 'n
', 'n
', 0, 0, 0, A, 1, X, 1, INFO )
358 CALL CHKXER( 'ctbtrs', INFOT, NOUT, LERR, OK )
360 CALL CTBTRS( 'u
', '/
', 'n
', 0, 0, 0, A, 1, X, 1, INFO )
361 CALL CHKXER( 'ctbtrs', INFOT, NOUT, LERR, OK )
363 CALL CTBTRS( 'u
', 'n
', '/
', 0, 0, 0, A, 1, X, 1, INFO )
364 CALL CHKXER( 'ctbtrs', INFOT, NOUT, LERR, OK )
366 CALL CTBTRS( 'u
', 'n
', 'n
', -1, 0, 0, A, 1, X, 1, INFO )
367 CALL CHKXER( 'ctbtrs', INFOT, NOUT, LERR, OK )
369 CALL CTBTRS( 'u
', 'n
', 'n
', 0, -1, 0, A, 1, X, 1, INFO )
370 CALL CHKXER( 'ctbtrs', INFOT, NOUT, LERR, OK )
372 CALL CTBTRS( 'u
', 'n
', 'n
', 0, 0, -1, A, 1, X, 1, INFO )
373 CALL CHKXER( 'ctbtrs', INFOT, NOUT, LERR, OK )
375 CALL CTBTRS( 'u
', 'n
', 'n
', 2, 1, 1, A, 1, X, 2, INFO )
376 CALL CHKXER( 'ctbtrs', INFOT, NOUT, LERR, OK )
378 CALL CTBTRS( 'u
', 'n
', 'n
', 2, 0, 1, A, 1, X, 1, INFO )
379 CALL CHKXER( 'ctbtrs', INFOT, NOUT, LERR, OK )
385 CALL CTBRFS( '/
', 'n
', 'n
', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
387 CALL CHKXER( 'ctbrfs', INFOT, NOUT, LERR, OK )
389 CALL CTBRFS( 'u
', '/
', 'n
', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
391 CALL CHKXER( 'ctbrfs', INFOT, NOUT, LERR, OK )
393 CALL CTBRFS( 'u
', 'n
', '/
', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
395 CALL CHKXER( 'ctbrfs', INFOT, NOUT, LERR, OK )
397 CALL CTBRFS( 'u
', 'n
', 'n
', -1, 0, 0, A, 1, B, 1, X, 1, R1, R2,
399 CALL CHKXER( 'ctbrfs', INFOT, NOUT, LERR, OK )
401 CALL CTBRFS( 'u
', 'n
', 'n
', 0, -1, 0, A, 1, B, 1, X, 1, R1, R2,
403 CALL CHKXER( 'ctbrfs', INFOT, NOUT, LERR, OK )
405 CALL CTBRFS( 'u
', 'n
', 'n
', 0, 0, -1, A, 1, B, 1, X, 1, R1, R2,
407 CALL CHKXER( 'ctbrfs', INFOT, NOUT, LERR, OK )
409 CALL CTBRFS( 'u',
'N',
'N', 2, 1, 1, a, 1, b, 2, x, 2, r1, r2,
411 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
413 CALL ctbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 1, x, 2, r1, r2,
415 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
417 CALL ctbrfs(
'U',
'N',
'N', 2, 1, 1, a, 2, b, 2, x, 1, r1, r2,
419 CALL chkxer(
'CTBRFS', infot, nout, lerr, ok )
425 CALL ctbcon(
'/',
'U',
'N', 0, 0, a, 1, rcond, w, rw, info )
426 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
428 CALL ctbcon(
'1',
'/',
'N', 0, 0, a, 1, rcond, w, rw, info )
429 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
431 CALL ctbcon(
'1',
'U',
'/', 0, 0, a, 1, rcond, w, rw, info )
432 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
434 CALL ctbcon(
'1',
'U',
'N', -1, 0, a, 1, rcond, w, rw, info )
435 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
437 CALL ctbcon(
'1',
'U',
'N', 0, -1, a, 1, rcond, w, rw, info )
438 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
440 CALL ctbcon(
'1',
'U',
'N', 2, 1, a, 1, rcond, w, rw, info )
441 CALL chkxer(
'CTBCON', infot, nout, lerr, ok )
447 CALL clatbs(
'/',
'N',
'N',
'N', 0, 0, a, 1, x, scale, rw,
449 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
451 CALL clatbs(
'U',
'/',
'N',
'N', 0, 0, a, 1, x, scale, rw,
453 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
455 CALL clatbs(
'U', 'n',
'/',
'N', 0, 0, a, 1, x, scale, rw,
457 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
459 CALL clatbs(
'U',
'N',
'N',
'/', 0, 0, a, 1, x, scale, rw,
461 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
463 CALL clatbs(
'U',
'N',
'N',
'N', -1, 0, a, 1, x, scale, rw,
465 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
467 CALL clatbs(
'U',
'N',
'N',
'N', 1, -1, a, 1, x, scale, rw,
469 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
471 CALL clatbs(
'U',
'N',
'N',
'N', 2, 1, a, 1, x, scale, rw,
473 CALL chkxer(
'CLATBS', infot, nout, lerr, ok )
478 CALL alaesm( path, ok, nout )