73 parameter ( nmax = 4 )
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_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 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 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 chetf2_rook(UPLO, N, A, LDA, IPIV, INFO)
CHETF2_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
logical function lsamen(N, CA, CB)
LSAMEN
subroutine chprfs(UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
CHPRFS
subroutine alaesm(PATH, OK, NOUT)
ALAESM
subroutine chptri(UPLO, N, AP, IPIV, WORK, INFO)
CHPTRI
subroutine chptrs(UPLO, N, NRHS, AP, IPIV, B, LDB, INFO)
CHPTRS
subroutine chetf2(UPLO, N, A, LDA, IPIV, INFO)
CHETF2 computes the factorization of a complex Hermitian matrix, using the diagonal pivoting method (...
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
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 chptrf(UPLO, N, AP, IPIV, INFO)
CHPTRF
subroutine chetrs(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
CHETRS
subroutine chetrf(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CHETRF
subroutine chetri(UPLO, N, A, LDA, IPIV, WORK, INFO)
CHETRI
subroutine checon(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO)
CHECON
subroutine chetri2(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CHETRI2
subroutine chpcon(UPLO, N, AP, IPIV, ANORM, RCOND, WORK, INFO)
CHPCON
subroutine cherfs(UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO)
CHERFS