153 SUBROUTINE cchkps( DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL,
154 $ THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK,
164 INTEGER nmax, nn, nnb, nout, nrank
168 COMPLEX a( * ), AFAC( * ), PERM( * ), WORK( * )
170 INTEGER NBVAL( * ), NVAL( * ), PIV( * ), RANKVAL( * )
178 PARAMETER ( ONE = 1.0e+0 )
180 parameter( ntypes = 9 )
183 REAL ANORM, CNDNUM, RESULT, TOL
184 INTEGER COMPRANK, I, IMAT, IN, INB, INFO, IRANK, IUPLO,
185 $ izero, kl, ku, lda, mode, n, nb, nerrs, nfail,
186 $ nimat, nrun, rank, rankdiff
187 CHARACTER DIST,
TYPE, UPLO
191 INTEGER ISEED( 4 ), ISEEDY( 4 )
204 COMMON / infoc / infot, nunit, ok, lerr
205 COMMON / srnamc / srnamt
208 INTRINSIC max, real, ceiling
211 DATA iseedy / 1988, 1989, 1990, 1991 /
212 DATA uplos /
'U',
'L' /
218 path( 1: 1 ) =
'Complex Precision'
224 iseed( i ) = iseedy( i )
230 $
CALL cerrps( path, nout )
243 DO 140 imat = 1, nimat
247 IF( .NOT.dotype( imat ) )
252 DO 130 irank = 1, nrank
257 IF( ( imat.LT.3 .OR. imat.GT.5 ) .AND. irank.GT.1 )
260 rank = ceiling( ( n * real( rankval( irank ) ) )
267 uplo = uplos( iuplo )
272 CALL clatb5( path, imat, n,
TYPE, kl, ku, anorm,
273 $ mode, cndnum, dist )
276 CALL clatmt( n, n, dist, iseed,
TYPE, rwork, mode,
277 $ cndnum, anorm, rank, kl, ku, uplo, a,
283 CALL alaerh( path,
'CLATMT', info, 0, uplo, n,
284 $ n, -1, -1, -1, imat, nfail, nerrs,
298 CALL clacpy( uplo, n, n, a, lda, afac, lda )
304 CALL cpstrf( uplo, n, afac, lda, piv, comprank,
310 $ .OR.(info.NE.izero.AND.rank.EQ.n)
311 $ .OR.(info.LE.izero.AND.rank.LT.n) )
THEN
312 CALL alaerh( path,
'CPSTRF', info, izero,
313 $ uplo, n, n, -1, -1, nb, imat,
314 $ nfail, nerrs, nout )
327 CALL cpst01( uplo, n, a, lda, afac, lda, perm, lda,
328 $ piv, rwork, result, comprank )
335 rankdiff = rank - comprank
336 IF( result.GE.thresh )
THEN
337 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
338 $
CALL alahd( nout, path )
339 WRITE( nout, fmt = 9999 )uplo, n, rank,
340 $ rankdiff, nb, imat, result
353 CALL alasum( path, nout, nfail, nrun, nerrs )
355 9999
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', RANK =', i3,
356 $
', Diff =', i5,
', NB =', i4,
', type ', i2,
', Ratio =',