427 SUBROUTINE schk1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
428 $ FATAL, NIDIM, IDIM, NKB, KB, NALF, ALF, NBET,
429 $ BET, NINC, INC, NMAX, INCMAX, A, AA, AS, X, XX,
430 $ XS, Y, YY, YS, YT, G )
442 PARAMETER ( = 0.0, half = 0.5 )
445 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
447 LOGICAL FATAL, REWI, TRACE
450 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
451 $ as( nmax*nmax ), bet( nbet ), g( nmax ),
452 $ x( nmax ), xs( nmax*incmax ),
453 $ xx( nmax*incmax ), y( nmax ),
454 $ ys( nmax*incmax ), yt( nmax ),
456 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
458 REAL ALPHA, ALS, BETA, BLS, ERR, ERRMAX, TRANSL
459 INTEGER I, IA, IB, IC, IKU, IM, IN, INCX, INCXS, INCY,
460 $ INCYS, IX, IY, KL, KLS, KU, KUS, LAA, LDA,
461 $ ldas, lx, ly, m, ml, ms, n, nargs, nc, nd, nk,
463 LOGICAL BANDED, FULL, NULL, RESET, SAME, TRAN
464 CHARACTER*1 TRANS, TRANSS
479 COMMON /infoc/infot, noutc, ok, lerr
483 full = sname( 3: 3 ).EQ.
'E'
484 banded = sname( 3: 3 ).EQ.
'B'
488 ELSE IF( banded )
THEN
502 $ m =
max( n - nd, 0 )
504 $ m =
min( n + nd, nmax )
514 kl =
max( ku - 1, 0 )
531 null = n.LE.0.OR.m.LE.0
536 CALL smake( sname( 2: 3 ),
' ',
' ', m, n, a, nmax, aa,
537 $ lda, kl, ku, reset, transl )
540 trans = ich( ic: ic )
541 tran = trans.EQ.
'T'.OR.trans.EQ.
'C'
558 CALL smake(
'GE',
' ',
' ', 1,
nl, x, 1, xx,
559 $ abs( incx ), 0,
nl - 1, reset, transl )
562 xx( 1 + abs( incx )*(
nl/2 - 1 ) ) = zero
578 CALL smake(
'GE',
' ',
' ', 1, ml, y, 1,
579 $ yy, abs( incy ), 0, ml - 1,
611 $
WRITE( ntra, fmt = 9994 )nc, sname,
612 $ trans, m, n, alpha, lda, incx, beta,
616 CALL sgemv( trans, m, n, alpha, aa,
617 $ lda, xx, incx, beta, yy,
619 ELSE IF( banded )
THEN
621 $
WRITE( ntra, fmt = 9995 )nc, sname,
622 $ trans, m, n, kl, ku, alpha, lda,
626 CALL sgbmv( trans, m, n, kl, ku, alpha,
627 $ aa, lda, xx, incx, beta,
634 WRITE( nout, fmt = 9993 )
641 isame( 1 ) = trans.EQ.transs
645 isame( 4 ) = als.EQ.alpha
647 isame( 6 ) = ldas.EQ.lda
648 isame( 7 ) = lse( xs, xx, lx )
649 isame( 8 ) = incxs.EQ.incx
650 isame( 9 ) = bls.EQ.beta
652 isame( 10 ) = lse( ys, yy, ly )
654 isame( 10 ) = lseres(
'GE',
' ', 1,
658 isame( 11 ) = incys.EQ.incy
659 ELSE IF( banded )
THEN
660 isame( 4 ) = kls.EQ.kl
661 isame( 5 ) = kus.EQ.ku
662 isame( 6 ) = als.EQ.alpha
664 isame( 8 ) = ldas.EQ.lda
665 isame( 9 ) = lse( xs, xx, lx )
666 isame( 10 ) = incxs.EQ.incx
667 isame( 11 ) = bls.EQ.beta
669 isame( 12 ) = lse( ys, yy, ly )
671 isame( 12 ) = lseres(
'GE',
' ', 1,
675 isame( 13 ) = incys.EQ.incy
683 same = same.AND.isame( i )
684 IF( .NOT.isame( i ) )
685 $
WRITE( nout, fmt = 9998 )i
696 CALL smvch( trans, m, n, alpha, a,
697 $ nmax, x, incx, beta, y,
698 $ incy, yt, g, yy, eps, err,
699 $ fatal, nout, .true. )
700 errmax =
max( errmax, err )
729 IF( errmax.LT.thresh )
THEN
730 WRITE( nout, fmt = 9999 )sname, nc
732 WRITE( nout, fmt = 9997 )sname, nc, errmax
737 WRITE( nout, fmt = 9996 )sname
739 WRITE( nout, fmt = 9994 )nc, sname, trans, m, n
741 ELSE IF( banded )
THEN
742 WRITE( nout, fmt = 9995 )nc, sname, trans, m, n, kl, ku,
743 $ alpha, lda, incx, beta, incy
749 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
751 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
752 $
'ANGED INCORRECTLY *******' )
753 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
754 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
755 $
' - SUSPECT *******' )
756 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
757 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 4( i3,
',' ), f4.1,
758 $
', A,', i3,
', X,', i2,
',', f4.1,
', Y,', i2,
') .' )
759 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ), f4.1,
760 $
', A,', i3,
', X,', i2,
',', f4.1,
', Y,', i2,
762 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
768 SUBROUTINE schk2( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
769 $ FATAL, NIDIM, IDIM, NKB, KB, NALF, ALF, NBET,
770 $ BET, NINC, INC, NMAX, INCMAX, A, AA, AS, X, XX,
771 $ XS, Y, YY, YS, YT, G )
783 PARAMETER ( ZERO = 0.0, half = 0.5 )
786 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
788 LOGICAL FATAL, REWI, TRACE
791 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
792 $ as( nmax*nmax ), bet( nbet ), g( nmax ),
793 $ x( nmax ), xs( nmax*incmax ),
794 $ xx( nmax*incmax ), y( nmax ),
795 $ ys( nmax*incmax ), yt( nmax ),
797 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
799 REAL ALPHA, ALS, BETA, BLS, ERR, ERRMAX, TRANSL
800 INTEGER I, IA, IB, IC, IK, IN, INCX, INCXS, INCY,
801 $ INCYS, IX, IY, K, KS, LAA, LDA, LDAS, LX, LY,
802 $ N, NARGS, NC, NK, NS
803 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
804 CHARACTER*1 UPLO, UPLOS
819 COMMON /infoc/infot, noutc, ok, lerr
823 full = sname( 3: 3 ).EQ.
'Y'
824 banded = sname( 3: 3 ).EQ.
'B'
825 packed = sname( 3: 3 ).EQ.
'P'
829 ELSE IF( banded )
THEN
831 ELSE IF( packed )
THEN
865 laa = ( n*( n + 1 ) )/2
877 CALL smake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax, aa,
878 $ lda, k, k, reset, transl )
887 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx,
888 $ abs( incx ), 0, n - 1, reset, transl )
891 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
907 CALL smake(
'GE',
' ',
' ', 1, n, y, 1, yy,
908 $ abs( incy ), 0, n - 1, reset,
938 $
WRITE( ntra, fmt = 9993 )nc, sname,
939 $ uplo, n, alpha, lda, incx, beta, incy
942 CALL ssymv( uplo, n, alpha, aa, lda, xx,
943 $ incx, beta, yy, incy )
944 ELSE IF( banded )
THEN
946 $
WRITE( ntra, fmt = 9994 )nc, sname,
947 $ uplo, n, k, alpha, lda, incx, beta,
951 CALL ssbmv( uplo, n, k, alpha, aa, lda,
952 $ xx, incx, beta, yy, incy )
953 ELSE IF( packed )
THEN
955 $
WRITE( ntra, fmt = 9995 )nc, sname,
956 $ uplo, n, alpha, incx, beta, incy
959 CALL sspmv( uplo, n, alpha, aa, xx, incx,
966 WRITE( nout, fmt = 9992 )
973 isame( 1 ) = uplo.EQ.uplos
976 isame( 3 ) = als.EQ.alpha
977 isame( 4 ) = lse( as, aa, laa )
978 isame( 5 ) = ldas.EQ.lda
979 isame( 6 ) = lse( xs, xx, lx )
980 isame( 7 ) = incxs.EQ.incx
981 isame( 8 ) = bls.EQ.beta
983 isame( 9 ) = lse( ys, yy, ly )
985 isame( 9 ) =
lseres(
'GE',
' ', 1, n,
986 $ ys, yy, abs( incy ) )
988 isame( 10 ) = incys.EQ.incy
989 ELSE IF( banded )
THEN
991 isame( 4 ) = als.EQ.alpha
992 isame( 5 ) = lse( as, aa, laa )
993 isame( 6 ) = ldas.EQ.lda
994 isame( 7 ) = lse( xs, xx, lx )
995 isame( 8 ) = incxs.EQ.incx
996 isame( 9 ) = bls.EQ.beta
998 isame( 10 ) = lse( ys, yy, ly )
1000 isame( 10 ) =
lseres(
'GE',
' ', 1, n,
1003 isame( 11 ) = incys.EQ.incy
1004 ELSE IF( packed )
THEN
1005 isame( 3 ) = als.EQ.alpha
1006 isame( 4 ) = lse( as, aa, laa )
1007 isame( 5 ) = lse( xs, xx, lx )
1008 isame( 6 ) = incxs.EQ.incx
1009 isame( 7 ) = bls.EQ.beta
1011 isame( 8 ) = lse( ys, yy, ly )
1013 isame( 8 ) =
lseres(
'GE',
' ', 1, n,
1014 $ ys, yy, abs( incy ) )
1016 isame( 9 ) = incys.EQ.incy
1024 same = same.AND.isame( i )
1025 IF( .NOT.isame( i ) )
1026 $
WRITE( nout, fmt = 9998 )i
1037 CALL smvch(
'N', n, n, alpha, a, nmax, x,
1038 $ incx, beta, y, incy, yt, g,
1039 $ yy, eps, err, fatal, nout,
1041 errmax =
max( errmax, err )
1067 IF( errmax.LT.thresh )
THEN
1068 WRITE( nout, fmt = 9999 )sname, nc
1070 WRITE( nout, fmt = 9997 )sname, nc, errmax
1075 WRITE( nout, fmt = 9996 )sname
1077 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, lda, incx,
1079 ELSE IF( banded )
THEN
1080 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, k, alpha, lda,
1082 ELSE IF( packed )
THEN
1083 WRITE( nout, fmt = 9995 )nc, sname, uplo, n, alpha, incx,
1090 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1092 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1093 $
'ANGED INCORRECTLY *******' )
1094 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1095 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1096 $
' - SUSPECT *******' )
1097 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1098 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', AP',
1099 $
', X,', i2,
',', f4.1,
', Y,', i2,
') .' )
1100 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ), f4.1,
1101 $
', A,', i3,
', X,', i2,
',', f4.1,
', Y,', i2,
1103 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', A,',
1104 $ i3,
', X,', i2,
',', f4.1,
', Y,', i2,
') .' )
1105 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1111 SUBROUTINE schk3( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1112 $ FATAL, NIDIM, IDIM, NKB, KB, NINC, INC, NMAX,
1113 $ INCMAX, A, AA, AS, X, XX, XS, XT, G, Z )
1124 REAL ZERO, HALF, ONE
1125 PARAMETER ( ZERO = 0.0, half = 0.5, one = 1.0 )
1128 INTEGER INCMAX, NIDIM, NINC, NKB, NMAX, NOUT, NTRA
1129 LOGICAL FATAL, REWI, TRACE
1132 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ),
1133 $ as( nmax*nmax ), g( nmax ), x( nmax ),
1134 $ xs( nmax*incmax ), xt( nmax ),
1135 $ xx( nmax*incmax ), z( nmax )
1136 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
1138 REAL ERR, ERRMAX, TRANSL
1139 INTEGER I, ICD, ICT, ICU, IK, IN, INCX, INCXS, IX, K,
1140 $ ks, laa, lda, ldas, lx, n, nargs, nc, nk, ns
1141 LOGICAL BANDED, FULL, NULL, PACKED, , SAME
1142 CHARACTER*1 DIAG, DIAGS, TRANS, TRANSS, UPLO, UPLOS
1143 CHARACTER*2 ICHD, ICHU
1149 EXTERNAL lse, lseres
1156 INTEGER INFOT, NOUTC
1159 COMMON /infoc/infot, noutc, ok, lerr
1161 DATA ichu/
'UL'/, icht/
'NTC'/, ichd/
'UN'/
1163 full = sname( 3: 3 ).EQ.
'R'
1164 banded = sname( 3: 3 ).EQ.
'B'
1165 packed = sname( 3: 3 ).EQ.
'P'
1169 ELSE IF( banded )
THEN
1171 ELSE IF( packed )
THEN
1183 DO 110 in = 1, nidim
1209 laa = ( n*( n + 1 ) )/2
1216 uplo = ichu( icu: icu )
1219 trans = icht( ict: ict )
1222 diag = ichd( icd: icd )
1227 CALL smake( sname( 2: 3 ), uplo, diag, n, n, a,
1228 $ nmax, aa, lda, k, k, reset, transl )
1237 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx,
1238 $ abs( incx ), 0, n - 1, reset,
1242 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1265 IF( sname( 4: 5 ).EQ.
'MV' )
THEN
1268 $
WRITE( ntra, fmt = 9993 )nc, sname,
1269 $ uplo, trans, diag, n, lda, incx
1272 CALL strmv( uplo, trans, diag, n, aa, lda,
1274 ELSE IF( banded )
THEN
1276 $
WRITE( ntra, fmt = 9994 )nc, sname,
1277 $ uplo, trans, diag, n, k, lda, incx
1280 CALL stbmv( uplo, trans, diag, n, k, aa,
1282 ELSE IF( packed )
THEN
1284 $
WRITE( ntra, fmt = 9995 )nc, sname,
1285 $ uplo, trans, diag, n, incx
1288 CALL stpmv( uplo, trans, diag, n, aa, xx,
1291 ELSE IF( sname( 4: 5 ).EQ.
'SV' )
THEN
1294 $
WRITE( ntra, fmt = 9993 )nc, sname,
1295 $ uplo, trans, diag, n, lda, incx
1298 CALL strsv( uplo, trans, diag, n
1300 ELSE IF( banded )
THEN
1302 $
WRITE( ntra, fmt = 9994 )nc, sname,
1303 $ uplo, trans, diag, n, k, lda, incx
1306 CALL stbsv( uplo, trans, diag, n, k, aa,
1308 ELSE IF( packed )
THEN
1310 $
WRITE( ntra, fmt = 9995 )nc, sname,
1311 $ uplo, trans, diag, n, incx
1314 CALL stpsv( uplo, trans, diag, n, aa, xx,
1322 WRITE( nout, fmt = 9992 )
1329 isame( 1 ) = uplo.EQ.uplos
1330 isame( 2 ) = trans.EQ.transs
1331 isame( 3 ) = diag.EQ.diags
1332 isame( 4 ) = ns.EQ.n
1334 isame( 5 ) = lse( as, aa, laa )
1335 isame( 6 ) = ldas.EQ.lda
1337 isame( 7 ) = lse( xs, xx, lx )
1339 isame( 7 ) = lseres(
'GE',
' ', 1, n, xs,
1342 isame( 8 ) = incxs.EQ.incx
1343 ELSE IF( banded )
THEN
1344 isame( 5 ) = ks.EQ.k
1345 isame( 6 ) = lse( as, aa, laa )
1346 isame( 7 ) = ldas.EQ.lda
1348 isame( 8 ) = lse( xs, xx, lx )
1350 isame( 8 ) = lseres(
'GE',
' ', 1, n, xs,
1353 isame( 9 ) = incxs.EQ.incx
1354 ELSE IF( packed )
THEN
1355 isame( 5 ) = lse( as, aa, laa )
1357 isame( 6 ) = lse( xs, xx, lx )
1359 isame( 6 ) = lseres(
'GE',
' ', 1, n, xs,
1362 isame( 7 ) = incxs.EQ.incx
1370 same = same.AND.isame( i )
1371 IF( .NOT.isame( i ) )
1372 $
WRITE( nout, fmt = 9998 )i
1380 IF( sname( 4: 5 ).EQ.
'MV' )
THEN
1384 CALL smvch( trans, n, n, one, a, nmax, x,
1385 $ incx, zero, z, incx, xt, g,
1386 $ xx, eps, err, fatal, nout,
1388 ELSE IF( sname( 4: 5 ).EQ.
'SV' )
THEN
1393 z( i ) = xx( 1 + ( i - 1 )*
1395 xx( 1 + ( i - 1 )*abs( incx ) )
1398 CALL smvch( trans, n, n, one, a, nmax, z,
1399 $ incx, zero, x, incx, xt, g,
1400 $ xx, eps, err, fatal, nout,
1403 errmax =
max( errmax, err )
1426 IF( errmax.LT.thresh )
THEN
1427 WRITE( nout, fmt = 9999 )sname, nc
1429 WRITE( nout, fmt = 9997 )sname, nc, errmax
1434 WRITE( nout, fmt = 9996 )sname
1436 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, diag, n, lda,
1438 ELSE IF( banded )
THEN
1439 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, diag, n, k,
1441 ELSE IF( packed )
THEN
1442 WRITE( nout, fmt = 9995 )nc, sname, uplo, trans, diag, n, incx
1448 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1450 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1451 $
'ANGED INCORRECTLY *******' )
1452 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1453 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1454 $
' - SUSPECT *******' )
1455 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1456 9995
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), i3,
', AP, ',
1458 9994
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), 2( i3,
',' ),
1459 $
' A,', i3,
', X,', i2,
') .' )
1460 9993
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), i3,
', A,',
1461 $ i3, ', x,
', I2, ') .
' )
1462 9992 FORMAT( ' ******* fatal error - error-
EXIT taken on valid
CALL *
',
1729 SUBROUTINE schk5( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1730 $ FATAL, NIDIM, IDIM, NALF, ALF, NINC, INC, NMAX,
1731 $ INCMAX, A, AA, AS, X, XX, XS, Y, YY, YS, YT, G,
1743 REAL ZERO, HALF, ONE
1744 PARAMETER ( ZERO = 0.0, half = 0.5, one = 1.0 )
1747 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
1748 LOGICAL FATAL, REWI, TRACE
1751 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1752 $ AS( NMAX*NMAX ), G( NMAX ), X( NMAX ),
1753 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
1754 $ y( nmax ), ys( nmax*incmax ), yt( nmax ),
1755 $ yy( nmax*incmax ), z( nmax )
1756 INTEGER IDIM( NIDIM ), INC( NINC )
1758 REAL ALPHA, ALS, ERR, ERRMAX, TRANSL
1759 INTEGER I, IA, IC, IN, INCX, INCXS, IX, J, JA, JJ, LAA,
1760 $ lda, ldas, lj, lx, n, nargs, nc, ns
1761 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
1762 CHARACTER*1 UPLO, UPLOS
1769 EXTERNAL lse, lseres
1775 INTEGER INFOT, NOUTC
1778 COMMON /infoc/infot, noutc, ok, lerr
1782 full = sname( 3: 3 ).EQ.
'Y'
1783 packed = sname( 3: 3 ).EQ.
'P'
1787 ELSE IF( packed )
THEN
1795 DO 100 in = 1, nidim
1805 laa = ( n*( n + 1 ) )/2
1811 uplo = ich( ic: ic )
1821 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
1822 $ 0, n - 1, reset, transl )
1825 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1830 null = n.LE.0.OR.alpha.EQ.zero
1835 CALL smake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax,
1836 $ aa, lda, n - 1, n - 1, reset, transl )
1858 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
1862 CALL ssyr( uplo, n, alpha, xx, incx, aa, lda )
1863 ELSE IF( packed )
THEN
1865 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
1869 CALL sspr( uplo, n, alpha, xx, incx, aa )
1875 WRITE( nout, fmt = 9992 )
1882 isame( 1 ) = uplo.EQ.uplos
1883 isame( 2 ) = ns.EQ.n
1884 isame( 3 ) = als.EQ.alpha
1885 isame( 4 ) = lse( xs, xx, lx )
1886 isame( 5 ) = incxs.EQ.incx
1888 isame( 6 ) = lse( as, aa, laa )
1890 isame( 6 ) = lseres( sname( 2: 3 ), uplo, n, n, as,
1893 IF( .NOT.packed )
THEN
1894 isame( 7 ) = ldas.EQ.lda
1901 same = same.AND.isame( i )
1902 IF( .NOT.isame( i ) )
1903 $
WRITE( nout, fmt = 9998 )i
1920 z( i ) = x( n - i + 1 )
1933 CALL smvch(
'N', lj, 1, alpha, z( jj ), lj, w,
1934 $ 1, one, a( jj, j ), 1, yt, g,
1935 $ aa( ja ), eps, err, fatal, nout,
1946 errmax =
max( errmax, err )
1967 IF( errmax.LT.thresh )
THEN
1968 WRITE( nout, fmt = 9999 )sname, nc
1970 WRITE( nout, fmt = 9997 )sname, nc, errmax
1975 WRITE( nout, fmt = 9995 )j
1978 WRITE( nout, fmt = 9996 )sname
1980 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, incx, lda
1981 ELSE IF( packed )
THEN
1982 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, alpha, incx
1988 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1990 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1991 $
'ANGED INCORRECTLY *******' )
1992 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1993 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1994 $
' - SUSPECT *******' )
1995 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1996 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1997 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
1999 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2000 $ i2,
', A,', i3,
') .' )
2001 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
2007 SUBROUTINE schk6( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
2008 $ FATAL, NIDIM, IDIM, NALF, ALF, NINC, INC, NMAX,
2009 $ INCMAX, A, AA, AS, X, XX, XS, Y, YY, YS, YT, G,
2021 REAL ZERO, HALF, ONE
2022 PARAMETER ( ZERO = 0.0, half = 0.5, one = 1.0 )
2025 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
2026 LOGICAL FATAL, REWI, TRACE
2029 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
2030 $ AS( NMAX*NMAX ), G( NMAX ), X( NMAX ),
2031 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
2032 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
2033 $ YY( NMAX*INCMAX ), Z( NMAX, 2 )
2034 INTEGER IDIM( NIDIM ), INC( NINC )
2036 REAL ALPHA, ALS, ERR, ERRMAX, TRANSL
2037 INTEGER I, IA, IC, IN, INCX, INCXS, INCY, INCYS, IX,
2038 $ iy, j, ja, jj, laa, lda, ldas, lj, lx, ly, n,
2040 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
2041 CHARACTER*1 UPLO, UPLOS
2048 EXTERNAL lse, lseres
2054 INTEGER INFOT, NOUTC
2057 COMMON /infoc/infot, noutc, ok, lerr
2061 full = sname( 3: 3 ).EQ.
'Y'
2062 packed = sname( 3: 3 ).EQ.
'P'
2066 ELSE IF( packed )
THEN
2074 DO 140 in = 1, nidim
2084 laa = ( n*( n + 1 ) )/2
2090 uplo = ich( ic: ic )
2100 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
2101 $ 0, n - 1, reset, transl )
2104 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
2114 CALL smake(
'GE',
' ',
' ', 1, n, y, 1, yy,
2115 $ abs( incy ), 0, n - 1, reset, transl )
2118 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
2123 null = n.LE.0.OR.alpha.EQ.zero
2128 CALL smake( sname( 2: 3 ), uplo,
' ', n, n, a,
2129 $ nmax, aa, lda, n - 1, n - 1, reset,
2156 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
2157 $ alpha, incx, incy, lda
2160 CALL ssyr2( uplo, n, alpha, xx, incx, yy, incy,
2162 ELSE IF( packed )
THEN
2164 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
2168 CALL sspr2( uplo, n, alpha, xx, incx, yy, incy,
2175 WRITE( nout, fmt = 9992 )
2182 isame( 1 ) = uplo.EQ.uplos
2183 isame( 2 ) = ns.EQ.n
2184 isame( 3 ) = als.EQ.alpha
2185 isame( 4 ) = lse( xs, xx, lx )
2186 isame( 5 ) = incxs.EQ.incx
2187 isame( 6 ) = lse( ys, yy, ly )
2188 isame( 7 ) = incys.EQ.incy
2190 isame( 8 ) = lse( as, aa, laa )
2192 isame( 8 ) = lseres( sname( 2: 3 ), uplo, n, n,
2195 IF( .NOT.packed )
THEN
2196 isame( 9 ) = ldas.EQ.lda
2203 same = same.AND.isame( i )
2204 IF( .NOT.isame( i ) )
2205 $
WRITE( nout, fmt = 9998 )i
2222 z( i, 1 ) = x( n - i + 1 )
2231 z( i, 2 ) = y( n - i + 1 )
2245 CALL smvch(
'N', lj, 2, alpha, z( jj, 1 ),
2246 $ nmax, w, 1, one, a( jj, j ), 1,
2247 $ yt, g, aa( ja ), eps, err, fatal,
2258 errmax =
max( errmax, err )
2281 IF( errmax.LT.thresh )
THEN
2282 WRITE( nout, fmt = 9999 )sname, nc
2284 WRITE( nout, fmt = 9997 )sname, nc, errmax
2289 WRITE( nout, fmt = 9995 )j
2292 WRITE( nout, fmt = 9996 )sname
2294 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, incx,
2296 ELSE IF( packed )
THEN
2297 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, alpha, incx, incy
2303 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2305 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2306 $
'ANGED INCORRECTLY *******' )
2307 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2308 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2309 $
' - SUSPECT *******' )
2310 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
2311 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2312 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2313 $ i2,
', Y,', i2,
', AP) .' )
2314 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2315 $ i2,
', Y,', i2,
', A,', i3,
') .' )
2316 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
2338 INTEGER INFOT, NOUTC
2343 REAL A( 1, 1 ), X( 1 ), Y( 1 )
2345 EXTERNAL CHKXER, SGBMV, SGEMV, SGER, SSBMV, SSPMV, SSPR,
2346 $ SSPR2, SSYMV, SSYR, SSYR2, STBMV, STBSV, STPMV,
2347 $ STPSV, STRMV, STRSV
2349 COMMON /infoc/infot, noutc, ok, lerr
2357 GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
2358 $ 90, 100, 110, 120, 130, 140, 150,
2361 CALL sgemv(
'/', 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2362 CALL chkxer( srnamt, infot, nout, lerr, ok )
2364 CALL sgemv(
'N', -1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2365 CALL chkxer( srnamt, infot, nout, lerr, ok )
2367 CALL sgemv(
'N', 0, -1, alpha, a, 1, x, 1, beta, y, 1 )
2368 CALL chkxer( srnamt, infot, nout, lerr, ok )
2370 CALL sgemv(
'N', 2, 0, alpha, a, 1, x, 1, beta, y, 1 )
2371 CALL chkxer( srnamt, infot, nout, lerr, ok )
2373 CALL sgemv(
'N', 0, 0, alpha, a, 1, x, 0, beta, y, 1 )
2374 CALL chkxer( srnamt, infot, nout, lerr, ok )
2376 CALL sgemv(
'N', 0, 0, alpha, a, 1, x, 1, beta, y, 0 )
2377 CALL chkxer( srnamt, infot, nout, lerr, ok )
2380 CALL sgbmv(
'/', 0, 0, 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2381 CALL chkxer( srnamt, infot, nout, lerr, ok )
2383 CALL sgbmv(
'N', -1, 0, 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2384 CALL chkxer( srnamt, infot, nout, lerr, ok )
2386 CALL sgbmv(
'N', 0, -1, 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2387 CALL chkxer( srnamt, infot, nout, lerr, ok )
2389 CALL sgbmv(
'N', 0, 0, -1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2390 CALL chkxer( srnamt, infot, nout, lerr, ok )
2392 CALL sgbmv(
'N', 2, 0, 0, -1, alpha, a, 1, x, 1, beta, y, 1 )
2393 CALL chkxer( srnamt, infot, nout, lerr, ok )
2395 CALL sgbmv(
'N', 0, 0, 1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2396 CALL chkxer( srnamt, infot, nout, lerr, ok )
2398 CALL sgbmv(
'N', 0, 0, 0, 0, alpha, a, 1, x, 0, beta, y, 1 )
2399 CALL chkxer( srnamt, infot, nout, lerr, ok )
2401 CALL sgbmv(
'N', 0, 0, 0, 0, alpha, a, 1, x, 1, beta, y, 0 )
2402 CALL chkxer( srnamt, infot, nout, lerr, ok )
2405 CALL ssymv(
'/', 0, alpha, a, 1, x, 1, beta, y, 1 )
2406 CALL chkxer( srnamt, infot, nout, lerr, ok )
2408 CALL ssymv(
'U', -1, alpha, a, 1, x, 1, beta, y, 1 )
2409 CALL chkxer( srnamt, infot, nout, lerr, ok )
2411 CALL ssymv(
'U', 2, alpha, a, 1, x, 1, beta, y, 1 )
2412 CALL chkxer( srnamt, infot, nout, lerr, ok )
2414 CALL ssymv(
'U', 0, alpha, a, 1, x, 0, beta, y, 1 )
2415 CALL chkxer( srnamt, infot, nout, lerr, ok )
2417 CALL ssymv(
'U', 0, alpha, a, 1, x, 1, beta, y, 0 )
2418 CALL chkxer( srnamt, infot, nout, lerr, ok )
2421 CALL ssbmv(
'/', 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2422 CALL chkxer( srnamt, infot, nout, lerr, ok )
2424 CALL ssbmv(
'U', -1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2425 CALL chkxer( srnamt, infot, nout, lerr, ok )
2427 CALL ssbmv(
'U', 0, -1, alpha, a, 1, x, 1, beta, y, 1 )
2428 CALL chkxer( srnamt, infot, nout, lerr, ok )
2430 CALL ssbmv(
'U', 0, 1, alpha, a, 1, x, 1, beta, y, 1 )
2431 CALL chkxer( srnamt, infot, nout, lerr, ok )
2433 CALL ssbmv(
'U', 0, 0, alpha, a, 1, x, 0, beta, y, 1 )
2434 CALL chkxer( srnamt, infot, nout, lerr, ok )
2436 CALL ssbmv(
'U', 0, 0, alpha, a, 1, x, 1, beta, y, 0 )
2437 CALL chkxer( srnamt, infot, nout, lerr, ok )
2440 CALL sspmv(
'/', 0, alpha, a, x, 1, beta, y, 1 )
2441 CALL chkxer( srnamt, infot, nout, lerr, ok )
2443 CALL sspmv(
'U', -1, alpha, a, x, 1, beta, y, 1 )
2444 CALL chkxer( srnamt, infot, nout, lerr, ok )
2446 CALL sspmv(
'U', 0, alpha, a, x, 0, beta, y, 1 )
2447 CALL chkxer( srnamt, infot, nout, lerr, ok )
2449 CALL sspmv(
'U', 0, alpha, a, x, 1, beta, y, 0 )
2450 CALL chkxer( srnamt, infot, nout, lerr, ok )
2453 CALL strmv(
'/',
'N',
'N', 0, a, 1, x, 1 )
2454 CALL chkxer( srnamt, infot, nout, lerr, ok )
2456 CALL strmv(
'U',
'/',
'N', 0, a, 1, x, 1 )
2457 CALL chkxer( srnamt, infot, nout, lerr, ok )
2459 CALL strmv(
'U',
'N',
'/', 0, a, 1, x, 1 )
2460 CALL chkxer( srnamt, infot, nout, lerr, ok )
2462 CALL strmv(
'U',
'N',
'N', -1, a, 1, x, 1 )
2463 CALL chkxer( srnamt, infot, nout, lerr, ok )
2465 CALL strmv(
'U',
'N',
'N', 2, a, 1, x, 1 )
2466 CALL chkxer( srnamt, infot, nout, lerr, ok )
2468 CALL strmv(
'U',
'N',
'N', 0, a, 1, x, 0 )
2469 CALL chkxer( srnamt, infot, nout, lerr, ok )
2472 CALL stbmv(
'/',
'N',
'N', 0, 0, a, 1, x, 1 )
2473 CALL chkxer( srnamt, infot, nout, lerr, ok )
2475 CALL stbmv(
'U',
'/',
'N', 0, 0, a, 1, x, 1 )
2476 CALL chkxer( srnamt, infot, nout, lerr, ok )
2478 CALL stbmv(
'U',
'N',
'/', 0, 0, a, 1, x, 1 )
2479 CALL chkxer( srnamt, infot, nout, lerr, ok )
2481 CALL stbmv(
'U',
'N',
'N', -1, 0, a, 1, x, 1 )
2482 CALL chkxer( srnamt, infot, nout, lerr, ok )
2484 CALL stbmv(
'U',
'N',
'N', 0, -1, a, 1, x, 1 )
2485 CALL chkxer( srnamt, infot, nout, lerr, ok )
2487 CALL stbmv(
'U',
'N',
'N', 0, 1, a, 1, x, 1 )
2488 CALL chkxer( srnamt, infot, nout, lerr, ok )
2490 CALL stbmv(
'U',
'N',
'N', 0, 0, a, 1, x, 0 )
2491 CALL chkxer( srnamt, infot, nout, lerr, ok )
2494 CALL stpmv(
'/',
'N',
'N', 0, a, x, 1 )
2495 CALL chkxer( srnamt, infot, nout, lerr, ok )
2497 CALL stpmv(
'U',
'/',
'N', 0, a, x, 1 )
2498 CALL chkxer( srnamt, infot, nout, lerr, ok )
2500 CALL stpmv(
'U',
'N',
'/', 0, a, x, 1 )
2501 CALL chkxer( srnamt, infot, nout, lerr, ok )
2503 CALL stpmv(
'U',
'N',
'N', -1, a, x, 1 )
2504 CALL chkxer( srnamt, infot, nout, lerr, ok )
2506 CALL stpmv(
'U',
'N',
'N', 0, a, x, 0 )
2507 CALL chkxer( srnamt, infot, nout, lerr, ok )
2510 CALL strsv(
'/',
'N',
'N', 0, a, 1, x, 1 )
2511 CALL chkxer( srnamt, infot, nout, lerr, ok )
2513 CALL strsv(
'U',
'/',
'N', 0, a, 1, x, 1 )
2514 CALL chkxer( srnamt, infot, nout, lerr, ok )
2516 CALL strsv(
'U',
'N',
'/', 0, a, 1, x, 1 )
2517 CALL chkxer( srnamt, infot, nout, lerr, ok )
2519 CALL strsv(
'U',
'N',
'N', -1, a, 1, x, 1 )
2520 CALL chkxer( srnamt, infot, nout, lerr, ok )
2522 CALL strsv(
'U',
'N',
'N', 2, a, 1, x, 1 )
2523 CALL chkxer( srnamt, infot, nout, lerr, ok )
2525 CALL strsv(
'U',
'N',
'N', 0, a, 1, x, 0 )
2526 CALL chkxer( srnamt, infot, nout, lerr, ok )
2529 CALL stbsv(
'/',
'N',
'N', 0, 0, a, 1, x, 1 )
2530 CALL chkxer( srnamt, infot, nout, lerr, ok )
2532 CALL stbsv(
'U',
'/',
'N', 0, 0, a, 1, x, 1 )
2533 CALL chkxer( srnamt, infot, nout, lerr, ok )
2535 CALL stbsv(
'U',
'N',
'/', 0, 0, a, 1, x, 1 )
2536 CALL chkxer( srnamt, infot, nout, lerr, ok )
2538 CALL stbsv(
'U',
'N',
'N', -1, 0, a, 1, x, 1 )
2539 CALL chkxer( srnamt, infot, nout, lerr, ok )
2541 CALL stbsv(
'U',
'N',
'N', 0, -1, a, 1, x, 1 )
2542 CALL chkxer( srnamt, infot, nout, lerr, ok )
2544 CALL stbsv(
'U',
'N',
'N', 0, 1, a, 1, x, 1 )
2545 CALL chkxer( srnamt, infot, nout, lerr, ok )
2547 CALL stbsv(
'U',
'N',
'N', 0, 0, a, 1, x, 0 )
2548 CALL chkxer( srnamt, infot, nout, lerr, ok )
2551 CALL stpsv(
'/',
'N',
'N', 0, a, x, 1 )
2552 CALL chkxer( srnamt, infot, nout, lerr, ok )
2554 CALL stpsv(
'U',
'/',
'N', 0, a, x, 1 )
2555 CALL chkxer( srnamt, infot, nout, lerr, ok )
2557 CALL stpsv(
'U',
'N',
'/', 0, a, x, 1 )
2558 CALL chkxer( srnamt, infot, nout, lerr, ok )
2560 CALL stpsv(
'U',
'N',
'N', -1, a, x, 1 )
2561 CALL chkxer( srnamt, infot, nout, lerr, ok )
2563 CALL stpsv(
'U',
'N',
'N', 0, a, x, 0 )
2564 CALL chkxer( srnamt, infot, nout, lerr, ok )
2567 CALL sger( -1, 0, alpha, x, 1, y, 1, a, 1 )
2568 CALL chkxer( srnamt, infot, nout, lerr, ok )
2570 CALL sger( 0, -1, alpha, x, 1, y, 1, a, 1 )
2571 CALL chkxer( srnamt, infot, nout, lerr, ok )
2573 CALL sger( 0, 0, alpha, x, 0, y, 1, a, 1 )
2574 CALL chkxer( srnamt, infot, nout, lerr, ok )
2576 CALL sger( 0, 0, alpha, x, 1, y, 0, a, 1 )
2577 CALL chkxer( srnamt, infot, nout, lerr, ok )
2579 CALL sger( 2, 0, alpha, x, 1, y, 1, a, 1 )
2580 CALL chkxer( srnamt, infot, nout, lerr, ok )
2583 CALL ssyr(
'/', 0, alpha, x, 1, a, 1 )
2584 CALL chkxer( srnamt, infot, nout, lerr, ok )
2586 CALL ssyr(
'U', -1, alpha, x, 1, a, 1 )
2587 CALL chkxer( srnamt, infot, nout, lerr, ok )
2589 CALL ssyr(
'U', 0, alpha, x, 0, a, 1 )
2590 CALL chkxer( srnamt, infot, nout, lerr, ok )
2592 CALL ssyr(
'U', 2, alpha, x, 1, a, 1 )
2593 CALL chkxer( srnamt, infot, nout, lerr, ok )
2596 CALL sspr(
'/', 0, alpha, x, 1, a )
2597 CALL chkxer( srnamt, infot, nout, lerr, ok )
2599 CALL sspr(
'U', -1, alpha, x, 1, a )
2600 CALL chkxer( srnamt, infot, nout, lerr, ok )
2602 CALL sspr(
'U', 0, alpha, x, 0, a )
2603 CALL chkxer( srnamt, infot, nout, lerr, ok )
2606 CALL ssyr2(
'/', 0, alpha, x, 1, y, 1, a, 1 )
2607 CALL chkxer( srnamt, infot, nout, lerr, ok )
2609 CALL ssyr2(
'U', -1, alpha, x, 1, y, 1, a, 1 )
2610 CALL chkxer( srnamt, infot, nout, lerr, ok )
2612 CALL ssyr2(
'U', 0, alpha, x, 0, y, 1, a, 1 )
2613 CALL chkxer( srnamt, infot, nout, lerr, ok )
2615 CALL ssyr2(
'U', 0, alpha, x, 1, y, 0, a, 1 )
2616 CALL chkxer( srnamt, infot, nout, lerr, ok )
2618 CALL ssyr2(
'U', 2, alpha, x, 1, y, 1, a, 1 )
2619 CALL chkxer( srnamt, infot, nout, lerr, ok )
2622 CALL sspr2(
'/', 0, alpha, x, 1, y, 1, a )
2623 CALL chkxer( srnamt, infot, nout, lerr, ok )
2625 CALL sspr2(
'U', -1, alpha, x, 1, y, 1, a )
2626 CALL chkxer( srnamt, infot, nout, lerr, ok )
2628 CALL sspr2(
'U', 0, alpha, x, 0, y, 1, a )
2629 CALL chkxer( srnamt, infot, nout, lerr, ok )
2631 CALL sspr2(
'U', 0, alpha, x, 1, y, 0, a )
2632 CALL chkxer( srnamt, infot, nout, lerr, ok )
2635 WRITE( nout, fmt = 9999 )srnamt
2637 WRITE( nout, fmt = 9998 )srnamt
2641 9999
FORMAT(
' ', a6,
' PASSED THE TESTS OF ERROR-EXITS' )
2642 9998
FORMAT(
' ******* ', a6,
' FAILED THE TESTS OF ERROR-EXITS *****',