77 REAL R( NMAX ), R1( NMAX ), R2( NMAX )
78 COMPLEX A( NMAX, ), AF( NMAX, NMAX ), B( NMAX ),
79 $ W( 2*NMAX ), X( NMAX )
97 COMMON / infoc / infot, nout, ok, lerr
98 COMMON / srnamc / srnamt
101 INTRINSIC cmplx, real
106 WRITE( nout, fmt = * )
113 a( i, j ) =
cmplx( 1. / real( i+j ), -1. / real( i+j ) )
114 af( i, j ) =
cmplx( 1. / real( i+j ), -1. / real( i+j ) )
128 IF( lsamen( 2, c2,
'PO' ) )
THEN
134 CALL cpotrf(
'/', 0, a, 1, info )
135 CALL chkxer(
'CPOTRF', infot, nout, lerr, ok )
137 CALL cpotrf(
'U', -1, a, 1, info )
138 CALL chkxer(
'CPOTRF', infot, nout, lerr, ok )
140 CALL cpotrf(
'U', 2, a, 1, info )
141 CALL chkxer(
'CPOTRF', infot, nout, lerr, ok )
147 CALL cpotf2(
'/', 0, a, 1, info )
148 CALL chkxer(
'CPOTF2', infot, nout, lerr, ok )
150 CALL cpotf2(
'U', -1, a, 1, info )
151 CALL chkxer(
'CPOTF2', infot, nout, lerr, ok )
153 CALL cpotf2(
'U', 2, a, 1, info )
154 CALL chkxer(
'CPOTF2', infot, nout, lerr, ok )
160 CALL cpotri(
'/', 0, a, 1, info )
161 CALL chkxer(
'CPOTRI', infot, nout, lerr, ok )
163 CALL cpotri(
'U', -1, a, 1, info )
164 CALL chkxer(
'CPOTRI', infot, nout, lerr, ok )
166 CALL cpotri(
'U', 2, a, 1, info )
167 CALL chkxer(
'CPOTRI', infot, nout, lerr, ok )
173 CALL cpotrs(
'/', 0, 0, a, 1, b, 1, info )
174 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
176 CALL cpotrs(
'U', -1, 0, a, 1, b, 1, info )
177 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
179 CALL cpotrs(
'U', 0, -1, a, 1, b, 1, info )
180 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
182 CALL cpotrs(
'U', 2, 1, a, 1, b, 2, info )
183 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
185 CALL cpotrs(
'U', 2, 1, a, 2, b, 1, info )
186 CALL chkxer(
'CPOTRS', infot, nout, lerr, ok )
192 CALL cporfs(
'/', 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
194 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
196 CALL cporfs(
'U', -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
198 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
200 CALL cporfs(
'U', 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
202 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
204 CALL cporfs(
'U', 2, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w, r,
206 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
208 CALL cporfs(
'U', 2, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w, r,
210 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
212 CALL cporfs(
'U', 2, 1, a, 2, af, 2, b, 1, x, 2, r1, r2, w, r,
214 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
216 CALL cporfs(
'U', 2, 1, a, 2, af, 2, b, 2, x, 1, r1, r2, w, r,
218 CALL chkxer(
'CPORFS', infot, nout, lerr, ok )
224 CALL cpocon(
'/', 0, a, 1, anrm, rcond, w, r, info )
227 CALL CPOCON( 'u
', -1, A, 1, ANRM, RCOND, W, R, INFO )
228 CALL CHKXER( 'cpocon', INFOT, NOUT, LERR, OK )
230 CALL CPOCON( 'u
', 2, A, 1, ANRM, RCOND, W, R, INFO )
231 CALL CHKXER( 'cpocon', INFOT, NOUT, LERR, OK )
233 CALL CPOCON( 'u
', 1, A, 1, -ANRM, RCOND, W, R, INFO )
234 CALL CHKXER( 'cpocon', INFOT, NOUT, LERR, OK )
240 CALL CPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
241 CALL CHKXER( 'cpoequ', INFOT, NOUT, LERR, OK )
243 CALL CPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
244 CALL CHKXER( 'cpoequ', INFOT, NOUT, LERR, OK )
249 ELSE IF( LSAMEN( 2, C2, 'pp
' ) ) THEN
255 CALL CPPTRF( '/
', 0, A, INFO )
256 CALL CHKXER( 'cpptrf', INFOT, NOUT, LERR, OK )
258 CALL CPPTRF( 'u
', -1, A, INFO )
259 CALL CHKXER( 'cpptrf', INFOT, NOUT, LERR, OK )
265 CALL CPPTRI( '/
', 0, A, INFO )
266 CALL CHKXER( 'cpptri', INFOT, NOUT, LERR, OK )
268 CALL CPPTRI( 'u
', -1, A, INFO )
269 CALL CHKXER( 'cpptri', INFOT, NOUT, LERR, OK )
275 CALL CPPTRS( '/
', 0, 0, A, B, 1, INFO )
276 CALL CHKXER( 'cpptrs', INFOT, NOUT, LERR, OK )
278 CALL CPPTRS( 'u
', -1, 0, A, B, 1, INFO )
279 CALL CHKXER( 'cpptrs', INFOT, NOUT, LERR, OK )
281 CALL CPPTRS( 'u
', 0, -1, A, B, 1, INFO )
282 CALL CHKXER( 'cpptrs', INFOT, NOUT, LERR, OK )
284 CALL CPPTRS( 'u
', 2, 1, A, B, 1, INFO )
285 CALL CHKXER( 'cpptrs', INFOT, NOUT, LERR, OK )
291 CALL CPPRFS( '/
', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, R, INFO )
292 CALL CHKXER( 'cpprfs', INFOT, NOUT, LERR, OK )
294 CALL CPPRFS( 'u
', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, R,
296 CALL CHKXER( 'cpprfs', INFOT, NOUT, LERR, OK )
298 CALL CPPRFS( 'u
', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, R,
300 CALL CHKXER( 'cpprfs', INFOT, NOUT, LERR, OK )
302 CALL CPPRFS( 'u
', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, R, INFO )
303 CALL CHKXER( 'cpprfs', INFOT, NOUT, LERR, OK )
305 CALL CPPRFS( 'u
', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, R, INFO )
306 CALL CHKXER( 'cpprfs', INFOT, NOUT, LERR, OK )
312 CALL CPPCON( '/
', 0, A, ANRM, RCOND, W, R, INFO )
313 CALL CHKXER( 'cppcon', INFOT, NOUT, LERR, OK )
315 CALL CPPCON( 'u
', -1, A, ANRM, RCOND, W, R, INFO )
316 CALL CHKXER( 'cppcon', INFOT, NOUT, LERR, OK )
318 CALL CPPCON( 'u
', 1, A, -ANRM, RCOND, W, R, INFO )
319 CALL CHKXER( 'cppcon', INFOT, NOUT, LERR, OK )
325 CALL CPPEQU( '/
', 0, A, R1, RCOND, ANRM, INFO )
326 CALL CHKXER( 'cppequ', INFOT, NOUT, LERR, OK )
328 CALL CPPEQU( 'u
', -1, A, R1, RCOND, ANRM, INFO )
329 CALL CHKXER( 'cppequ', INFOT, NOUT, LERR, OK )
334 ELSE IF( LSAMEN( 2, C2, 'pb
' ) ) THEN
340 CALL CPBTRF( '/
', 0, 0, A, 1, INFO )
341 CALL CHKXER( 'cpbtrf', INFOT, NOUT, LERR, OK )
343 CALL CPBTRF( 'u
', -1, 0, A, 1, INFO )
344 CALL CHKXER( 'cpbtrf', INFOT, NOUT, LERR, OK )
346 CALL CPBTRF( 'u
', 1, -1, A, 1, INFO )
347 CALL CHKXER( 'cpbtrf', INFOT, NOUT, LERR, OK )
349 CALL CPBTRF( 'u
', 2, 1, A, 1, INFO )
350 CALL CHKXER( 'cpbtrf', INFOT, NOUT, LERR, OK )
356 CALL CPBTF2( '/
', 0, 0, A, 1, INFO )
357 CALL CHKXER( 'cpbtf2', INFOT, NOUT, LERR, OK )
359 CALL CPBTF2( 'u
', -1, 0, A, 1, INFO )
360 CALL CHKXER( 'cpbtf2', INFOT, NOUT, LERR, OK )
362 CALL CPBTF2( 'u
', 1, -1, A, 1, INFO )
363 CALL CHKXER( 'cpbtf2', INFOT, NOUT, LERR, OK )
365 CALL CPBTF2( 'u
', 2, 1, A, 1, INFO )
366 CALL CHKXER( 'cpbtf2', INFOT, NOUT, LERR, OK )
372 CALL CPBTRS( '/
', 0, 0, 0, A, 1, B, 1, INFO )
373 CALL CHKXER( 'cpbtrs', INFOT, NOUT, LERR, OK )
375 CALL CPBTRS( 'u
', -1, 0, 0, A, 1, B, 1, INFO )
376 CALL CHKXER( 'cpbtrs', INFOT, NOUT, LERR, OK )
378 CALL CPBTRS( 'u
', 1, -1, 0, A, 1, B, 1, INFO )
379 CALL CHKXER( 'cpbtrs', INFOT, NOUT, LERR, OK )
381 CALL CPBTRS( 'u
', 0, 0, -1, A, 1, B, 1, INFO )
382 CALL CHKXER( 'cpbtrs', INFOT, NOUT, LERR, OK )
384 CALL CPBTRS( 'u
', 2, 1, 1, A, 1, B, 1, INFO )
385 CALL CHKXER( 'cpbtrs', INFOT, NOUT, LERR, OK )
387 CALL CPBTRS( 'u
', 2, 0, 1, A, 1, B, 1, INFO )
388 CALL CHKXER( 'cpbtrs', INFOT, NOUT, LERR, OK )
394 CALL CPBRFS( '/
', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
396 CALL CHKXER( 'cpbrfs', INFOT, NOUT, LERR, OK )
398 CALL CPBRFS( 'u
', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
400 CALL CHKXER( 'cpbrfs', INFOT, NOUT, LERR, OK )
402 CALL CPBRFS( 'u
', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
404 CALL CHKXER( 'cpbrfs', INFOT, NOUT, LERR, OK )
406 CALL CPBRFS( 'u
', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
408 CALL CHKXER( 'cpbrfs', INFOT, NOUT, LERR, OK )
410 CALL CPBRFS( 'u
', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
412 CALL CHKXER( 'cpbrfs', INFOT, NOUT, LERR, OK )
414 CALL CPBRFS( 'u
', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
416 CALL CHKXER( 'cpbrfs', INFOT, NOUT, LERR, OK )
418 CALL CPBRFS( 'u
', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
420 CALL CHKXER( 'cpbrfs', INFOT, NOUT, LERR, OK )
422 CALL CPBRFS( 'u
', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
424 CALL CHKXER( 'cpbrfs', INFOT, NOUT, LERR, OK )
430 CALL CPBCON( '/
', 0, 0, A, 1, ANRM, RCOND, W, R, INFO )
431 CALL CHKXER( 'cpbcon', INFOT, NOUT, LERR, OK )
433 CALL CPBCON( 'u
', -1, 0, A, 1, ANRM, RCOND, W, R, INFO )
434 CALL CHKXER( 'cpbcon', INFOT, NOUT, LERR, OK )
436 CALL CPBCON( 'u
', 1, -1, A, 1, ANRM, RCOND, W, R, INFO )
437 CALL CHKXER( 'cpbcon', INFOT, NOUT, LERR, OK )
439 CALL CPBCON( 'u
', 2, 1, A, 1, ANRM, RCOND, W, R, INFO )
440 CALL CHKXER( 'cpbcon', INFOT, NOUT, LERR, OK )
442 CALL CPBCON( 'u
', 1, 0, A, 1, -ANRM, RCOND, W, R, INFO )
443 CALL CHKXER( 'cpbcon', INFOT, NOUT, LERR, OK )
449 CALL CPBEQU( '/
', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
450 CALL CHKXER( 'cpbequ', INFOT, NOUT, LERR, OK )
452 CALL CPBEQU( 'u
', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
453 CALL CHKXER( 'cpbequ', INFOT, NOUT, LERR, OK )
455 CALL CPBEQU( 'u
', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
456 CALL CHKXER( 'cpbequ', INFOT, NOUT, LERR, OK )
458 CALL CPBEQU( 'u
', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
459 CALL CHKXER( 'cpbequ', INFOT, NOUT, LERR, OK )
464 CALL ALAESM( PATH, OK, NOUT )