1292 parameter( zero = ( 0.0, 0.0 ) )
1294 parameter( rone = 1.0, rzero = 0.0 )
1297 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
1298 LOGICAL FATAL, REWI, TRACE
1301 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1302 $ AS( NMAX*NMAX ), B( NMAX, NMAX ),
1303 $ BB( NMAX*NMAX ), BET( NBET ), BS( NMAX*NMAX ),
1304 $ C( NMAX, NMAX ), CC( NMAX*NMAX ),
1305 $ CS( NMAX*NMAX ), CT( NMAX )
1307 INTEGER IDIM( NIDIM )
1309 COMPLEX ALPHA, ALS, BETA, BETS
1310 REAL ERR, ERRMAX, RALPHA, RALS, RBETA, RBETS
1311 INTEGER I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, K, KS,
1312 $ LAA, LCC, LDA, LDAS, LDC, LDCS, LJ, MA, N, NA,
1314 LOGICAL CONJ, NULL, RESET, SAME, TRAN, UPPER
1315 CHARACTER*1 TRANS, TRANSS, TRANST, UPLO, UPLOS
1316 CHARACTER*2 ICHT, ICHU
1325 INTRINSIC cmplx, max, real
1327 INTEGER INFOT, NOUTC
1330 COMMON /infoc/infot, noutc, ok, lerr
1332 DATA icht/
'NC'/, ichu/
'UL'/
1334 conj = sname( 2: 3 ).EQ.
'HE'
1341 DO 100 in = 1, nidim
1356 trans = icht( ict: ict )
1358 IF( tran.AND..NOT.conj )
1378 CALL cmake(
'GE',
' ',
' ', ma, na, a, nmax, aa, lda,
1382 uplo = ichu( icu: icu )
1388 ralpha = real( alpha )
1389 alpha = cmplx( ralpha, rzero )
1395 rbeta = real( beta )
1396 beta = cmplx( rbeta, rzero )
1400 $ null = null.OR.( ( k.LE.0.OR.ralpha.EQ.
1401 $ rzero ).AND.rbeta.EQ.rone )
1405 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, c,
1406 $ nmax, cc, ldc, reset, zero )
1439 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo,
1440 $ trans, n, k, ralpha, lda, rbeta, ldc
1443 CALL cherk( uplo, trans, n, k, ralpha, aa,
1444 $ lda, rbeta, cc, ldc )
1447 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo,
1448 $ trans, n, k, alpha, lda, beta, ldc
1451 CALL csyrk( uplo, trans, n, k, alpha, aa,
1452 $ lda, beta, cc, ldc )
1458 WRITE( nout, fmt = 9992 )
1465 isame( 1 ) = uplos.EQ.uplo
1466 isame( 2 ) = transs.EQ.trans
1467 isame( 3 ) = ns.EQ.n
1468 isame( 4 ) = ks.EQ.k
1470 isame( 5 ) = rals.EQ.ralpha
1472 isame( 5 ) = als.EQ.alpha
1474 isame( 6 ) =
lce( as, aa, laa )
1475 isame( 7 ) = ldas.EQ.lda
1477 isame( 8 ) = rbets.EQ.rbeta
1479 isame( 8 ) = bets.EQ.beta
1482 isame( 9 ) =
lce( cs, cc, lcc )
1484 isame( 9 ) =
lceres( sname( 2: 3 ), uplo, n,
1487 isame( 10 ) = ldcs.EQ.ldc
1494 same = same.AND.isame( i )
1495 IF( .NOT.isame( i ) )
1496 $
WRITE( nout, fmt = 9998 )i
1522 CALL cmmch( transt,
'N', lj, 1, k,
1523 $ alpha, a( 1, jj ), nmax,
1524 $ a( 1, j ), nmax, beta,
1525 $ c( jj, j ), nmax, ct, g,
1526 $ cc( jc ), ldc, eps, err,
1527 $ fatal, nout, .true. )
1529 CALL cmmch(
'N', transt, lj, 1, k,
1530 $ alpha, a( jj, 1 ), nmax,
1531 $ a( j, 1 ), nmax, beta,
1532 $ c( jj, j ), nmax, ct, g,
1533 $ cc( jc ), ldc, eps, err,
1534 $ fatal, nout, .true. )
1541 errmax = max( errmax, err )
1563 IF( errmax.LT.thresh )
THEN
1564 WRITE( nout, fmt = 9999 )sname, nc
1566 WRITE( nout, fmt = 9997 )sname, nc, errmax
1572 $
WRITE( nout, fmt = 9995 )j
1575 WRITE( nout, fmt = 9996 )sname
1577 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, n, k, ralpha,
1580 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, n, k, alpha,
1587 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1589 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1590 $
'ANGED INCORRECTLY *******' )
1591 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1592 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1593 $
' - SUSPECT *******' )
1594 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1595 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1596 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1597 $ f4.1,
', A,', i3,
',', f4.1,
', C,', i3,
') ',
1599 9993
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1600 $
'(', f4.1,
',', f4.1,
') , A,', i3,
',(', f4.1,
',', f4.1,
1601 $
'), C,', i3,
') .' )
1602 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine cmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lce(RI, RJ, LR)
logical function lceres(TYPE, UPLO, M, N, AA, AS, LDA)
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 csyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
CSYRK
subroutine cherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
CHERK