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 $ ( 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 )
182 CALL CHKXER( 'zpotrs', INFOT, NOUT, LERR, OK )
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 )
436 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
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 )