82 REAL R( nmax ), R1( nmax ), R2( nmax )
83 COMPLEX A( nmax, nmax ), AF( nmax, nmax ), B( nmax ),
84 $ w( 2*nmax ), x( nmax )
102 COMMON / infoc / infot, nout, ok, lerr
103 COMMON / srnamc / srnamt
106 INTRINSIC cmplx, real
111 WRITE( nout, fmt = * )
118 a( i, j ) = cmplx( 1. /
REAL( I+J ), -1. /
REAL( I+J ) )
119 af( i, j ) = cmplx( 1. /
REAL( I+J ), -1. /
REAL( I+J ) )
135 IF( lsamen( 2, c2,
'HE' ) )
THEN
141 CALL
chetrf(
'/', 0, a, 1, ip, w, 1, info )
142 CALL
chkxer(
'CHETRF', infot, nout, lerr, ok )
144 CALL
chetrf(
'U', -1, a, 1, ip, w, 1, info )
145 CALL
chkxer(
'CHETRF', infot, nout, lerr, ok )
147 CALL
chetrf(
'U', 2, a, 1, ip, w, 4, info )
148 CALL
chkxer(
'CHETRF', infot, nout, lerr, ok )
154 CALL
chetf2(
'/', 0, a, 1, ip, info )
155 CALL
chkxer(
'CHETF2', infot, nout, lerr, ok )
157 CALL
chetf2(
'U', -1, a, 1, ip, info )
158 CALL
chkxer(
'CHETF2', infot, nout, lerr, ok )
160 CALL
chetf2(
'U', 2, a, 1, ip, info )
161 CALL
chkxer(
'CHETF2', infot, nout, lerr, ok )
167 CALL
chetri(
'/', 0, a, 1, ip, w, info )
168 CALL
chkxer(
'CHETRI', infot, nout, lerr, ok )
170 CALL
chetri(
'U', -1, a, 1, ip, w, info )
171 CALL
chkxer(
'CHETRI', infot, nout, lerr, ok )
173 CALL
chetri(
'U', 2, a, 1, ip, w, info )
174 CALL
chkxer(
'CHETRI', infot, nout, lerr, ok )
180 CALL
chetri2(
'/', 0, a, 1, ip, w, 1, info )
181 CALL
chkxer(
'CHETRI2', infot, nout, lerr, ok )
183 CALL
chetri2(
'U', -1, a, 1, ip, w, 1, info )
184 CALL
chkxer(
'CHETRI2', infot, nout, lerr, ok )
186 CALL
chetri2(
'U', 2, a, 1, ip, w, 1, info )
187 CALL
chkxer(
'CHETRI2', infot, nout, lerr, ok )
193 CALL
chetrs(
'/', 0, 0, a, 1, ip, b, 1, info )
194 CALL
chkxer(
'CHETRS', infot, nout, lerr, ok )
196 CALL
chetrs(
'U', -1, 0, a, 1, ip, b, 1, info )
197 CALL
chkxer(
'CHETRS', infot, nout, lerr, ok )
199 CALL
chetrs(
'U', 0, -1, a, 1, ip, b, 1, info )
200 CALL
chkxer(
'CHETRS', infot, nout, lerr, ok )
202 CALL
chetrs(
'U', 2, 1, a, 1, ip, b, 2, info )
203 CALL
chkxer(
'CHETRS', infot, nout, lerr, ok )
205 CALL
chetrs(
'U', 2, 1, a, 2, ip, b, 1, info )
206 CALL
chkxer(
'CHETRS', infot, nout, lerr, ok )
212 CALL
cherfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
214 CALL
chkxer(
'CHERFS', infot, nout, lerr, ok )
216 CALL
cherfs(
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
218 CALL
chkxer(
'CHERFS', infot, nout, lerr, ok )
220 CALL
cherfs(
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
222 CALL
chkxer(
'CHERFS', infot, nout, lerr, ok )
224 CALL
cherfs(
'U', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
226 CALL
chkxer(
'CHERFS', infot, nout, lerr, ok )
228 CALL
cherfs(
'U', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
230 CALL
chkxer(
'CHERFS', infot, nout, lerr, ok )
232 CALL
cherfs(
'U', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
234 CALL
chkxer(
'CHERFS', infot, nout, lerr, ok )
236 CALL
cherfs(
'U', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
238 CALL
chkxer(
'CHERFS', infot, nout, lerr, ok )
244 CALL
checon(
'/', 0, a, 1, ip, anrm, rcond, w, info )
245 CALL
chkxer(
'CHECON', infot, nout, lerr, ok )
247 CALL
checon(
'U', -1, a, 1, ip, anrm, rcond, w, info )
248 CALL
chkxer(
'CHECON', infot, nout, lerr, ok )
250 CALL
checon(
'U', 2, a, 1, ip, anrm, rcond, w, info )
251 CALL
chkxer(
'CHECON', infot, nout, lerr, ok )
253 CALL
checon(
'U', 1, a, 1, ip, -anrm, rcond, w, info )
254 CALL
chkxer(
'CHECON', infot, nout, lerr, ok )
260 ELSE IF( lsamen( 2, c2,
'HR' ) )
THEN
264 srnamt =
'CHETRF_ROOK'
267 CALL
chkxer(
'CHETRF_ROOK', infot, nout, lerr, ok )
270 CALL
chkxer(
'CHETRF_ROOK', infot, nout, lerr, ok )
273 CALL
chkxer(
'CHETRF_ROOK', infot, nout, lerr, ok )
277 srnamt =
'CHETF2_ROOK'
280 CALL
chkxer(
'CHETF2_ROOK', infot, nout, lerr, ok )
283 CALL
chkxer(
'CHETF2_ROOK', infot, nout, lerr, ok )
286 CALL
chkxer(
'CHETF2_ROOK', infot, nout, lerr, ok )
290 srnamt =
'CHETRI_ROOK'
293 CALL
chkxer(
'CHETRI_ROOK', infot, nout, lerr, ok )
296 CALL
chkxer(
'CHETRI_ROOK', infot, nout, lerr, ok )
299 CALL
chkxer(
'CHETRI_ROOK', infot, nout, lerr, ok )
303 srnamt =
'CHETRS_ROOK'
305 CALL
chetrs_rook(
'/', 0, 0, a, 1, ip, b, 1, info )
306 CALL
chkxer(
'CHETRS_ROOK', infot, nout, lerr, ok )
308 CALL
chetrs_rook(
'U', -1, 0, a, 1, ip, b, 1, info )
309 CALL
chkxer(
'CHETRS_ROOK', infot, nout, lerr, ok )
311 CALL
chetrs_rook(
'U', 0, -1, a, 1, ip, b, 1, info )
312 CALL
chkxer(
'CHETRS_ROOK', infot, nout, lerr, ok )
314 CALL
chetrs_rook(
'U', 2, 1, a, 1, ip, b, 2, info )
315 CALL
chkxer(
'CHETRS_ROOK', infot, nout, lerr, ok )
317 CALL
chetrs_rook(
'U', 2, 1, a, 2, ip, b, 1, info )
318 CALL
chkxer(
'CHETRS_ROOK', infot, nout, lerr, ok )
322 srnamt =
'CHECON_ROOK'
324 CALL
checon_rook(
'/', 0, a, 1, ip, anrm, rcond, w, info )
325 CALL
chkxer(
'CHECON_ROOK', infot, nout, lerr, ok )
327 CALL
checon_rook(
'U', -1, a, 1, ip, anrm, rcond, w, info )
328 CALL
chkxer(
'CHECON_ROOK', infot, nout, lerr, ok )
330 CALL
checon_rook(
'U', 2, a, 1, ip, anrm, rcond, w, info )
331 CALL
chkxer(
'CHECON_ROOK', infot, nout, lerr, ok )
333 CALL
checon_rook(
'U', 1, a, 1, ip, -anrm, rcond, w, info )
334 CALL
chkxer(
'CHECON_ROOK', infot, nout, lerr, ok )
340 ELSE IF( lsamen( 2, c2,
'HP' ) )
THEN
346 CALL
chptrf(
'/', 0, a, ip, info )
347 CALL
chkxer(
'CHPTRF', infot, nout, lerr, ok )
349 CALL
chptrf(
'U', -1, a, ip, info )
350 CALL
chkxer(
'CHPTRF', infot, nout, lerr, ok )
356 CALL
chptri(
'/', 0, a, ip, w, info )
357 CALL
chkxer(
'CHPTRI', infot, nout, lerr, ok )
359 CALL
chptri(
'U', -1, a, ip, w, info )
360 CALL
chkxer(
'CHPTRI', infot, nout, lerr, ok )
366 CALL
chptrs(
'/', 0, 0, a, ip, b, 1, info )
367 CALL
chkxer(
'CHPTRS', infot, nout, lerr, ok )
369 CALL
chptrs(
'U', -1, 0, a, ip, b, 1, info )
370 CALL
chkxer(
'CHPTRS', infot, nout, lerr, ok )
372 CALL
chptrs(
'U', 0, -1, a, ip, b, 1, info )
373 CALL
chkxer(
'CHPTRS', infot, nout, lerr, ok )
375 CALL
chptrs(
'U', 2, 1, a, ip, b, 1, info )
376 CALL
chkxer(
'CHPTRS', infot, nout, lerr, ok )
382 CALL
chprfs(
'/', 0, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
384 CALL
chkxer(
'CHPRFS', infot, nout, lerr, ok )
386 CALL
chprfs(
'U', -1, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
388 CALL
chkxer(
'CHPRFS', infot, nout, lerr, ok )
390 CALL
chprfs(
'U', 0, -1, a, af, ip, b, 1, x, 1, r1, r2, w, r,
392 CALL
chkxer(
'CHPRFS', infot, nout, lerr, ok )
394 CALL
chprfs(
'U', 2, 1, a, af, ip, b, 1, x, 2, r1, r2, w, r,
396 CALL
chkxer(
'CHPRFS', infot, nout, lerr, ok )
398 CALL
chprfs(
'U', 2, 1, a, af, ip, b, 2, x, 1, r1, r2, w, r,
400 CALL
chkxer(
'CHPRFS', infot, nout, lerr, ok )
406 CALL
chpcon(
'/', 0, a, ip, anrm, rcond, w, info )
407 CALL
chkxer(
'CHPCON', infot, nout, lerr, ok )
409 CALL
chpcon(
'U', -1, a, ip, anrm, rcond, w, info )
410 CALL
chkxer(
'CHPCON', infot, nout, lerr, ok )
412 CALL
chpcon(
'U', 1, a, ip, -anrm, rcond, w, info )
413 CALL
chkxer(
'CHPCON', infot, nout, lerr, ok )
418 CALL
alaesm( path, ok, nout )
subroutine chetrs(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CHETRS
subroutine chetf2_rook(UPLO, N, A, LDA, IPIV, INFO)
CHETF2_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
subroutine checon_rook(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO)
CHECON_ROOK estimates the reciprocal of the condition number fort HE matrices using factorization obt...
subroutine chptri(UPLO, N, AP, IPIV, WORK, INFO)
CHPTRI
subroutine chetrf(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CHETRF
subroutine checon(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO)
CHECON
subroutine chetri(UPLO, N, A, LDA, IPIV, WORK, INFO)
CHETRI
subroutine chetri2(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CHETRI2
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine chetrs_rook(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CHETRS_ROOK computes the solution to a system of linear equations A * X = B for HE matrices using fac...
subroutine chprfs(UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
CHPRFS
subroutine chpcon(UPLO, N, AP, IPIV, ANORM, RCOND, WORK, INFO)
CHPCON
subroutine chetrf_rook(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CHETRF_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
subroutine cherfs(UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
CHERFS
subroutine chetf2(UPLO, N, A, LDA, IPIV, INFO)
CHETF2 computes the factorization of a complex Hermitian matrix, using the diagonal pivoting method (...
subroutine chetri_rook(UPLO, N, A, LDA, IPIV, WORK, INFO)
CHETRI_ROOK computes the inverse of HE matrix using the factorization obtained with the bounded Bunch...
subroutine alaesm(PATH, OK, NOUT)
ALAESM
subroutine chptrf(UPLO, N, AP, IPIV, INFO)
CHPTRF
subroutine chptrs(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
CHPTRS
subroutine cerrhe(PATH, NUNIT)
CERRHE