113 parameter( nsubs = 16 )
115 parameter( zero = 0.0, one = 1.0 )
117 parameter( nmax = 65, incmax = 2 )
118 INTEGER ninmax, nidmax, nkbmax, nalmax, nbemax
119 parameter( ninmax = 7, nidmax = 9, nkbmax = 7,
120 $ nalmax = 7, nbemax = 7 )
122 REAL eps, err, thresh
123 INTEGER i, isnum, j, n, nalf, nbet, nidim, ninc, nkb,
125 LOGICAL fatal, ltestt, rewi, same, sfatal, trace,
129 CHARACTER*32 snaps, summry
131 REAL a( nmax, nmax ), aa( nmax*nmax ),
132 $ alf( nalmax ), as( nmax*nmax ), bet( nbemax ),
133 $ g( nmax ), x( nmax ), xs( nmax*incmax ),
134 $ xx( nmax*incmax ), y( nmax ),
135 $ ys( nmax*incmax ), yt( nmax ),
136 $ yy( nmax*incmax ), z( 2*nmax )
137 INTEGER idim( nidmax ), inc( ninmax ), kb( nkbmax )
138 LOGICAL ltest( nsubs )
139 CHARACTER*6 snames( nsubs )
148 INTRINSIC abs, max, min
154 COMMON /infoc/infot, noutc, ok, lerr
155 COMMON /srnamc/srnamt
157 DATA snames/
'SGEMV ',
'SGBMV ',
'SSYMV ',
'SSBMV ',
158 $
'SSPMV ',
'STRMV ',
'STBMV ',
'STPMV ',
159 $
'STRSV ',
'STBSV ',
'STPSV ',
'SGER ',
160 $
'SSYR ',
'SSPR ',
'SSYR2 ',
'SSPR2 '/
165 READ( nin, fmt = * )summry
166 READ( nin, fmt = * )nout
167 OPEN( nout, file = summry, status =
'UNKNOWN' )
172 READ( nin, fmt = * )snaps
173 READ( nin, fmt = * )ntra
176 OPEN( ntra, file = snaps, status =
'UNKNOWN' )
179 READ( nin, fmt = * )rewi
180 rewi = rewi.AND.trace
182 READ( nin, fmt = * )sfatal
184 READ( nin, fmt = * )tsterr
186 READ( nin, fmt = * )thresh
191 READ( nin, fmt = * )nidim
192 IF( nidim.LT.1.OR.nidim.GT.nidmax )
THEN
193 WRITE( nout, fmt = 9997 )
'N', nidmax
196 READ( nin, fmt = * )( idim( i ), i = 1, nidim )
198 IF( idim( i ).LT.0.OR.idim( i ).GT.nmax )
THEN
199 WRITE( nout, fmt = 9996 )nmax
204 READ( nin, fmt = * )nkb
205 IF( nkb.LT.1.OR.nkb.GT.nkbmax )
THEN
206 WRITE( nout, fmt = 9997 )
'K', nkbmax
209 READ( nin, fmt = * )( kb( i ), i = 1, nkb )
211 IF( kb( i ).LT.0 )
THEN
212 WRITE( nout, fmt = 9995 )
217 READ( nin, fmt = * )ninc
218 IF( ninc.LT.1.OR.ninc.GT.ninmax )
THEN
219 WRITE( nout, fmt = 9997 )
'INCX AND INCY', ninmax
222 READ( nin, fmt = * )( inc( i ), i = 1, ninc )
224 IF( inc( i ).EQ.0.OR.abs( inc( i ) ).GT.incmax )
THEN
225 WRITE( nout, fmt = 9994 )incmax
230 READ( nin, fmt = * )nalf
231 IF( nalf.LT.1.OR.nalf.GT.nalmax )
THEN
232 WRITE( nout, fmt = 9997 )
'ALPHA', nalmax
235 READ( nin, fmt = * )( alf( i ), i = 1, nalf )
237 READ( nin, fmt = * )nbet
238 IF( nbet.LT.1.OR.nbet.GT.nbemax )
THEN
239 WRITE( nout, fmt = 9997 )
'BETA', nbemax
242 READ( nin, fmt = * )( bet( i ), i = 1, nbet )
246 WRITE( nout, fmt = 9993 )
247 WRITE( nout, fmt = 9992 )( idim( i ), i = 1, nidim )
248 WRITE( nout, fmt = 9991 )( kb( i ), i = 1, nkb )
249 WRITE( nout, fmt = 9990 )( inc( i ), i = 1, ninc )
250 WRITE( nout, fmt = 9989 )( alf( i ), i = 1, nalf )
251 WRITE( nout, fmt = 9988 )( bet( i ), i = 1, nbet )
252 IF( .NOT.tsterr )
THEN
253 WRITE( nout, fmt = * )
254 WRITE( nout, fmt = 9980 )
256 WRITE( nout, fmt = * )
257 WRITE( nout, fmt = 9999 )thresh
258 WRITE( nout, fmt = * )
266 50
READ( nin, fmt = 9984,
END = 80 )SNAMET, ltestt
268 IF( snamet.EQ.snames( i ) )
271 WRITE( nout, fmt = 9986 )snamet
273 70 ltest( i ) = ltestt
282 WRITE( nout, fmt = 9998 )eps
289 a( i, j ) = max( i - j + 1, 0 )
295 yy( j ) = j*( ( j + 1 )*j )/2 - ( ( j + 1 )*j*( j - 1 ) )/3
300 CALL smvch( trans, n, n, one, a, nmax, x, 1, zero, y, 1, yt, g,
301 $ yy, eps, err, fatal, nout, .true. )
302 same =
lse( yy, yt, n )
303 IF( .NOT.same.OR.err.NE.zero )
THEN
304 WRITE( nout, fmt = 9985 )trans, same, err
308 CALL smvch( trans, n, n, one, a, nmax, x, -1, zero, y, -1, yt, g,
309 $ yy, eps, err, fatal, nout, .true. )
310 same =
lse( yy, yt, n )
311 IF( .NOT.same.OR.err.NE.zero )
THEN
312 WRITE( nout, fmt = 9985 )trans, same, err
318 DO 210 isnum = 1, nsubs
319 WRITE( nout, fmt = * )
320 IF( .NOT.ltest( isnum ) )
THEN
322 WRITE( nout, fmt = 9983 )snames( isnum )
324 srnamt = snames( isnum )
327 CALL schke( isnum, snames( isnum ), nout )
328 WRITE( nout, fmt = * )
334 GO TO ( 140, 140, 150, 150, 150, 160, 160,
335 $ 160, 160, 160, 160, 170, 180, 180,
338 140
CALL schk1( snames( isnum ), eps, thresh, nout, ntra, trace,
339 $ rewi, fatal, nidim, idim, nkb, kb, nalf, alf,
340 $ nbet, bet, ninc, inc, nmax, incmax, a, aa, as,
341 $ x, xx, xs, y, yy, ys, yt, g )
344 150
CALL schk2( snames( isnum ), eps, thresh, nout, ntra, trace,
345 $ rewi, fatal, nidim, idim, nkb, kb, nalf, alf,
346 $ nbet, bet, ninc, inc, nmax, incmax, a, aa, as,
347 $ x, xx, xs, y, yy, ys, yt, g )
351 160
CALL schk3( snames( isnum ), eps, thresh, nout, ntra, trace,
352 $ rewi, fatal, nidim, idim, nkb, kb, ninc, inc,
353 $ nmax, incmax, a, aa, as, y, yy, ys, yt, g, z )
356 170
CALL schk4( snames( isnum ), eps, thresh, nout, ntra, trace,
357 $ rewi, fatal, nidim, idim, nalf, alf, ninc, inc,
358 $ nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys,
362 180
CALL schk5( snames( isnum ), eps, thresh, nout, ntra, trace,
363 $ rewi, fatal, nidim, idim, nalf, alf, ninc, inc,
364 $ nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys,
368 190
CALL schk6( snames( isnum ), eps, thresh, nout, ntra, trace,
369 $ rewi, fatal, nidim, idim, nalf, alf, ninc, inc,
370 $ nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys,
373 200
IF( fatal.AND.sfatal )
377 WRITE( nout, fmt = 9982 )
381 WRITE( nout, fmt = 9981 )
385 WRITE( nout, fmt = 9987 )
393 9999
FORMAT(
' ROUTINES PASS COMPUTATIONAL TESTS IF TEST RATIO IS LES',
395 9998
FORMAT(
' RELATIVE MACHINE PRECISION IS TAKEN TO BE', 1p, e9.1 )
396 9997
FORMAT(
' NUMBER OF VALUES OF ', a,
' IS LESS THAN 1 OR GREATER ',
398 9996
FORMAT(
' VALUE OF N IS LESS THAN 0 OR GREATER THAN ', i2 )
399 9995
FORMAT(
' VALUE OF K IS LESS THAN 0' )
400 9994
FORMAT(
' ABSOLUTE VALUE OF INCX OR INCY IS 0 OR GREATER THAN ',
402 9993
FORMAT(
' TESTS OF THE REAL LEVEL 2 BLAS', //
' THE F',
403 $
'OLLOWING PARAMETER VALUES WILL BE USED:' )
404 9992
FORMAT(
' FOR N ', 9i6 )
405 9991
FORMAT(
' FOR K ', 7i6 )
406 9990
FORMAT(
' FOR INCX AND INCY ', 7i6 )
407 9989
FORMAT(
' FOR ALPHA ', 7f6.1 )
408 9988
FORMAT(
' FOR BETA ', 7f6.1 )
409 9987
FORMAT(
' AMEND DATA FILE OR INCREASE ARRAY SIZES IN PROGRAM',
410 $ /
' ******* TESTS ABANDONED *******' )
411 9986
FORMAT(
' SUBPROGRAM NAME ', a6,
' NOT RECOGNIZED', /
' ******* T',
412 $
'ESTS ABANDONED *******' )
413 9985
FORMAT(
' ERROR IN SMVCH - IN-LINE DOT PRODUCTS ARE BEING EVALU',
414 $
'ATED WRONGLY.', /
' SMVCH WAS CALLED WITH TRANS = ', a1,
415 $
' AND RETURNED SAME = ', l1,
' AND ERR = ', f12.3,
'.', /
416 $
' THIS MAY BE DUE TO FAULTS IN THE ARITHMETIC OR THE COMPILER.'
417 $ , /
' ******* TESTS ABANDONED *******' )
418 9984
FORMAT( a6, l2 )
419 9983
FORMAT( 1x, a6,
' WAS NOT TESTED' )
420 9982
FORMAT( /
' END OF TESTS' )
421 9981
FORMAT( /
' ******* FATAL ERROR - TESTS ABANDONED *******' )
422 9980
FORMAT(
' ERROR-EXITS WILL NOT BE TESTED' )
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 ( ZERO = 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
474 INTRINSIC abs, max, min
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
646 isame( 5 ) = lse( as, aa, laa )
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
663 isame( 7 ) = lse( as, aa, laa )
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 CALL sregr1( trans, m, n, ly, kl, ku, alpha, aa, lda, xx, incx,
730 $ beta, yy, incy, ys )
733 $
WRITE( ntra, fmt = 9994 )nc, sname, trans, m, n, alpha, lda,
737 CALL sgemv( trans, m, n, alpha, aa, lda, xx, incx, beta, yy,
739 ELSE IF( banded )
THEN
741 $
WRITE( ntra, fmt = 9995 )nc, sname, trans, m, n, kl, ku,
742 $ alpha, lda, incx, beta, incy
745 CALL sgbmv( trans, m, n, kl, ku, alpha, aa, lda, xx, incx,
749 IF( .NOT.lse( ys, yy, ly ) )
THEN
750 WRITE( nout, fmt = 9998 )nargs - 1
757 IF( errmax.LT.thresh )
THEN
758 WRITE( nout, fmt = 9999 )sname, nc
760 WRITE( nout, fmt = 9997 )sname, nc, errmax
765 WRITE( nout, fmt = 9996 )sname
767 WRITE( nout, fmt = 9994 )nc, sname, trans, m, n, alpha, lda,
769 ELSE IF( banded )
THEN
770 WRITE( nout, fmt = 9995 )nc, sname, trans, m, n, kl, ku,
771 $ alpha, lda, incx, beta, incy
777 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
779 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
780 $
'ANGED INCORRECTLY *******' )
781 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
782 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
783 $
' - SUSPECT *******' )
784 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
785 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 4( i3,
',' ), f4.1,
786 $
', A,', i3,
', X,', i2,
',', f4.1,
', Y,', i2,
') .' )
787 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ), f4.1,
788 $
', A,', i3,
', X,', i2,
',', f4.1,
', Y,', i2,
790 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
796 SUBROUTINE schk2( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
797 $ FATAL, NIDIM, IDIM, NKB, KB, NALF, ALF, NBET,
798 $ BET, NINC, INC, NMAX, INCMAX, A, AA, AS, X, XX,
799 $ XS, Y, YY, YS, YT, G )
811 PARAMETER ( ZERO = 0.0, half = 0.5 )
814 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
816 LOGICAL FATAL, REWI, TRACE
819 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
820 $ as( nmax*nmax ), bet( nbet ), g( nmax ),
821 $ x( nmax ), xs( nmax*incmax ),
822 $ xx( nmax*incmax ), y( nmax ),
823 $ ys( nmax*incmax ), yt( nmax ),
825 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
827 REAL ALPHA, ALS, BETA, BLS, ERR, ERRMAX, TRANSL
828 INTEGER I, IA, IB, IC, IK, IN, INCX, INCXS, INCY,
829 $ INCYS, IX, IY, K, KS, LAA, LDA, LDAS, LX, LY,
830 $ N, NARGS, NC, NK, NS
831 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
832 CHARACTER*1 UPLO, UPLOS
847 COMMON /infoc/infot, noutc, ok, lerr
851 full = sname( 3: 3 ).EQ.
'Y'
852 banded = sname( 3: 3 ).EQ.
'B'
853 packed = sname( 3: 3 ).EQ.
'P'
857 ELSE IF( banded )
THEN
859 ELSE IF( packed )
THEN
893 laa = ( n*( n + 1 ) )/2
905 CALL smake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax, aa,
906 $ lda, k, k, reset, transl )
915 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx,
916 $ abs( incx ), 0, n - 1, reset, transl )
919 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
935 CALL smake(
'GE',
' ',
' ', 1, n, y, 1, yy,
936 $ abs( incy ), 0, n - 1, reset,
966 $
WRITE( ntra, fmt = 9993 )nc, sname,
967 $ uplo, n, alpha, lda, incx, beta, incy
970 CALL ssymv( uplo, n, alpha, aa, lda, xx,
971 $ incx, beta, yy, incy )
972 ELSE IF( banded )
THEN
974 $
WRITE( ntra, fmt = 9994 )nc, sname,
975 $ uplo, n, k, alpha, lda, incx, beta,
979 CALL ssbmv( uplo, n, k, alpha, aa, lda,
980 $ xx, incx, beta, yy, incy )
981 ELSE IF( packed )
THEN
983 $
WRITE( ntra, fmt = 9995 )nc, sname,
984 $ uplo, n, alpha, incx, beta, incy
987 CALL sspmv( uplo, n, alpha, aa, xx, incx,
994 WRITE( nout, fmt = 9992 )
1001 isame( 1 ) = uplo.EQ.uplos
1002 isame( 2 ) = ns.EQ.n
1004 isame( 3 ) = als.EQ.alpha
1005 isame( 4 ) = lse( as, aa, laa )
1006 isame( 5 ) = ldas.EQ.lda
1007 isame( 6 ) = lse( xs, xx, lx )
1008 isame( 7 ) = incxs.EQ.incx
1009 isame( 8 ) = bls.EQ.beta
1011 isame( 9 ) = lse( ys, yy, ly )
1013 isame( 9 ) = lseres(
'GE',
' ', 1, n,
1014 $ ys, yy, abs( incy ) )
1016 isame( 10 ) = incys.EQ.incy
1017 ELSE IF( banded )
THEN
1018 isame( 3 ) = ks.EQ.k
1019 isame( 4 ) = als.EQ.alpha
1020 isame( 5 ) = lse( as, aa, laa )
1021 isame( 6 ) = ldas.EQ.lda
1022 isame( 7 ) = lse( xs, xx, lx )
1023 isame( 8 ) = incxs.EQ.incx
1024 isame( 9 ) = bls.EQ.beta
1026 isame( 10 ) = lse( ys, yy, ly )
1028 isame( 10 ) = lseres(
'GE',
' ', 1, n,
1029 $ ys, yy, abs( incy ) )
1031 isame( 11 ) = incys.EQ.incy
1032 ELSE IF( packed )
THEN
1033 isame( 3 ) = als.EQ.alpha
1034 isame( 4 ) = lse( as, aa, laa )
1035 isame( 5 ) = lse( xs, xx, lx )
1036 isame( 6 ) = incxs.EQ.incx
1037 isame( 7 ) = bls.EQ.beta
1039 isame( 8 ) = lse( ys, yy, ly )
1041 isame( 8 ) = lseres(
'GE',
' ', 1, n,
1042 $ ys, yy, abs( incy ) )
1044 isame( 9 ) = incys.EQ.incy
1052 same = same.AND.isame( i )
1053 IF( .NOT.isame( i ) )
1054 $
WRITE( nout, fmt = 9998 )i
1065 CALL smvch(
'N', n, n, alpha, a, nmax, x,
1066 $ incx, beta, y, incy, yt, g,
1067 $ yy, eps, err, fatal, nout,
1069 errmax = max( errmax, err )
1095 IF( errmax.LT.thresh )
THEN
1096 WRITE( nout, fmt = 9999 )sname, nc
1098 WRITE( nout, fmt = 9997 )sname, nc, errmax
1103 WRITE( nout, fmt = 9996 )sname
1105 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, lda, incx,
1107 ELSE IF( banded )
THEN
1108 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, k, alpha, lda,
1110 ELSE IF( packed )
THEN
1111 WRITE( nout, fmt = 9995 )nc, sname, uplo, n, alpha, incx,
1118 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1120 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1121 $
'ANGED INCORRECTLY *******' )
1122 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1123 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1124 $
' - SUSPECT *******' )
1125 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1126 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', AP',
1127 $
', X,', i2,
',', f4.1,
', Y,', i2,
') .' )
1128 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ), f4.1,
1129 $
', A,', i3,
', X,', i2,
',', f4.1,
', Y,', i2,
1131 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', A,',
1132 $ i3,
', X,', i2,
',', f4.1,
', Y,', i2,
') .' )
1133 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1139 SUBROUTINE schk3( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1140 $ FATAL, NIDIM, IDIM, NKB, KB, NINC, INC, NMAX,
1141 $ INCMAX, A, AA, AS, X, XX, XS, XT, G, Z )
1152 REAL ZERO, HALF, ONE
1153 PARAMETER ( ZERO = 0.0, half = 0.5, one = 1.0 )
1156 INTEGER INCMAX, NIDIM, NINC, NKB, NMAX, NOUT, NTRA
1157 LOGICAL FATAL, REWI, TRACE
1160 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ),
1161 $ as( nmax*nmax ), g( nmax ), x( nmax ),
1162 $ xs( nmax*incmax ), xt( nmax ),
1163 $ xx( nmax*incmax ), z( nmax )
1164 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
1166 REAL ERR, ERRMAX, TRANSL
1167 INTEGER I, ICD, ICT, ICU, IK, IN, INCX, INCXS, IX, K,
1168 $ ks, laa, lda, ldas, lx, n, nargs, nc, nk, ns
1169 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
1170 CHARACTER*1 DIAG, DIAGS, TRANS, TRANSS, UPLO, UPLOS
1171 CHARACTER*2 ICHD, ICHU
1177 EXTERNAL lse, lseres
1184 INTEGER INFOT, NOUTC
1187 COMMON /infoc/infot, noutc, ok, lerr
1189 DATA ichu/
'UL'/, icht/
'NTC'/, ichd/
'UN'/
1191 full = sname( 3: 3 ).EQ.
'R'
1192 banded = sname( 3: 3 ).EQ.
'B'
1193 packed = sname( 3: 3 ).EQ.
'P'
1197 ELSE IF( banded )
THEN
1199 ELSE IF( packed )
THEN
1211 DO 110 in = 1, nidim
1237 laa = ( n*( n + 1 ) )/2
1244 uplo = ichu( icu: icu )
1247 trans = icht( ict: ict )
1250 diag = ichd( icd: icd )
1255 CALL smake( sname( 2: 3 ), uplo, diag, n, n, a,
1256 $ nmax, aa, lda, k, k, reset, transl )
1265 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx,
1266 $ abs( incx ), 0, n - 1, reset,
1270 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1293 IF( sname( 4: 5 ).EQ.
'MV' )
THEN
1296 $
WRITE( ntra, fmt = 9993 )nc, sname,
1297 $ uplo, trans, diag, n, lda, incx
1300 CALL strmv( uplo, trans, diag, n, aa, lda,
1302 ELSE IF( banded )
THEN
1304 $
WRITE( ntra, fmt = 9994 )nc, sname,
1305 $ uplo, trans, diag, n, k, lda, incx
1308 CALL stbmv( uplo, trans, diag, n, k, aa,
1310 ELSE IF( packed )
THEN
1312 $
WRITE( ntra, fmt = 9995 )nc, sname,
1313 $ uplo, trans, diag, n, incx
1316 CALL stpmv( uplo, trans, diag, n, aa, xx,
1319 ELSE IF( sname( 4: 5 ).EQ.
'SV' )
THEN
1322 $
WRITE( ntra, fmt = 9993 )nc, sname,
1323 $ uplo, trans, diag, n, lda, incx
1326 CALL strsv( uplo, trans, diag, n, aa, lda,
1328 ELSE IF( banded )
THEN
1330 $
WRITE( ntra, fmt = 9994 )nc, sname,
1331 $ uplo, trans, diag, n, k, lda, incx
1334 CALL stbsv( uplo, trans, diag, n, k, aa,
1336 ELSE IF( packed )
THEN
1338 $
WRITE( ntra, fmt = 9995 )nc, sname,
1339 $ uplo, trans, diag, n, incx
1342 CALL stpsv( uplo, trans, diag, n, aa, xx,
1350 WRITE( nout, fmt = 9992 )
1357 isame( 1 ) = uplo.EQ.uplos
1358 isame( 2 ) = trans.EQ.transs
1359 isame( 3 ) = diag.EQ.diags
1360 isame( 4 ) = ns.EQ.n
1362 isame( 5 ) = lse( as, aa, laa )
1363 isame( 6 ) = ldas.EQ.lda
1365 isame( 7 ) = lse( xs, xx, lx )
1367 isame( 7 ) = lseres(
'GE',
' ', 1, n, xs,
1370 isame( 8 ) = incxs.EQ.incx
1371 ELSE IF( banded )
THEN
1372 isame( 5 ) = ks.EQ.k
1373 isame( 6 ) = lse( as, aa, laa )
1374 isame( 7 ) = ldas.EQ.lda
1376 isame( 8 ) = lse( xs, xx, lx )
1378 isame( 8 ) = lseres(
'GE',
' ', 1, n, xs,
1381 isame( 9 ) = incxs.EQ.incx
1382 ELSE IF( packed )
THEN
1383 isame( 5 ) = lse( as, aa, laa )
1385 isame( 6 ) = lse( xs, xx, lx )
1387 isame( 6 ) = lseres(
'GE',
' ', 1, n, xs,
1390 isame( 7 ) = incxs.EQ.incx
1398 same = same.AND.isame( i )
1399 IF( .NOT.isame( i ) )
1400 $
WRITE( nout, fmt = 9998 )i
1408 IF( sname( 4: 5 ).EQ.
'MV' )
THEN
1412 CALL smvch( trans, n, n, one, a, nmax, x,
1413 $ incx, zero, z, incx, xt, g,
1414 $ xx, eps, err, fatal, nout,
1416 ELSE IF( sname( 4: 5 ).EQ.
'SV' )
THEN
1421 z( i ) = xx( 1 + ( i - 1 )*
1423 xx( 1 + ( i - 1 )*abs( incx ) )
1426 CALL smvch( trans, n, n, one, a, nmax, z,
1427 $ incx, zero, x, incx, xt, g,
1428 $ xx, eps, err, fatal, nout,
1431 errmax = max( errmax, err )
1454 IF( errmax.LT.thresh )
THEN
1455 WRITE( nout, fmt = 9999 )sname, nc
1457 WRITE( nout, fmt = 9997 )sname, nc, errmax
1462 WRITE( nout, fmt = 9996 )sname
1464 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, diag, n, lda,
1466 ELSE IF( banded )
THEN
1467 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, diag, n, k,
1469 ELSE IF( packed )
THEN
1470 WRITE( nout, fmt = 9995 )nc, sname, uplo, trans, diag, n, incx
1476 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1478 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1479 $
'ANGED INCORRECTLY *******' )
1480 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1481 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1482 $
' - SUSPECT *******' )
1483 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1484 9995
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), i3,
', AP, ',
1486 9994
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), 2( i3,
',' ),
1487 $
' A,', i3,
', X,', i2,
') .' )
1488 9993
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), i3,
', A,',
1489 $ i3,
', X,', i2,
') .' )
1490 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1496 SUBROUTINE schk4( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1497 $ FATAL, NIDIM, IDIM, NALF, ALF, NINC, INC, NMAX,
1498 $ INCMAX, A, AA, AS, X, XX, XS, Y, YY, YS, YT, G,
1510 REAL ZERO, HALF, ONE
1511 PARAMETER ( ZERO = 0.0, half = 0.5, one = 1.0 )
1514 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
1515 LOGICAL FATAL, REWI, TRACE
1518 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1519 $ AS( NMAX*NMAX ), G( NMAX ), X( NMAX ),
1520 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
1521 $ y( nmax ), ys( nmax*incmax ), yt( nmax ),
1522 $ yy( nmax*incmax ), z( nmax )
1523 INTEGER IDIM( NIDIM ), INC( NINC )
1525 REAL ALPHA, ALS, ERR, ERRMAX, TRANSL
1526 INTEGER I, IA, IM, IN, INCX, INCXS, INCY, INCYS, IX,
1527 $ iy, j, laa, lda, ldas, lx, ly, m, ms, n, nargs,
1529 LOGICAL NULL, RESET, SAME
1535 EXTERNAL LSE, LSERES
1539 INTRINSIC abs, max, min
1541 INTEGER INFOT, NOUTC
1544 COMMON /infoc/infot, noutc, ok, lerr
1553 DO 120 in = 1, nidim
1559 $ m = max( n - nd, 0 )
1561 $ m = min( n + nd, nmax )
1571 null = n.LE.0.OR.m.LE.0
1580 CALL smake(
'GE',
' ',
' ', 1, m, x, 1, xx, abs( incx ),
1581 $ 0, m - 1, reset, transl )
1584 xx( 1 + abs( incx )*( m/2 - 1 ) ) = zero
1594 CALL smake(
'GE',
' ',
' ', 1, n, y, 1, yy,
1595 $ abs( incy ), 0, n - 1, reset, transl )
1598 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
1607 CALL smake( sname( 2: 3 ),
' ',
' ', m, n, a, nmax,
1608 $ aa, lda, m - 1, n - 1, reset, transl )
1633 $
WRITE( ntra, fmt = 9994 )nc, sname, m, n,
1634 $ alpha, incx, incy, lda
1637 CALL sger( m, n, alpha, xx, incx, yy, incy, aa,
1643 WRITE( nout, fmt = 9993 )
1650 isame( 1 ) = ms.EQ.m
1651 isame( 2 ) = ns.EQ.n
1652 isame( 3 ) = als.EQ.alpha
1653 isame( 4 ) = lse( xs, xx, lx )
1654 isame( 5 ) = incxs.EQ.incx
1655 isame( 6 ) = lse( ys, yy, ly )
1656 isame( 7 ) = incys.EQ.incy
1658 isame( 8 ) = lse( as, aa, laa )
1660 isame( 8 ) = lseres(
'GE',
' ', m, n, as, aa,
1663 isame( 9 ) = ldas.EQ.lda
1669 same = same.AND.isame( i )
1670 IF( .NOT.isame( i ) )
1671 $
WRITE( nout, fmt = 9998 )i
1688 z( i ) = x( m - i + 1 )
1695 w( 1 ) = y( n - j + 1 )
1697 CALL smvch(
'N', m, 1, alpha, z, nmax, w, 1,
1698 $ one, a( 1, j ), 1, yt, g,
1699 $ aa( 1 + ( j - 1 )*lda ), eps,
1700 $ err, fatal, nout, .true. )
1701 errmax = max( errmax, err )
1723 IF( errmax.LT.thresh )
THEN
1724 WRITE( nout, fmt = 9999 )sname, nc
1726 WRITE( nout, fmt = 9997 )sname, nc, errmax
1731 WRITE( nout, fmt = 9995 )j
1734 WRITE( nout, fmt = 9996 )sname
1735 WRITE( nout, fmt = 9994 )nc, sname, m, n, alpha, incx, incy, lda
1740 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1742 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1743 $
'ANGED INCORRECTLY *******' )
1744 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1745 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1746 $
' - SUSPECT *******' )
1747 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1748 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1749 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2( i3,
',' ), f4.1,
', X,', i2,
1750 $
', Y,', i2,
', A,', i3,
') .' )
1751 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1757 SUBROUTINE schk5( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1758 $ FATAL, NIDIM, IDIM, NALF, ALF, NINC, INC, NMAX,
1759 $ INCMAX, A, AA, AS, X, XX, XS, Y, YY, YS, YT, G,
1771 REAL ZERO, HALF, ONE
1772 PARAMETER ( ZERO = 0.0, half = 0.5, one = 1.0 )
1775 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
1776 LOGICAL FATAL, REWI, TRACE
1779 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1780 $ AS( NMAX*NMAX ), G( NMAX ), X( NMAX ),
1781 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
1782 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
1783 $ YY( NMAX*INCMAX ), Z( NMAX )
1784 INTEGER IDIM( NIDIM ), INC( NINC )
1786 REAL ALPHA, ALS, ERR, ERRMAX, TRANSL
1787 INTEGER I, IA, IC, IN, INCX, INCXS, IX, J, JA, JJ, LAA,
1788 $ lda, ldas, lj, lx, n, nargs, nc, ns
1789 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
1790 CHARACTER*1 UPLO, UPLOS
1797 EXTERNAL LSE, LSERES
1803 INTEGER INFOT, NOUTC
1806 COMMON /infoc/infot, noutc, ok, lerr
1810 full = sname( 3: 3 ).EQ.
'Y'
1811 packed = sname( 3: 3 ).EQ.
'P'
1815 ELSE IF( packed )
THEN
1823 DO 100 in = 1, nidim
1833 laa = ( n*( n + 1 ) )/2
1839 uplo = ich( ic: ic )
1849 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
1850 $ 0, n - 1, reset, transl )
1853 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1858 null = n.LE.0.OR.alpha.EQ.zero
1863 CALL smake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax,
1864 $ aa, lda, n - 1, n - 1, reset, transl )
1886 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
1890 CALL ssyr( uplo, n, alpha, xx, incx, aa, lda )
1891 ELSE IF( packed )
THEN
1893 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
1897 CALL sspr( uplo, n, alpha, xx, incx, aa )
1903 WRITE( nout, fmt = 9992 )
1910 isame( 1 ) = uplo.EQ.uplos
1911 isame( 2 ) = ns.EQ.n
1912 isame( 3 ) = als.EQ.alpha
1913 isame( 4 ) = lse( xs, xx, lx )
1914 isame( 5 ) = incxs.EQ.incx
1916 isame( 6 ) = lse( as, aa, laa )
1918 isame( 6 ) = lseres( sname( 2: 3 ), uplo, n, n, as,
1921 IF( .NOT.packed )
THEN
1922 isame( 7 ) = ldas.EQ.lda
1929 same = same.AND.isame( i )
1930 IF( .NOT.isame( i ) )
1931 $
WRITE( nout, fmt = 9998 )i
1948 z( i ) = x( n - i + 1 )
1961 CALL smvch(
'N', lj, 1, alpha, z( jj ), lj, w,
1962 $ 1, one, a( jj, j ), 1, yt, g,
1963 $ aa( ja ), eps, err, fatal, nout,
1974 errmax = max( errmax, err )
1995 IF( errmax.LT.thresh )
THEN
1996 WRITE( nout, fmt = 9999 )sname, nc
1998 WRITE( nout, fmt = 9997 )sname, nc, errmax
2003 WRITE( nout, fmt = 9995 )j
2006 WRITE( nout, fmt = 9996 )sname
2008 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, incx, lda
2009 ELSE IF( packed )
THEN
2010 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, alpha, incx
2016 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2018 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2019 $
'ANGED INCORRECTLY *******' )
2020 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2021 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2022 $
' - SUSPECT *******' )
2023 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
2024 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2025 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2027 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2028 $ i2,
', A,', i3,
') .' )
2029 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
2035 SUBROUTINE schk6( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
2036 $ FATAL, NIDIM, IDIM, NALF, ALF, NINC, INC, NMAX,
2037 $ INCMAX, A, AA, AS, X, XX, XS, Y, YY, YS, YT, G,
2049 REAL ZERO, HALF, ONE
2050 PARAMETER ( ZERO = 0.0, half = 0.5, one = 1.0 )
2053 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
2054 LOGICAL FATAL, REWI, TRACE
2057 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
2058 $ AS( NMAX*NMAX ), G( NMAX ), X( NMAX ),
2059 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
2060 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
2061 $ YY( NMAX*INCMAX ), Z( NMAX, 2 )
2062 INTEGER IDIM( NIDIM ), INC( NINC )
2064 REAL ALPHA, ALS, ERR, ERRMAX, TRANSL
2065 INTEGER I, IA, IC, IN, INCX, INCXS, INCY, INCYS, IX,
2066 $ iy, j, ja, jj, laa, lda, ldas, lj, lx, ly, n,
2068 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
2069 CHARACTER*1 UPLO, UPLOS
2076 EXTERNAL LSE, LSERES
2078 EXTERNAL SMAKE, SMVCH, SSPR2, SSYR2
2082 INTEGER INFOT, NOUTC
2085 COMMON /infoc/infot, noutc, ok, lerr
2089 full = sname( 3: 3 ).EQ.
'Y'
2090 packed = sname( 3: 3 ).EQ.
'P'
2094 ELSE IF( packed )
THEN
2102 DO 140 in = 1, nidim
2112 laa = ( n*( n + 1 ) )/2
2118 uplo = ich( ic: ic )
2128 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
2129 $ 0, n - 1, reset, transl )
2132 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
2142 CALL smake(
'GE',
' ',
' ', 1, n, y, 1, yy,
2143 $ abs( incy ), 0, n - 1, reset, transl )
2146 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
2151 null = n.LE.0.OR.alpha.EQ.zero
2156 CALL smake( sname( 2: 3 ), uplo,
' ', n, n, a,
2157 $ nmax, aa, lda, n - 1, n - 1, reset,
2184 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
2185 $ alpha, incx, incy, lda
2188 CALL ssyr2( uplo, n, alpha, xx, incx, yy, incy,
2190 ELSE IF( packed )
THEN
2192 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
2196 CALL sspr2( uplo, n, alpha, xx, incx, yy, incy,
2203 WRITE( nout, fmt = 9992 )
2210 isame( 1 ) = uplo.EQ.uplos
2211 isame( 2 ) = ns.EQ.n
2212 isame( 3 ) = als.EQ.alpha
2213 isame( 4 ) = lse( xs, xx, lx )
2214 isame( 5 ) = incxs.EQ.incx
2215 isame( 6 ) = lse( ys, yy, ly )
2216 isame( 7 ) = incys.EQ.incy
2218 isame( 8 ) = lse( as, aa, laa )
2220 isame( 8 ) = lseres( sname( 2: 3 ), uplo, n, n,
2223 IF( .NOT.packed )
THEN
2224 isame( 9 ) = ldas.EQ.lda
2231 same = same.AND.isame( i )
2232 IF( .NOT.isame( i ) )
2233 $
WRITE( nout, fmt = 9998 )i
2250 z( i, 1 ) = x( n - i + 1 )
2259 z( i, 2 ) = y( n - i + 1 )
2273 CALL smvch(
'N', lj, 2, alpha, z( jj, 1 ),
2274 $ nmax, w, 1, one, a( jj, j ), 1,
2275 $ yt, g, aa( ja ), eps, err, fatal,
2286 errmax = max( errmax, err )
2309 IF( errmax.LT.thresh )
THEN
2310 WRITE( nout, fmt = 9999 )sname, nc
2312 WRITE( nout, fmt = 9997 )sname, nc, errmax
2317 WRITE( nout, fmt = 9995 )j
2320 WRITE( nout, fmt = 9996 )sname
2322 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, incx,
2324 ELSE IF( packed )
THEN
2325 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, alpha, incx, incy
2331 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2333 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2334 $
'ANGED INCORRECTLY *******' )
2335 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2336 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2337 $
' - SUSPECT *******' )
2338 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
2339 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2340 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2341 $ i2,
', Y,', i2,
', AP) .' )
2342 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2343 $ i2,
', Y,', i2,
', A,', i3,
') .' )
2344 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
2366 INTEGER INFOT, NOUTC
2371 REAL A( 1, 1 ), X( 1 ), Y( 1 )
2373 EXTERNAL CHKXER, SGBMV, SGEMV, SGER, SSBMV, SSPMV, SSPR,
2374 $ SSPR2, SSYMV, SSYR, SSYR2, STBMV, STBSV, STPMV,
2375 $ STPSV, STRMV, STRSV
2377 COMMON /INFOC/INFOT, NOUTC, OK, LERR
2385 GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
2386 $ 90, 100, 110, 120, 130, 140, 150,
2389 CALL sgemv(
'/', 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2390 CALL chkxer( srnamt, infot, nout, lerr, ok )
2392 CALL sgemv(
'N', -1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2393 CALL chkxer( srnamt, infot, nout, lerr, ok )
2395 CALL sgemv(
'N', 0, -1, alpha, a, 1, x, 1, beta, y, 1 )
2396 CALL chkxer( srnamt, infot, nout, lerr, ok )
2398 CALL sgemv(
'N', 2, 0, alpha, a, 1, x, 1, beta, y, 1 )
2399 CALL chkxer( srnamt, infot, nout, lerr, ok )
2401 CALL sgemv(
'N', 0, 0, alpha, a, 1, x, 0, beta, y, 1 )
2402 CALL chkxer( srnamt, infot, nout, lerr, ok )
2404 CALL sgemv(
'N', 0, 0, alpha, a, 1, x, 1, beta, y, 0 )
2405 CALL chkxer( srnamt, infot, nout, lerr, ok )
2408 CALL sgbmv(
'/', 0, 0, 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2409 CALL chkxer( srnamt, infot, nout, lerr, ok )
2411 CALL sgbmv(
'N', -1, 0, 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2412 CALL chkxer( srnamt, infot, nout, lerr, ok )
2414 CALL sgbmv(
'N', 0, -1, 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2415 CALL chkxer( srnamt, infot, nout, lerr, ok )
2417 CALL sgbmv(
'N', 0, 0, -1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2418 CALL chkxer( srnamt, infot, nout, lerr, ok )
2420 CALL sgbmv(
'N', 2, 0, 0, -1, alpha, a, 1, x, 1, beta, y, 1 )
2421 CALL chkxer( srnamt, infot, nout, lerr, ok )
2423 CALL sgbmv(
'N', 0, 0, 1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2424 CALL chkxer( srnamt, infot, nout, lerr, ok )
2426 CALL sgbmv(
'N', 0, 0, 0, 0, alpha, a, 1, x, 0, beta, y, 1 )
2427 CALL chkxer( srnamt, infot, nout, lerr, ok )
2429 CALL sgbmv(
'N', 0, 0, 0, 0, alpha, a, 1, x, 1, beta, y, 0 )
2430 CALL chkxer( srnamt, infot, nout, lerr, ok )
2433 CALL ssymv(
'/', 0, alpha, a, 1, x, 1, beta, y, 1 )
2434 CALL chkxer( srnamt, infot, nout, lerr, ok )
2436 CALL ssymv(
'U', -1, alpha, a, 1, x, 1, beta, y, 1 )
2437 CALL chkxer( srnamt, infot, nout, lerr, ok )
2439 CALL ssymv(
'U', 2, alpha, a, 1, x, 1, beta, y, 1 )
2440 CALL chkxer( srnamt, infot, nout, lerr, ok )
2442 CALL ssymv(
'U', 0, alpha, a, 1, x, 0, beta, y, 1 )
2443 CALL chkxer( srnamt, infot, nout, lerr, ok )
2445 CALL ssymv(
'U', 0, alpha, a, 1, x, 1, beta, y, 0 )
2446 CALL chkxer( srnamt, infot, nout, lerr, ok )
2449 CALL ssbmv(
'/', 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2450 CALL chkxer( srnamt, infot, nout, lerr, ok )
2452 CALL ssbmv(
'U', -1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2453 CALL chkxer( srnamt, infot, nout, lerr, ok )
2455 CALL ssbmv(
'U', 0, -1, alpha, a, 1, x, 1, beta, y, 1 )
2456 CALL chkxer( srnamt, infot, nout, lerr, ok )
2458 CALL ssbmv(
'U', 0, 1, alpha, a, 1, x, 1, beta, y, 1 )
2459 CALL chkxer( srnamt, infot, nout, lerr, ok )
2461 CALL ssbmv(
'U', 0, 0, alpha, a, 1, x, 0, beta, y, 1 )
2462 CALL chkxer( srnamt, infot, nout, lerr, ok )
2464 CALL ssbmv(
'U', 0, 0, alpha, a, 1, x, 1, beta, y, 0 )
2465 CALL chkxer( srnamt, infot, nout, lerr, ok )
2468 CALL sspmv(
'/', 0, alpha, a, x, 1, beta, y, 1 )
2469 CALL chkxer( srnamt, infot, nout, lerr, ok )
2471 CALL sspmv(
'U', -1, alpha, a, x, 1, beta, y, 1 )
2472 CALL chkxer( srnamt, infot, nout, lerr, ok )
2474 CALL sspmv(
'U', 0, alpha, a, x, 0, beta, y, 1 )
2475 CALL chkxer( srnamt, infot, nout, lerr, ok )
2477 CALL sspmv(
'U', 0, alpha, a, x, 1, beta, y, 0 )
2478 CALL chkxer( srnamt, infot, nout, lerr, ok )
2481 CALL strmv(
'/',
'N',
'N', 0, a, 1, x, 1 )
2482 CALL chkxer( srnamt, infot, nout, lerr, ok )
2484 CALL strmv(
'U',
'/',
'N', 0, a, 1, x, 1 )
2485 CALL chkxer( srnamt, infot, nout, lerr, ok )
2487 CALL strmv(
'U',
'N',
'/', 0, a, 1, x, 1 )
2488 CALL chkxer( srnamt, infot, nout, lerr, ok )
2490 CALL strmv(
'U',
'N',
'N', -1, a, 1, x, 1 )
2491 CALL chkxer( srnamt, infot, nout, lerr, ok )
2493 CALL strmv(
'U',
'N',
'N', 2, a, 1, x, 1 )
2494 CALL chkxer( srnamt, infot, nout, lerr, ok )
2496 CALL strmv(
'U',
'N',
'N', 0, a, 1, x, 0 )
2497 CALL chkxer( srnamt, infot, nout, lerr, ok )
2500 CALL stbmv(
'/',
'N',
'N', 0, 0, a, 1, x, 1 )
2501 CALL chkxer( srnamt, infot, nout, lerr, ok )
2503 CALL stbmv(
'U',
'/',
'N', 0, 0, a, 1, x, 1 )
2504 CALL chkxer( srnamt, infot, nout, lerr, ok )
2506 CALL stbmv(
'U',
'N',
'/', 0, 0, a, 1, x, 1 )
2507 CALL chkxer( srnamt, infot, nout, lerr, ok )
2509 CALL stbmv(
'U',
'N',
'N', -1, 0, a, 1, x, 1 )
2510 CALL chkxer( srnamt, infot, nout, lerr, ok )
2512 CALL stbmv(
'U',
'N',
'N', 0, -1, a, 1, x, 1 )
2513 CALL chkxer( srnamt, infot, nout, lerr, ok )
2515 CALL stbmv(
'U',
'N',
'N', 0, 1, a, 1, x, 1 )
2516 CALL chkxer( srnamt, infot, nout, lerr, ok )
2518 CALL stbmv(
'U',
'N',
'N', 0, 0, a, 1, x, 0 )
2519 CALL chkxer( srnamt, infot, nout, lerr, ok )
2522 CALL stpmv(
'/',
'N',
'N', 0, a, x, 1 )
2523 CALL chkxer( srnamt, infot, nout, lerr, ok )
2525 CALL stpmv(
'U',
'/',
'N', 0, a, x, 1 )
2526 CALL chkxer( srnamt, infot, nout, lerr, ok )
2528 CALL stpmv(
'U',
'N',
'/', 0, a, x, 1 )
2529 CALL chkxer( srnamt, infot, nout, lerr, ok )
2531 CALL stpmv(
'U',
'N',
'N', -1, a, x, 1 )
2532 CALL chkxer( srnamt, infot, nout, lerr, ok )
2534 CALL stpmv(
'U',
'N',
'N', 0, a, x, 0 )
2535 CALL chkxer( srnamt, infot, nout, lerr, ok )
2538 CALL strsv(
'/',
'N',
'N', 0, a, 1, x, 1 )
2539 CALL chkxer( srnamt, infot, nout, lerr, ok )
2541 CALL strsv(
'U',
'/',
'N', 0, a, 1, x, 1 )
2542 CALL chkxer( srnamt, infot, nout, lerr, ok )
2544 CALL strsv(
'U',
'N',
'/', 0, a, 1, x, 1 )
2545 CALL chkxer( srnamt, infot, nout, lerr, ok )
2547 CALL strsv(
'U',
'N',
'N', -1, a, 1, x, 1 )
2548 CALL chkxer( srnamt, infot, nout, lerr, ok )
2550 CALL strsv(
'U',
'N',
'N', 2, a, 1, x, 1 )
2551 CALL chkxer( srnamt, infot, nout, lerr, ok )
2553 CALL strsv(
'U',
'N',
'N', 0, a, 1, x, 0 )
2554 CALL chkxer( srnamt, infot, nout, lerr, ok )
2557 CALL stbsv(
'/',
'N',
'N', 0, 0, a, 1, x, 1 )
2558 CALL chkxer( srnamt, infot, nout, lerr, ok )
2560 CALL stbsv(
'U',
'/',
'N', 0, 0, a, 1, x, 1 )
2561 CALL chkxer( srnamt, infot, nout, lerr, ok )
2563 CALL stbsv(
'U',
'N',
'/', 0, 0, a, 1, x, 1 )
2564 CALL chkxer( srnamt, infot, nout, lerr, ok )
2566 CALL stbsv(
'U',
'N',
'N', -1, 0, a, 1, x, 1 )
2567 CALL chkxer( srnamt, infot, nout, lerr, ok )
2569 CALL stbsv(
'U',
'N',
'N', 0, -1, a, 1, x, 1 )
2570 CALL chkxer( srnamt, infot, nout, lerr, ok )
2572 CALL stbsv(
'U',
'N',
'N', 0, 1, a, 1, x, 1 )
2573 CALL chkxer( srnamt, infot, nout, lerr, ok )
2575 CALL stbsv(
'U',
'N',
'N', 0, 0, a, 1, x, 0 )
2576 CALL chkxer( srnamt, infot, nout, lerr, ok )
2579 CALL stpsv(
'/',
'N',
'N', 0, a, x, 1 )
2580 CALL chkxer( srnamt, infot, nout, lerr, ok )
2582 CALL stpsv(
'U',
'/',
'N', 0, a, x, 1 )
2583 CALL chkxer( srnamt, infot, nout, lerr, ok )
2585 CALL stpsv(
'U',
'N',
'/', 0, a, x, 1 )
2586 CALL chkxer( srnamt, infot, nout, lerr, ok )
2588 CALL stpsv(
'U',
'N',
'N', -1, a, x, 1 )
2589 CALL chkxer( srnamt, infot, nout, lerr, ok )
2591 CALL stpsv(
'U',
'N',
'N', 0, a, x, 0 )
2592 CALL chkxer( srnamt, infot, nout, lerr, ok )
2595 CALL sger( -1, 0, alpha, x, 1, y, 1, a, 1 )
2596 CALL chkxer( srnamt, infot, nout, lerr, ok )
2598 CALL sger( 0, -1, alpha, x, 1, y, 1, a, 1 )
2599 CALL chkxer( srnamt, infot, nout, lerr, ok )
2601 CALL sger( 0, 0, alpha, x, 0, y, 1, a, 1 )
2602 CALL chkxer( srnamt, infot, nout, lerr, ok )
2604 CALL sger( 0, 0, alpha, x, 1, y, 0, a, 1 )
2605 CALL chkxer( srnamt, infot, nout, lerr, ok )
2607 CALL sger( 2, 0, alpha, x, 1, y, 1, a, 1 )
2608 CALL chkxer( srnamt, infot, nout, lerr, ok )
2611 CALL ssyr(
'/', 0, alpha, x, 1, a, 1 )
2612 CALL chkxer( srnamt, infot, nout, lerr, ok )
2614 CALL ssyr(
'U', -1, alpha, x, 1, a, 1 )
2615 CALL chkxer( srnamt, infot, nout, lerr, ok )
2617 CALL ssyr(
'U', 0, alpha, x, 0, a, 1 )
2618 CALL chkxer( srnamt, infot, nout, lerr, ok )
2620 CALL ssyr(
'U', 2, alpha, x, 1, a, 1 )
2621 CALL chkxer( srnamt, infot, nout, lerr, ok )
2624 CALL sspr(
'/', 0, alpha, x, 1, a )
2625 CALL chkxer( srnamt, infot, nout, lerr, ok )
2627 CALL sspr(
'U', -1, alpha, x, 1, a )
2628 CALL chkxer( srnamt, infot, nout, lerr, ok )
2630 CALL sspr(
'U', 0, alpha, x, 0, a )
2631 CALL chkxer( srnamt, infot, nout, lerr, ok )
2634 CALL ssyr2(
'/', 0, alpha, x, 1, y, 1, a, 1 )
2635 CALL chkxer( srnamt, infot, nout, lerr, ok )
2637 CALL ssyr2(
'U', -1, alpha, x, 1, y, 1, a, 1 )
2638 CALL chkxer( srnamt, infot, nout, lerr, ok )
2640 CALL ssyr2(
'U', 0, alpha, x, 0, y, 1, a, 1 )
2641 CALL chkxer( srnamt, infot, nout, lerr, ok )
2643 CALL ssyr2(
'U', 0, alpha, x, 1, y, 0, a, 1 )
2644 CALL chkxer( srnamt, infot, nout, lerr, ok )
2646 CALL ssyr2(
'U', 2, alpha, x, 1, y, 1, a, 1 )
2647 CALL chkxer( srnamt, infot, nout, lerr, ok )
2650 CALL sspr2(
'/', 0, alpha, x, 1, y, 1, a )
2651 CALL chkxer( srnamt, infot, nout, lerr, ok )
2653 CALL sspr2(
'U', -1, alpha, x, 1, y, 1, a )
2654 CALL chkxer( srnamt, infot, nout, lerr, ok )
2656 CALL sspr2(
'U', 0, alpha, x, 0, y, 1, a )
2657 CALL chkxer( srnamt, infot, nout, lerr, ok )
2659 CALL sspr2(
'U', 0, alpha, x, 1, y, 0, a )
2660 CALL chkxer( srnamt, infot, nout, lerr, ok )
2663 WRITE( nout, fmt = 9999 )srnamt
2665 WRITE( nout, fmt = 9998 )srnamt
2669 9999
FORMAT(
' ', a6,
' PASSED THE TESTS OF ERROR-EXITS' )
2670 9998
FORMAT(
' ******* ', a6,
' FAILED THE TESTS OF ERROR-EXITS *****',
2676 SUBROUTINE smake( TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL,
2677 $ KU, RESET, TRANSL )
2694 parameter( zero = 0.0, one = 1.0 )
2696 PARAMETER ( ROGUE = -1.0e10 )
2699 INTEGER KL, KU, LDA, M, N, NMAX
2701 CHARACTER*1 DIAG, UPLO
2704 REAL A( NMAX, * ), AA( * )
2706 INTEGER I, I1, I2, I3, IBEG, IEND, IOFF, J, KK
2707 LOGICAL GEN, LOWER, SYM, TRI, UNIT, UPPER
2714 gen =
TYPE( 1: 1 ).EQ.
'G'
2715 SYM = type( 1: 1 ).EQ.
'S'
2716 tri =
TYPE( 1: 1 ).EQ.
'T'
2717 upper = ( sym.OR.tri ).AND.uplo.EQ.
'U'
2718 lower = ( sym.OR.tri ).AND.uplo.EQ.
'L'
2719 unit = tri.AND.diag.EQ.
'U'
2725 IF( gen.OR.( upper.AND.i.LE.j ).OR.( lower.AND.i.GE.j ) )
2727 IF( ( i.LE.j.AND.j - i.LE.ku ).OR.
2728 $ ( i.GE.j.AND.i - j.LE.kl ) )
THEN
2729 a( i, j ) = sbeg( reset ) + transl
2735 a( j, i ) = a( i, j )
2743 $ a( j, j ) = a( j, j ) + one
2750 IF( type.EQ.
'GE' )
THEN
2753 aa( i + ( j - 1 )*lda ) = a( i, j )
2755 DO 40 i = m + 1, lda
2756 aa( i + ( j - 1 )*lda ) = rogue
2759 ELSE IF( type.EQ.
'GB' )
THEN
2761 DO 60 i1 = 1, ku + 1 - j
2762 aa( i1 + ( j - 1 )*lda ) = rogue
2764 DO 70 i2 = i1, min( kl + ku + 1, ku + 1 + m - j )
2765 aa( i2 + ( j - 1 )*lda ) = a( i2 + j - ku - 1, j )
2768 aa( i3 + ( j - 1 )*lda ) = rogue
2771 ELSE IF( type.EQ.
'SY'.OR.type.EQ.
'TR' )
THEN
2788 DO 100 i = 1, ibeg - 1
2789 aa( i + ( j - 1 )*lda ) = rogue
2791 DO 110 i = ibeg, iend
2792 aa( i + ( j - 1 )*lda ) = a( i, j )
2794 DO 120 i = iend + 1, lda
2795 aa( i + ( j - 1 )*lda ) = rogue
2798 ELSE IF( type.EQ.
'SB'.OR.type.EQ.
'TB' )
THEN
2802 ibeg = max( 1, kl + 2 - j )
2815 iend = min( kl + 1, 1 + m - j )
2817 DO 140 i = 1, ibeg - 1
2818 aa( i + ( j - 1 )*lda ) = rogue
2820 DO 150 i = ibeg, iend
2821 aa( i + ( j - 1 )*lda ) = a( i + j - kk, j )
2823 DO 160 i = iend + 1, lda
2824 aa( i + ( j - 1 )*lda ) = rogue
2827 ELSE IF( type.EQ.
'SP'.OR.type.EQ.
'TP' )
THEN
2837 DO 180 i = ibeg, iend
2839 aa( ioff ) = a( i, j )
2842 $ aa( ioff ) = rogue
2852 SUBROUTINE smvch( TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y,
2853 $ INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV )
2865 parameter( zero = 0.0, one = 1.0 )
2867 REAL ALPHA, BETA, EPS, ERR
2868 INTEGER INCX, INCY, M, N, NMAX, NOUT
2872 REAL A( NMAX, * ), G( * ), X( * ), Y( * ), YT( * ),
2876 INTEGER I, INCXL, INCYL, IY, J, JX, KX, KY, ML, NL
2879 INTRINSIC ABS, MAX, SQRT
2881 TRAN = trans.EQ.
'T'.OR.trans.EQ.
'C'
2914 yt( iy ) = yt( iy ) + a( j, i )*x( jx )
2915 g( iy ) = g( iy ) + abs( a( j, i )*x( jx ) )
2920 yt( iy ) = yt( iy ) + a( i, j )*x( jx )
2921 g( iy ) = g( iy ) + abs( a( i, j )*x( jx ) )
2925 yt( iy ) = alpha*yt( iy ) + beta*y( iy )
2926 g( iy ) = abs( alpha )*g( iy ) + abs( beta*y( iy ) )
2934 erri = abs( yt( i ) - yy( 1 + ( i - 1 )*abs( incy ) ) )/eps
2935 IF( g( i ).NE.zero )
2936 $ erri = erri/g( i )
2937 err = max( err, erri )
2938 IF( err*sqrt( eps ).GE.one )
2947 WRITE( nout, fmt = 9999 )
2950 WRITE( nout, fmt = 9998 )i, yt( i ),
2951 $ yy( 1 + ( i - 1 )*abs( incy ) )
2953 WRITE( nout, fmt = 9998 )i,
2954 $ yy( 1 + ( i - 1 )*abs( incy ) ), yt(i)
2961 9999
FORMAT(
' ******* FATAL ERROR - COMPUTED RESULT IS LESS THAN HAL',
2962 $
'F ACCURATE *******', /
' EXPECTED RESULT COMPU',
2964 9998
FORMAT( 1x, i7, 2g18.6 )
2969 LOGICAL FUNCTION lse( RI, RJ, LR )
2982 REAL ri( * ), rj( * )
2987 IF( ri( i ).NE.rj( i ) )
2999 LOGICAL FUNCTION lseres( TYPE, UPLO, M, N, AA, AS, LDA )
3016 REAL aa( lda, * ), as( lda, * )
3018 INTEGER i, ibeg, iend, j
3022 IF( type.EQ.
'GE' )
THEN
3024 DO 10 i = m + 1, lda
3025 IF( aa( i, j ).NE.as( i, j ) )
3029 ELSE IF( type.EQ.
'SY' )
THEN
3038 DO 30 i = 1, ibeg - 1
3039 IF( aa( i, j ).NE.as( i, j ) )
3042 DO 40 i = iend + 1, lda
3043 IF( aa( i, j ).NE.as( i, j ) )
3093 i = i - 1000*( i/1000 )
3098 sbeg = real( i - 500 )/1001.0
3120 SUBROUTINE chkxer( SRNAMT, INFOT, NOUT, LERR, OK )
3136 WRITE( nout, fmt = 9999 )infot, srnamt
3142 9999
FORMAT(
' ***** ILLEGAL VALUE OF PARAMETER NUMBER ', i2,
' NOT D',
3143 $
'ETECTED BY ', a6,
' *****' )
3148 SUBROUTINE sregr1( TRANS, M, N, LY, KL, KU, ALPHA, A, LDA, X,
3149 $ INCX, BETA, Y, INCY, YS )
3155 INTEGER LY, M, N, KL, KU, LDA, INCX, INCY
3158 REAL A(LDA,*), X(*), Y(*), YS(*)
3176 y( i ) = 42.0 + real( i )
3206 COMMON /INFOC/INFOT, NOUT, OK, LERR
3207 COMMON /SRNAMC/SRNAMT
3210 IF( info.NE.infot )
THEN
3211 IF( infot.NE.0 )
THEN
3212 WRITE( nout, fmt = 9999 )info, infot
3214 WRITE( nout, fmt = 9997 )info
3218 IF( srname.NE.srnamt )
THEN
3219 WRITE( nout, fmt = 9998 )srname, srnamt
3224 9999
FORMAT(
' ******* XERBLA WAS CALLED WITH INFO = ', i6,
' INSTEAD',
3225 $
' OF ', i2,
' *******' )
3226 9998
FORMAT(
' ******* XERBLA WAS CALLED WITH SRNAME = ', a6,
' INSTE',
3227 $
'AD OF ', a6,
' *******' )
3228 9997
FORMAT(
' ******* XERBLA WAS CALLED WITH INFO = ', i6,
real function sdiff(sa, sb)
subroutine xerbla(srname, info)
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine sgbmv(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy)
SGBMV
subroutine sgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
SGEMV
subroutine sger(m, n, alpha, x, incx, y, incy, a, lda)
SGER
subroutine ssbmv(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)
SSBMV
subroutine ssymv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
SSYMV
subroutine ssyr(uplo, n, alpha, x, incx, a, lda)
SSYR
subroutine sspmv(uplo, n, alpha, ap, x, incx, beta, y, incy)
SSPMV
subroutine sspr(uplo, n, alpha, x, incx, ap)
SSPR
subroutine stbmv(uplo, trans, diag, n, k, a, lda, x, incx)
STBMV
subroutine stbsv(uplo, trans, diag, n, k, a, lda, x, incx)
STBSV
subroutine stpmv(uplo, trans, diag, n, ap, x, incx)
STPMV
subroutine stpsv(uplo, trans, diag, n, ap, x, incx)
STPSV
subroutine strmv(uplo, trans, diag, n, a, lda, x, incx)
STRMV
subroutine strsv(uplo, trans, diag, n, a, lda, x, incx)
STRSV
subroutine schk6(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nalf, alf, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys, yt, g, z)
subroutine schk3(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nkb, kb, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, xt, g, z)
subroutine sregr1(trans, m, n, ly, kl, ku, alpha, a, lda, x, incx, beta, y, incy, ys)
subroutine schk4(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nalf, alf, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys, yt, g, z)
subroutine schke(isnum, srnamt, nout)
subroutine smvch(trans, m, n, alpha, a, nmax, x, incx, beta, y, incy, yt, g, yy, eps, err, fatal, nout, mv)
logical function lseres(type, uplo, m, n, aa, as, lda)
subroutine schk2(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nkb, kb, nalf, alf, nbet, bet, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys, yt, g)
subroutine schk1(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nkb, kb, nalf, alf, nbet, bet, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys, yt, g)
subroutine schk5(sname, eps, thresh, nout, ntra, trace, rewi, fatal, nidim, idim, nalf, alf, ninc, inc, nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys, yt, g, z)
real function sbeg(reset)
subroutine smake(type, uplo, diag, m, n, a, nmax, aa, lda, kl, ku, reset, transl)
logical function lse(ri, rj, lr)