1295 parameter ( zero = ( 0.0, 0.0 ) )
1297 parameter ( rone = 1.0, rzero = 0.0 )
1300 INTEGER nalf, nbet, nidim, nmax, nout, ntra
1301 LOGICAL fatal, rewi, trace
1304 COMPLEX a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
1305 $ as( nmax*nmax ), b( nmax, nmax ),
1306 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
1307 $ c( nmax, nmax ), cc( nmax*nmax ),
1308 $ cs( nmax*nmax ), ct( nmax )
1310 INTEGER idim( nidim )
1312 COMPLEX alpha, als, beta, bets
1313 REAL err, errmax, ralpha, rals, rbeta, rbets
1314 INTEGER i, ia, ib, ict, icu, ik, in, j, jc, jj, k, ks,
1315 $ laa, lcc, lda, ldas, ldc, ldcs, lj, ma, n, na,
1317 LOGICAL conj, null, reset, same, tran, upper
1318 CHARACTER*1 trans, transs, transt, uplo, uplos
1319 CHARACTER*2 icht, ichu
1328 INTRINSIC cmplx, max, real
1330 INTEGER infot, noutc
1333 COMMON /infoc/infot, noutc, ok, lerr
1335 DATA icht/
'NC'/, ichu/
'UL'/
1337 conj = sname( 2: 3 ).EQ.
'HE'
1344 DO 100 in = 1, nidim
1359 trans = icht( ict: ict )
1361 IF( tran.AND..NOT.conj )
1381 CALL cmake(
'GE',
' ',
' ', ma, na, a, nmax, aa, lda,
1385 uplo = ichu( icu: icu )
1391 ralpha =
REAL( alpha )
1392 alpha = cmplx( ralpha, rzero )
1398 rbeta =
REAL( beta )
1399 beta = cmplx( rbeta, rzero )
1403 $ null = null.OR.( ( k.LE.0.OR.ralpha.EQ.
1404 $ rzero ).AND.rbeta.EQ.rone )
1408 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, c,
1409 $ nmax, cc, ldc, reset, zero )
1442 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo,
1443 $ trans, n, k, ralpha, lda, rbeta, ldc
1446 CALL cherk( uplo, trans, n, k, ralpha, aa,
1447 $ lda, rbeta, cc, ldc )
1450 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo,
1451 $ trans, n, k, alpha, lda, beta, ldc
1454 CALL csyrk( uplo, trans, n, k, alpha, aa,
1455 $ lda, beta, cc, ldc )
1461 WRITE( nout, fmt = 9992 )
1468 isame( 1 ) = uplos.EQ.uplo
1469 isame( 2 ) = transs.EQ.trans
1470 isame( 3 ) = ns.EQ.n
1471 isame( 4 ) = ks.EQ.k
1473 isame( 5 ) = rals.EQ.ralpha
1475 isame( 5 ) = als.EQ.alpha
1477 isame( 6 ) =
lce( as, aa, laa )
1478 isame( 7 ) = ldas.EQ.lda
1480 isame( 8 ) = rbets.EQ.rbeta
1482 isame( 8 ) = bets.EQ.beta
1485 isame( 9 ) =
lce( cs, cc, lcc )
1487 isame( 9 ) =
lceres( sname( 2: 3 ), uplo, n,
1490 isame( 10 ) = ldcs.EQ.ldc
1497 same = same.AND.isame( i )
1498 IF( .NOT.isame( i ) )
1499 $
WRITE( nout, fmt = 9998 )i
1525 CALL cmmch( transt,
'N', lj, 1, k,
1526 $ alpha, a( 1, jj ), nmax,
1527 $ a( 1, j ), nmax, beta,
1528 $ c( jj, j ), nmax, ct, g,
1529 $ cc( jc ), ldc, eps, err,
1530 $ fatal, nout, .true. )
1532 CALL cmmch(
'N', transt, lj, 1, k,
1533 $ alpha, a( jj, 1 ), nmax,
1534 $ a( j, 1 ), nmax, beta,
1535 $ c( jj, j ), nmax, ct, g,
1536 $ cc( jc ), ldc, eps, err,
1537 $ fatal, nout, .true. )
1544 errmax = max( errmax, err )
1566 IF( errmax.LT.thresh )
THEN
1567 WRITE( nout, fmt = 9999 )sname, nc
1569 WRITE( nout, fmt = 9997 )sname, nc, errmax
1575 $
WRITE( nout, fmt = 9995 )j
1578 WRITE( nout, fmt = 9996 )sname
1580 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, n, k, ralpha,
1583 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, n, k, alpha,
1590 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1592 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1593 $
'ANGED INCORRECTLY *******' )
1594 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1595 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1596 $
' - SUSPECT *******' )
1597 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1598 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1599 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1600 $ f4.1,
', A,', i3,
',', f4.1,
', C,', i3,
') ',
1602 9993
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1603 $
'(', f4.1,
',', f4.1,
') , A,', i3,
',(', f4.1,
',', f4.1,
1604 $
'), C,', i3,
') .' )
1605 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine cmmch(TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB, BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL, NOUT, MV)
subroutine cherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
CHERK
logical function lce(RI, RJ, LR)
subroutine cmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
subroutine csyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
CSYRK
logical function lceres(TYPE, UPLO, M, N, AA, AS, LDA)