151 SUBROUTINE schkps( DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL,
152 $ THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK,
161 INTEGER NMAX, NN, NNB, NOUT, NRANK
165 REAL A( * ), AFAC( * ), PERM( * ), RWORK( * ),
167 INTEGER NBVAL( * ), NVAL( * ), PIV( * ), RANKVAL( * )
175 PARAMETER ( ONE = 1.0e+0 )
177 parameter( ntypes = 9 )
180 REAL ANORM, CNDNUM, RESULT, TOL
181 INTEGER , I, IMAT, IN, INB, INFO, IRANK, IUPLO,
182 $ izero, kl, ku, lda, mode, n, nb, nerrs, nfail,
183 $ nimat, nrun, rank, rankdiff
184 CHARACTER DIST,
TYPE, UPLO
188 INTEGER ISEED( 4 ), ISEEDY( 4 )
201 COMMON / infoc / infot, nunit, ok, lerr
202 COMMON / srnamc / srnamt
205 INTRINSIC max, real, ceiling
208 DATA iseedy / 1988, 1989, 1990, 1991 /
209 DATA uplos /
'U',
'L' /
215 path( 1: 1 ) =
'Single Precision'
221 iseed( i ) = iseedy( i )
227 $
CALL serrps( path, nout )
241 DO 140 imat = 1, nimat
245 IF( .NOT.dotype( imat ) )
250 DO 130 irank = 1, nrank
255 IF( ( imat.LT.3 .OR. imat.GT.5 ) .AND. irank.GT.1 )
258 rank = ceiling( ( n * real( rankval( irank ) ) )
265 uplo = uplos( iuplo )
270 CALL slatb5( path, imat, n,
TYPE, kl, ku, anorm,
271 $ mode, cndnum, dist )
274 CALL slatmt( n, n, dist, iseed,
TYPE, rwork, mode,
275 $ cndnum, anorm, rank, kl, ku, uplo, a,
282 $ N, -1, -1, -1, IMAT, NFAIL, NERRS,
296 CALL SLACPY( UPLO, N, N, A, LDA, AFAC, LDA )
302 CALL SPSTRF( UPLO, N, AFAC, LDA, PIV, COMPRANK,
308.OR..NE..AND..EQ.
$ (INFOIZERORANKN)
309.OR..LE..AND..LT.
$ (INFOIZERORANKN) ) THEN
310 CALL ALAERH( PATH, 'spstrf', INFO, IZERO,
311 $ UPLO, N, N, -1, -1, NB, IMAT,
312 $ NFAIL, NERRS, NOUT )
325 CALL SPST01( UPLO, N, A, LDA, AFAC, LDA, PERM, LDA,
326 $ PIV, RWORK, RESULT, COMPRANK )
333 RANKDIFF = RANK - COMPRANK
334.GE.
IF( RESULTTHRESH ) THEN
335.EQ..AND..EQ.
IF( NFAIL0 NERRS0 )
336 $ CALL ALAHD( NOUT, PATH )
337 WRITE( NOUT, FMT = 9999 )UPLO, N, RANK,
338 $ RANKDIFF, NB, IMAT, RESULT
351 CALL ALASUM( PATH, NOUT, NFAIL, NRUN, NERRS )
353 9999 FORMAT( ' uplo =
''', A1, ''', n =
', I5, ', rank =
', I3,
354 $ ', diff =
', I5, ', nb =
', I4, ',
type ', I2, ', ratio =
',
subroutine slacpy(uplo, m, n, a, lda, b, ldb)
SLACPY copies all or part of one two-dimensional array to another.
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine alasum(type, nout, nfail, nrun, nerrs)
ALASUM
subroutine alahd(iounit, path)
ALAHD
subroutine alaerh(path, subnam, info, infoe, opts, m, n, kl, ku, n5, imat, nfail, nerrs, nout)
ALAERH
subroutine spstrf(uplo, n, a, lda, piv, rank, tol, work, info)
SPSTRF computes the Cholesky factorization with complete pivoting of a real symmetric positive semide...
subroutine slatmt(m, n, dist, iseed, sym, d, mode, cond, dmax, rank, kl, ku, pack, a, lda, work, info)
SLATMT
subroutine schkps(dotype, nn, nval, nnb, nbval, nrank, rankval, thresh, tsterr, nmax, a, afac, perm, piv, work, rwork, nout)
SCHKPS
subroutine serrps(path, nunit)
SERRPS
subroutine slatb5(path, imat, n, type, kl, ku, anorm, mode, cndnum, dist)
SLATB5
subroutine spst01(uplo, n, a, lda, afac, ldafac, perm, ldperm, piv, rwork, resid, rank)
SPST01