72 parameter ( nmax = 4 )
77 DOUBLE PRECISION anrm, rcond
80 DOUBLE PRECISION r( nmax ), r1( nmax ), r2( nmax )
81 COMPLEX*16 a( nmax, nmax ), af( nmax, nmax ), b( nmax ),
82 $ w( 2*nmax ), x( nmax )
100 COMMON / infoc / infot, nout, ok, lerr
101 COMMON / srnamc / srnamt
104 INTRINSIC dble, dcmplx
109 WRITE( nout, fmt = * )
116 a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
117 $ -1.d0 / dble( i+j ) )
118 af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
119 $ -1.d0 / dble( i+j ) )
133 IF(
lsamen( 2, c2,
'PO' ) )
THEN
139 CALL zpotrf(
'/', 0, a, 1, info )
140 CALL chkxer(
'ZPOTRF', infot, nout, lerr, ok )
142 CALL zpotrf(
'U', -1, a, 1, info )
143 CALL chkxer(
'ZPOTRF', infot, nout, lerr, ok )
145 CALL zpotrf(
'U', 2, a, 1, info )
146 CALL chkxer(
'ZPOTRF', infot, nout, lerr, ok )
152 CALL zpotf2(
'/', 0, a, 1, info )
153 CALL chkxer(
'ZPOTF2', infot, nout, lerr, ok )
155 CALL zpotf2(
'U', -1, a, 1, info )
156 CALL chkxer(
'ZPOTF2', infot, nout, lerr, ok )
158 CALL zpotf2(
'U', 2, a, 1, info )
159 CALL chkxer(
'ZPOTF2', infot, nout, lerr, ok )
165 CALL zpotri(
'/', 0, a, 1, info )
166 CALL chkxer(
'ZPOTRI', infot, nout, lerr, ok )
168 CALL zpotri(
'U', -1, a, 1, info )
169 CALL chkxer(
'ZPOTRI', infot, nout, lerr, ok )
171 CALL zpotri(
'U', 2, a, 1, info )
172 CALL chkxer(
'ZPOTRI', infot, nout, lerr, ok )
178 CALL zpotrs(
'/', 0, 0, a, 1, b, 1, info )
179 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
181 CALL zpotrs(
'U', -1, 0, a, 1, b, 1, info )
182 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
184 CALL zpotrs(
'U', 0, -1, a, 1, b, 1, info )
185 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
187 CALL zpotrs(
'U', 2, 1, a, 1, b, 2, info )
188 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
190 CALL zpotrs(
'U', 2, 1, a, 2, b, 1, info )
191 CALL chkxer(
'ZPOTRS', infot, nout, lerr, ok )
197 CALL zporfs(
'/', 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
199 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
201 CALL zporfs(
'U', -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
203 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
205 CALL zporfs(
'U', 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w, r,
207 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
209 CALL zporfs(
'U', 2, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w, r,
211 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
213 CALL zporfs(
'U', 2, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w, r,
215 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
217 CALL zporfs(
'U', 2, 1, a, 2, af, 2, b, 1, x, 2, r1, r2, w, r,
219 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
221 CALL zporfs(
'U', 2, 1, a, 2, af, 2, b, 2, x, 1, r1, r2, w, r,
223 CALL chkxer(
'ZPORFS', infot, nout, lerr, ok )
229 CALL zpocon(
'/', 0, a, 1, anrm, rcond, w, r, info )
230 CALL chkxer(
'ZPOCON', infot, nout, lerr, ok )
232 CALL zpocon(
'U', -1, a, 1, anrm, rcond, w, r, info )
233 CALL chkxer(
'ZPOCON', infot, nout, lerr, ok )
235 CALL zpocon(
'U', 2, a, 1, anrm, rcond, w, r, info )
236 CALL chkxer(
'ZPOCON', infot, nout, lerr, ok )
238 CALL zpocon(
'U', 1, a, 1, -anrm, rcond, w, r, info )
239 CALL chkxer(
'ZPOCON', infot, nout, lerr, ok )
245 CALL zpoequ( -1, a, 1, r1, rcond, anrm, info )
246 CALL chkxer(
'ZPOEQU', infot, nout, lerr, ok )
248 CALL zpoequ( 2, a, 1, r1, rcond, anrm, info )
249 CALL chkxer(
'ZPOEQU', infot, nout, lerr, ok )
254 ELSE IF(
lsamen( 2, c2,
'PP' ) )
THEN
260 CALL zpptrf(
'/', 0, a, info )
261 CALL chkxer(
'ZPPTRF', infot, nout, lerr, ok )
263 CALL zpptrf(
'U', -1, a, info )
264 CALL chkxer(
'ZPPTRF', infot, nout, lerr, ok )
270 CALL zpptri(
'/', 0, a, info )
271 CALL chkxer(
'ZPPTRI', infot, nout, lerr, ok )
273 CALL zpptri(
'U', -1, a, info )
274 CALL chkxer(
'ZPPTRI', infot, nout, lerr, ok )
280 CALL zpptrs(
'/', 0, 0, a, b, 1, info )
281 CALL chkxer(
'ZPPTRS', infot, nout, lerr, ok )
283 CALL zpptrs(
'U', -1, 0, a, b, 1, info )
284 CALL chkxer(
'ZPPTRS', infot, nout, lerr, ok )
286 CALL zpptrs(
'U', 0, -1, a, b, 1, info )
287 CALL chkxer(
'ZPPTRS', infot, nout, lerr, ok )
289 CALL zpptrs(
'U', 2, 1, a, b, 1, info )
290 CALL chkxer(
'ZPPTRS', infot, nout, lerr, ok )
296 CALL zpprfs(
'/', 0, 0, a, af, b, 1, x, 1, r1, r2, w, r, info )
297 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
299 CALL zpprfs(
'U', -1, 0, a, af, b, 1, x, 1, r1, r2, w, r,
301 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
303 CALL zpprfs(
'U', 0, -1, a, af, b, 1, x, 1, r1, r2, w, r,
305 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
307 CALL zpprfs(
'U', 2, 1, a, af, b, 1, x, 2, r1, r2, w, r, info )
308 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
310 CALL zpprfs(
'U', 2, 1, a, af, b, 2, x, 1, r1, r2, w, r, info )
311 CALL chkxer(
'ZPPRFS', infot, nout, lerr, ok )
317 CALL zppcon(
'/', 0, 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 )
323 CALL zppcon(
'U', 1, a, -anrm, rcond, w, r, info )
324 CALL chkxer(
'ZPPCON', infot, nout, lerr, ok )
330 CALL zppequ(
'/', 0, a, r1, rcond, anrm, info )
331 CALL chkxer(
'ZPPEQU', infot, nout, lerr, ok )
333 CALL zppequ(
'U', -1, a, r1, rcond, anrm, info )
334 CALL chkxer(
'ZPPEQU', infot, nout, lerr, ok )
339 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
345 CALL zpbtrf(
'/', 0, 0, a, 1, info )
346 CALL chkxer(
'ZPBTRF', infot, nout, lerr, ok )
348 CALL zpbtrf(
'U', -1, 0, a, 1, info )
349 CALL chkxer(
'ZPBTRF', infot, nout, lerr, ok )
351 CALL zpbtrf(
'U', 1, -1, a, 1, info )
352 CALL chkxer(
'ZPBTRF', infot, nout, lerr, ok )
354 CALL zpbtrf(
'U', 2, 1, a, 1, info )
355 CALL chkxer(
'ZPBTRF', infot, nout, lerr, ok )
361 CALL zpbtf2(
'/', 0, 0, a, 1, info )
362 CALL chkxer(
'ZPBTF2', infot, nout, lerr, ok )
364 CALL zpbtf2(
'U', -1, 0, a, 1, info )
365 CALL chkxer(
'ZPBTF2', infot, nout, lerr, ok )
367 CALL zpbtf2(
'U', 1, -1, a, 1, info )
368 CALL chkxer(
'ZPBTF2', infot, nout, lerr, ok )
370 CALL zpbtf2(
'U', 2, 1, a, 1, info )
371 CALL chkxer(
'ZPBTF2', infot, nout, lerr, ok )
377 CALL zpbtrs(
'/', 0, 0, 0, a, 1, b, 1, info )
378 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
380 CALL zpbtrs(
'U', -1, 0, 0, a, 1, b, 1, info )
381 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
383 CALL zpbtrs(
'U', 1, -1, 0, a, 1, b, 1, info )
384 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
386 CALL zpbtrs(
'U', 0, 0, -1, a, 1, b, 1, info )
387 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
389 CALL zpbtrs(
'U', 2, 1, 1, a, 1, b, 1, info )
390 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
392 CALL zpbtrs(
'U', 2, 0, 1, a, 1, b, 1, info )
393 CALL chkxer(
'ZPBTRS', infot, nout, lerr, ok )
399 CALL zpbrfs(
'/', 0, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
401 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
403 CALL zpbrfs(
'U', -1, 0, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
405 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
407 CALL zpbrfs(
'U', 1, -1, 0, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
409 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
411 CALL zpbrfs(
'U', 0, 0, -1, a, 1, af, 1, b, 1, x, 1, r1, r2, w,
413 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
415 CALL zpbrfs(
'U', 2, 1, 1, a, 1, af, 2, b, 2, x, 2, r1, r2, w,
417 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
419 CALL zpbrfs(
'U', 2, 1, 1, a, 2, af, 1, b, 2, x, 2, r1, r2, w,
421 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
423 CALL zpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 1, x, 2, r1, r2, w,
425 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
427 CALL zpbrfs(
'U', 2, 0, 1, a, 1, af, 1, b, 2, x, 1, r1, r2, w,
429 CALL chkxer(
'ZPBRFS', infot, nout, lerr, ok )
435 CALL zpbcon(
'/', 0, 0, a, 1, anrm, rcond, w, r, info )
436 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
438 CALL zpbcon(
'U', -1, 0, a, 1, anrm, rcond, w, r, info )
439 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
441 CALL zpbcon(
'U', 1, -1, a, 1, anrm, rcond, w, r, info )
442 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
444 CALL zpbcon(
'U', 2, 1, a, 1, anrm, rcond, w, r, info )
445 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
447 CALL zpbcon(
'U', 1, 0, a, 1, -anrm, rcond, w, r, info )
448 CALL chkxer(
'ZPBCON', infot, nout, lerr, ok )
454 CALL zpbequ(
'/', 0, 0, a, 1, r1, rcond, anrm, info )
455 CALL chkxer(
'ZPBEQU', infot, nout, lerr, ok )
457 CALL zpbequ(
'U', -1, 0, a, 1, r1, rcond, anrm, info )
458 CALL chkxer(
'ZPBEQU', infot, nout, lerr, ok )
460 CALL zpbequ(
'U', 1, -1, a, 1, r1, rcond, anrm, info )
461 CALL chkxer(
'ZPBEQU', infot, nout, lerr, ok )
463 CALL zpbequ(
'U', 2, 1, a, 1, r1, rcond, anrm, info )
464 CALL chkxer(
'ZPBEQU', infot, nout, lerr, ok )
469 CALL alaesm( path, ok, nout )
subroutine zpotrf(UPLO, N, A, LDA, INFO)
ZPOTRF VARIANT: right looking block version of the algorithm, calling Level 3 BLAS.
subroutine zpbtrs(UPLO, N, KD, NRHS, AB, LDAB, B, LDB, INFO)
ZPBTRS
subroutine zpprfs(UPLO, N, NRHS, AP, AFP, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
ZPPRFS
subroutine zpptrs(UPLO, N, NRHS, AP, B, LDB, INFO)
ZPPTRS
logical function lsamen(N, CA, CB)
LSAMEN
subroutine zporfs(UPLO, N, NRHS, A, LDA, AF, LDAF, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
ZPORFS
subroutine alaesm(PATH, OK, NOUT)
ALAESM
subroutine zpbtf2(UPLO, N, KD, AB, LDAB, INFO)
ZPBTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite band matrix (un...
subroutine zpbtrf(UPLO, N, KD, AB, LDAB, INFO)
ZPBTRF
subroutine zppcon(UPLO, N, AP, ANORM, RCOND, WORK, RWORK, INFO)
ZPPCON
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine zpbcon(UPLO, N, KD, AB, LDAB, ANORM, RCOND, WORK, RWORK, INFO)
ZPBCON
subroutine zpbrfs(UPLO, N, KD, NRHS, AB, LDAB, AFB, LDAFB, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
ZPBRFS
subroutine zpbequ(UPLO, N, KD, AB, LDAB, S, SCOND, AMAX, INFO)
ZPBEQU
subroutine zpoequ(N, A, LDA, S, SCOND, AMAX, INFO)
ZPOEQU
subroutine zppequ(UPLO, N, AP, S, SCOND, AMAX, INFO)
ZPPEQU
subroutine zpptri(UPLO, N, AP, INFO)
ZPPTRI
subroutine zpotri(UPLO, N, A, LDA, INFO)
ZPOTRI
subroutine zpocon(UPLO, N, A, LDA, ANORM, RCOND, WORK, RWORK, INFO)
ZPOCON
subroutine zpotf2(UPLO, N, A, LDA, INFO)
ZPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine zpptrf(UPLO, N, AP, INFO)
ZPPTRF
subroutine zpotrs(UPLO, N, NRHS, A, LDA, B, LDB, INFO)
ZPOTRS