74 DOUBLE PRECISION ANRM, RCOND
77 DOUBLE PRECISION R( NMAX ), R1( NMAX ), R2( NMAX )
78 COMPLEX*16 A( NMAX, 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 dble, dcmplx
106 WRITE( nout, fmt = * )
113 a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
114 $ -1.d0 / dble( i+j ) )
115 af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
116 $ -1.d0 / dble( i+j ) )
130 IF( lsamen( 2, c2,
'PO' ) )
THEN
136 CALL zpotrf(
'/', 0, a, 1, info )
137 CALL chkxer(
'ZPOTRF', infot, nout, lerr, ok )
139 CALL zpotrf(
'U', -1, a, 1, info )
140 CALL chkxer(
'ZPOTRF', infot, nout, lerr, ok )
142 CALL zpotrf(
'U', 2, a, 1, info )
143 CALL chkxer(
'ZPOTRF', infot, nout, lerr, ok )
149 CALL zpotf2(
'/', 0, a, 1, info )
150 CALL chkxer(
'ZPOTF2', infot, nout, lerr, ok )
152 CALL zpotf2(
'U', -1, a, 1, info )
153 CALL chkxer(
'ZPOTF2', infot, nout, lerr, ok )
155 CALL zpotf2(
'U', 2, a, 1, info )
156 CALL chkxer(
'ZPOTF2', infot, nout, lerr, ok )
162 CALL zpotri(
'/', 0, a, 1, info )
163 CALL chkxer(
'ZPOTRI', infot, nout, lerr, ok )
165 CALL zpotri(
'U', -1, a, 1, info )
166 CALL chkxer(
'ZPOTRI', infot, nout, lerr, ok )
168 CALL zpotri(
'U', 2, a, 1, info )
169 CALL chkxer(
'ZPOTRI', infot, nout, lerr, ok )
175 CALL zpotrs(
'/', 0, 0, a, 1, b, 1, info )
176 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
178 CALL zpotrs(
'U', -1, 0, a, 1, b, 1, info )
179 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
181 CALL zpotrs(
'U', 0, -1, a, 1, b, 1, info )
184 CALL ZPOTRS( 'u
', 2, 1, A, 1, B, 2, INFO )
185 CALL CHKXER( 'zpotrs', infot, nout, lerr, ok )
187 CALL zpotrs(
'U', 2, 1, a, 2, b, 1, info )
188 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
194 CALL zporfs(
'/', 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
196 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
198 CALL zporfs(
'U', -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
200 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
202 CALL zporfs(
'U', 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
204 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
206 CALL zporfs(
'U', 2, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w, r,
208 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
210 CALL zporfs(
'U', 2, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w, r,
212 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
214 CALL zporfs(
'U', 2, 1, a, 2, af, 2, b, 1, x, 2, r1, r2, w, r,
216 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
218 CALL zporfs( 'u
', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, R,
220 CALL CHKXER( 'zporfs', INFOT, NOUT, LERR, OK )
226 CALL ZPOCON( '/
', 0, A, 1, ANRM, RCOND, W, R, INFO )
227 CALL CHKXER( 'zpocon', INFOT, NOUT, LERR, OK )
229 CALL ZPOCON( 'u
', -1, A, 1, ANRM, RCOND, W, R, INFO )
230 CALL CHKXER( 'zpocon', INFOT, NOUT, LERR, OK )
232 CALL ZPOCON( 'u
', 2, A, 1, ANRM, RCOND, W, R, INFO )
233 CALL CHKXER( 'zpocon', INFOT, NOUT, LERR, OK )
235 CALL ZPOCON( 'u
', 1, A, 1, -ANRM, RCOND, W, R, INFO )
236 CALL CHKXER( 'zpocon', INFOT, NOUT, LERR, OK )
242 CALL ZPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
243 CALL CHKXER( 'zpoequ', INFOT, NOUT, LERR, OK )
245 CALL ZPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
246 CALL CHKXER( 'zpoequ', INFOT, NOUT, LERR, OK )
251 ELSE IF( LSAMEN( 2, C2, 'pp
' ) ) THEN
257 CALL ZPPTRF( '/
', 0, A, INFO )
258 CALL CHKXER( 'zpptrf', INFOT, NOUT, LERR, OK )
260 CALL ZPPTRF( 'u
', -1, A, INFO )
261 CALL CHKXER( 'zpptrf', INFOT, NOUT, LERR, OK )
267 CALL ZPPTRI( '/
', 0, A, INFO )
268 CALL CHKXER( 'zpptri', INFOT, NOUT, LERR, OK )
270 CALL ZPPTRI( 'u
', -1, A, INFO )
271 CALL CHKXER( 'zpptri', INFOT, NOUT, LERR, OK )
277 CALL ZPPTRS( '/
', 0, 0, A, B, 1, INFO )
278 CALL CHKXER( 'zpptrs', INFOT, NOUT, LERR, OK )
280 CALL ZPPTRS( 'u
', -1, 0, A, B, 1, INFO )
281 CALL CHKXER( 'zpptrs', INFOT, NOUT, LERR, OK )
283 CALL ZPPTRS( 'u
', 0, -1, A, B, 1, INFO )
284 CALL CHKXER( 'zpptrs', INFOT, NOUT, LERR, OK )
286 CALL ZPPTRS( 'u
', 2, 1, A, B, 1, INFO )
287 CALL CHKXER( 'zpptrs', INFOT, NOUT, LERR, OK )
293 CALL ZPPRFS( '/
', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, R, INFO )
294 CALL CHKXER( 'zpprfs', INFOT, NOUT, LERR, OK )
296 CALL ZPPRFS( 'u
', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, R,
298 CALL CHKXER( 'zpprfs', INFOT, NOUT, LERR, OK )
300 CALL ZPPRFS( 'u
', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, R,
302 CALL CHKXER( 'zpprfs', INFOT, NOUT, LERR, OK )
304 CALL ZPPRFS( 'u
', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, R, INFO )
305 CALL CHKXER( 'zpprfs', INFOT, NOUT, LERR, OK )
307 CALL ZPPRFS( 'u
', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, R, INFO )
308 CALL CHKXER( 'zpprfs', INFOT, NOUT, LERR, OK )
314 CALL ZPPCON( '/
', 0, A, ANRM, RCOND, W, R, INFO )
315 CALL CHKXER( 'zppcon', INFOT, NOUT, LERR, OK )
317 CALL ZPPCON( 'u
', -1, A, ANRM, RCOND, W, R, INFO )
318 CALL CHKXER( 'zppcon', INFOT, NOUT, LERR, OK )
320 CALL ZPPCON( 'u
', 1, A, -ANRM, RCOND, W, R, INFO )
321 CALL CHKXER( 'zppcon', INFOT, NOUT, LERR, OK )
327 CALL ZPPEQU( '/
', 0, A, R1, RCOND, ANRM, INFO )
328 CALL CHKXER( 'zppequ', INFOT, NOUT, LERR, OK )
330 CALL ZPPEQU( 'u
', -1, A, R1, RCOND, ANRM, INFO )
331 CALL CHKXER( 'zppequ', INFOT, NOUT, LERR, OK )
336 ELSE IF( LSAMEN( 2, C2, 'pb
' ) ) THEN
342 CALL ZPBTRF( '/
', 0, 0, A, 1, INFO )
343 CALL CHKXER( 'zpbtrf', INFOT, NOUT, LERR, OK )
345 CALL ZPBTRF( 'u
', -1, 0, A, 1, INFO )
346 CALL CHKXER( 'zpbtrf', INFOT, NOUT, LERR, OK )
348 CALL ZPBTRF( 'u
', 1, -1, A, 1, INFO )
349 CALL CHKXER( 'zpbtrf', INFOT, NOUT, LERR, OK )
351 CALL ZPBTRF( 'u
', 2, 1, A, 1, INFO )
352 CALL CHKXER( 'zpbtrf', INFOT, NOUT, LERR, OK )
358 CALL ZPBTF2( '/
', 0, 0, A, 1, INFO )
359 CALL CHKXER( 'zpbtf2', INFOT, NOUT, LERR, OK )
361 CALL ZPBTF2( 'u
', -1, 0, A, 1, INFO )
362 CALL CHKXER( 'zpbtf2', INFOT, NOUT, LERR, OK )
364 CALL ZPBTF2( 'u
', 1, -1, A, 1, INFO )
365 CALL CHKXER( 'zpbtf2', INFOT, NOUT, LERR, OK )
367 CALL ZPBTF2( 'u
', 2, 1, A, 1, INFO )
368 CALL CHKXER( 'zpbtf2', INFOT, NOUT, LERR, OK )
374 CALL ZPBTRS( '/
', 0, 0, 0, A, 1, B, 1, INFO )
375 CALL CHKXER( 'zpbtrs', INFOT, NOUT, LERR, OK )
377 CALL ZPBTRS( 'u
', -1, 0, 0, A, 1, B, 1, INFO )
378 CALL CHKXER( 'zpbtrs', INFOT, NOUT, LERR, OK )
380 CALL ZPBTRS( 'u
', 1, -1, 0, A, 1, B, 1, INFO )
381 CALL CHKXER( 'zpbtrs', INFOT, NOUT, LERR, OK )
383 CALL ZPBTRS( 'u
', 0, 0, -1, A, 1, B, 1, INFO )
384 CALL CHKXER( 'zpbtrs', INFOT, NOUT, LERR, OK )
386 CALL ZPBTRS( 'u
', 2, 1, 1, A, 1, B, 1, INFO )
387 CALL CHKXER( 'zpbtrs', INFOT, NOUT, LERR, OK )
389 CALL ZPBTRS( 'u
', 2, 0, 1, A, 1, B, 1, INFO )
390 CALL CHKXER( 'zpbtrs', INFOT, NOUT, LERR, OK )
396 CALL ZPBRFS( '/
', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
398 CALL CHKXER( 'zpbrfs', infot, nout, lerr, ok )
400 CALL zpbrfs(
'U', -1, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
402 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
404 CALL zpbrfs(
'U', 1, -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
406 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
408 CALL zpbrfs(
'U', 0, 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
410 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
412 CALL zpbrfs(
'U', 2, 1, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w,
414 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
416 CALL zpbrfs(
'U', 2, 1, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w,
418 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
420 CALL zpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 1, x, 2, r1, r2, w,
422 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
424 CALL zpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 2, x, 1, r1, r2, w,
426 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
432 CALL zpbcon(
'/', 0, 0, a, 1, anrm, rcond, w, r, info )
433 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
435 CALL zpbcon(
'U', -1, 0, a, 1, anrm, rcond, w, r, info )
438 CALL ZPBCON( 'u
', 1, -1, A, 1, ANRM, RCOND, W, R, INFO )
439 CALL CHKXER( 'zpbcon', INFOT, NOUT, LERR, OK )
441 CALL ZPBCON( 'u
', 2, 1, A, 1, ANRM, RCOND, W, R, INFO )
442 CALL CHKXER( 'zpbcon', INFOT, NOUT, LERR, OK )
444 CALL ZPBCON( 'u
', 1, 0, A, 1, -ANRM, RCOND, W, R, INFO )
445 CALL CHKXER( 'zpbcon', INFOT, NOUT, LERR, OK )
451 CALL ZPBEQU( '/
', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
452 CALL CHKXER( 'zpbequ', INFOT, NOUT, LERR, OK )
454 CALL ZPBEQU( 'u
', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
455 CALL CHKXER( 'zpbequ', INFOT, NOUT, LERR, OK )
457 CALL ZPBEQU( 'u
', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
458 CALL CHKXER( 'zpbequ', INFOT, NOUT, LERR, OK )
460 CALL ZPBEQU( 'u
', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
461 CALL CHKXER( 'zpbequ', INFOT, NOUT, LERR, OK )
466 CALL ALAESM( PATH, OK, NOUT )