114 parameter( nsubs = 17 )
116 parameter( zero = ( 0.0, 0.0 ), one = ( 1.0, 0.0 ) )
118 parameter( rzero = 0.0 )
120 parameter( nmax = 65, incmax = 2 )
121 INTEGER ninmax, nidmax, nkbmax, nalmax, nbemax
122 parameter( ninmax = 7, nidmax = 9, nkbmax = 7,
123 $ nalmax = 7, nbemax = 7 )
125 REAL eps, err, thresh
126 INTEGER i, isnum, j, n, nalf, nbet, nidim, ninc, nkb,
128 LOGICAL fatal, ltestt, rewi, same, sfatal, trace,
132 CHARACTER*32 snaps, summry
134 COMPLEX a( nmax, nmax ), aa( nmax*nmax ),
135 $ alf( nalmax ), as( nmax*nmax ), bet( nbemax ),
136 $ x( nmax ), xs( nmax*incmax ),
137 $ xx( nmax*incmax ), y( nmax ),
138 $ ys( nmax*incmax ), yt( nmax ),
139 $ yy( nmax*incmax ), z( 2*nmax )
141 INTEGER idim( nidmax ), inc( ninmax ), kb( nkbmax )
142 LOGICAL ltest( nsubs )
143 CHARACTER*6 snames( nsubs )
152 INTRINSIC abs, max, min
158 COMMON /infoc/infot, noutc, ok, lerr
159 COMMON /srnamc/srnamt
161 DATA snames/
'CGEMV ',
'CGBMV ',
'CHEMV ',
'CHBMV ',
162 $
'CHPMV ',
'CTRMV ',
'CTBMV ',
'CTPMV ',
163 $
'CTRSV ',
'CTBSV ',
'CTPSV ',
'CGERC ',
164 $
'CGERU ',
'CHER ',
'CHPR ',
'CHER2 ',
170 READ( nin, fmt = * )summry
171 READ( nin, fmt = * )nout
172 OPEN( nout, file = summry, status =
'UNKNOWN' )
177 READ( nin, fmt = * )snaps
178 READ( nin, fmt = * )ntra
181 OPEN( ntra, file = snaps, status =
'UNKNOWN' )
184 READ( nin, fmt = * )rewi
185 rewi = rewi.AND.trace
187 READ( nin, fmt = * )sfatal
189 READ( nin, fmt = * )tsterr
191 READ( nin, fmt = * )thresh
196 READ( nin, fmt = * )nidim
197 IF( nidim.LT.1.OR.nidim.GT.nidmax )
THEN
198 WRITE( nout, fmt = 9997 )
'N', nidmax
201 READ( nin, fmt = * )( idim( i ), i = 1, nidim )
203 IF( idim( i ).LT.0.OR.idim( i ).GT.nmax )
THEN
204 WRITE( nout, fmt = 9996 )nmax
209 READ( nin, fmt = * )nkb
210 IF( nkb.LT.1.OR.nkb.GT.nkbmax )
THEN
211 WRITE( nout, fmt = 9997 )
'K', nkbmax
214 READ( nin, fmt = * )( kb( i ), i = 1, nkb )
216 IF( kb( i ).LT.0 )
THEN
217 WRITE( nout, fmt = 9995 )
222 READ( nin, fmt = * )ninc
223 IF( ninc.LT.1.OR.ninc.GT.ninmax )
THEN
224 WRITE( nout, fmt = 9997 )
'INCX AND INCY', ninmax
227 READ( nin, fmt = * )( inc( i ), i = 1, ninc )
229 IF( inc( i ).EQ.0.OR.abs( inc( i ) ).GT.incmax )
THEN
230 WRITE( nout, fmt = 9994 )incmax
235 READ( nin, fmt = * )nalf
236 IF( nalf.LT.1.OR.nalf.GT.nalmax )
THEN
237 WRITE( nout, fmt = 9997 )
'ALPHA', nalmax
240 READ( nin, fmt = * )( alf( i ), i = 1, nalf )
242 READ( nin, fmt = * )nbet
243 IF( nbet.LT.1.OR.nbet.GT.nbemax )
THEN
244 WRITE( nout, fmt = 9997 )
'BETA', nbemax
247 READ( nin, fmt = * )( bet( i ), i = 1, nbet )
251 WRITE( nout, fmt = 9993 )
252 WRITE( nout, fmt = 9992 )( idim( i ), i = 1, nidim )
253 WRITE( nout, fmt = 9991 )( kb( i ), i = 1, nkb )
254 WRITE( nout, fmt = 9990 )( inc( i ), i = 1, ninc )
255 WRITE( nout, fmt = 9989 )( alf( i ), i = 1, nalf )
256 WRITE( nout, fmt = 9988 )( bet( i ), i = 1, nbet )
257 IF( .NOT.tsterr )
THEN
258 WRITE( nout, fmt = * )
259 WRITE( nout, fmt = 9980 )
261 WRITE( nout, fmt = * )
262 WRITE( nout, fmt = 9999 )thresh
263 WRITE( nout, fmt = * )
271 50
READ( nin, fmt = 9984,
END = 80 )SNAMET, ltestt
273 IF( snamet.EQ.snames( i ) )
276 WRITE( nout, fmt = 9986 )snamet
278 70 ltest( i ) = ltestt
287 WRITE( nout, fmt = 9998 )eps
294 a( i, j ) = max( i - j + 1, 0 )
300 yy( j ) = j*( ( j + 1 )*j )/2 - ( ( j + 1 )*j*( j - 1 ) )/3
305 CALL cmvch( trans, n, n, one, a, nmax, x, 1, zero, y, 1, yt, g,
306 $ yy, eps, err, fatal, nout, .true. )
307 same =
lce( yy, yt, n )
308 IF( .NOT.same.OR.err.NE.rzero )
THEN
309 WRITE( nout, fmt = 9985 )trans, same, err
313 CALL cmvch( trans, n, n, one, a, nmax, x, -1, zero, y, -1, yt, g,
314 $ yy, eps, err, fatal, nout, .true. )
315 same =
lce( yy, yt, n )
316 IF( .NOT.same.OR.err.NE.rzero )
THEN
317 WRITE( nout, fmt = 9985 )trans, same, err
323 DO 210 isnum = 1, nsubs
324 WRITE( nout, fmt = * )
325 IF( .NOT.ltest( isnum ) )
THEN
327 WRITE( nout, fmt = 9983 )snames( isnum )
329 srnamt = snames( isnum )
332 CALL cchke( isnum, snames( isnum ), nout )
333 WRITE( nout, fmt = * )
339 GO TO ( 140, 140, 150, 150, 150, 160, 160,
340 $ 160, 160, 160, 160, 170, 170, 180,
341 $ 180, 190, 190 )isnum
343 140
CALL cchk1( snames( isnum ), eps, thresh, nout, ntra, trace,
344 $ rewi, fatal, nidim, idim, nkb, kb, nalf, alf,
345 $ nbet, bet, ninc, inc, nmax, incmax, a, aa, as,
346 $ x, xx, xs, y, yy, ys, yt, g )
349 150
CALL cchk2( snames( isnum ), eps, thresh, nout, ntra, trace,
350 $ rewi, fatal, nidim, idim, nkb, kb, nalf, alf,
351 $ nbet, bet, ninc, inc, nmax, incmax, a, aa, as,
352 $ x, xx, xs, y, yy, ys, yt, g )
356 160
CALL cchk3( snames( isnum ), eps, thresh, nout, ntra, trace,
357 $ rewi, fatal, nidim, idim, nkb, kb, ninc, inc,
358 $ nmax, incmax, a, aa, as, y, yy, ys, yt, g, z )
361 170
CALL cchk4( snames( isnum ), eps, thresh, nout, ntra, trace,
362 $ rewi, fatal, nidim, idim, nalf, alf, ninc, inc,
363 $ nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys,
367 180
CALL cchk5( snames( isnum ), eps, thresh, nout, ntra, trace,
368 $ rewi, fatal, nidim, idim, nalf, alf, ninc, inc,
369 $ nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys,
373 190
CALL cchk6( snames( isnum ), eps, thresh, nout, ntra, trace,
374 $ rewi, fatal, nidim, idim, nalf, alf, ninc, inc,
375 $ nmax, incmax, a, aa, as, x, xx, xs, y, yy, ys,
378 200
IF( fatal.AND.sfatal )
382 WRITE( nout, fmt = 9982 )
386 WRITE( nout, fmt = 9981 )
390 WRITE( nout, fmt = 9987 )
398 9999
FORMAT(
' ROUTINES PASS COMPUTATIONAL TESTS IF TEST RATIO IS LES',
400 9998
FORMAT(
' RELATIVE MACHINE PRECISION IS TAKEN TO BE', 1p, e9.1 )
401 9997
FORMAT(
' NUMBER OF VALUES OF ', a,
' IS LESS THAN 1 OR GREATER ',
403 9996
FORMAT(
' VALUE OF N IS LESS THAN 0 OR GREATER THAN ', i2 )
404 9995
FORMAT(
' VALUE OF K IS LESS THAN 0' )
405 9994
FORMAT(
' ABSOLUTE VALUE OF INCX OR INCY IS 0 OR GREATER THAN ',
407 9993
FORMAT(
' TESTS OF THE COMPLEX LEVEL 2 BLAS', //
' THE F',
408 $
'OLLOWING PARAMETER VALUES WILL BE USED:' )
409 9992
FORMAT(
' FOR N ', 9i6 )
410 9991
FORMAT(
' FOR K ', 7i6 )
411 9990
FORMAT(
' FOR INCX AND INCY ', 7i6 )
412 9989
FORMAT(
' FOR ALPHA ',
413 $ 7(
'(', f4.1,
',', f4.1,
') ', : ) )
414 9988
FORMAT(
' FOR BETA ',
415 $ 7(
'(', f4.1,
',', f4.1,
') ', : ) )
416 9987
FORMAT(
' AMEND DATA FILE OR INCREASE ARRAY SIZES IN PROGRAM',
417 $ /
' ******* TESTS ABANDONED *******' )
418 9986
FORMAT(
' SUBPROGRAM NAME ', a6,
' NOT RECOGNIZED', /
' ******* T',
419 $
'ESTS ABANDONED *******' )
420 9985
FORMAT(
' ERROR IN CMVCH - IN-LINE DOT PRODUCTS ARE BEING EVALU',
421 $
'ATED WRONGLY.', /
' CMVCH WAS CALLED WITH TRANS = ', a1,
422 $
' AND RETURNED SAME = ', l1,
' AND ERR = ', f12.3,
'.', /
423 $
' THIS MAY BE DUE TO FAULTS IN THE ARITHMETIC OR THE COMPILER.'
424 $ , /
' ******* TESTS ABANDONED *******' )
425 9984
FORMAT( a6, l2 )
426 9983
FORMAT( 1x, a6,
' WAS NOT TESTED' )
427 9982
FORMAT( /
' END OF TESTS' )
428 9981
FORMAT( /
' ******* FATAL ERROR - TESTS ABANDONED *******' )
429 9980
FORMAT(
' ERROR-EXITS WILL NOT BE TESTED' )
434 SUBROUTINE cchk1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
435 $ FATAL, NIDIM, IDIM, NKB, KB, NALF, ALF, NBET,
436 $ BET, NINC, INC, NMAX, INCMAX, A, AA, AS, X, XX,
437 $ XS, Y, YY, YS, YT, G )
449 PARAMETER ( ZERO = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ) )
451 parameter( rzero = 0.0 )
454 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
456 LOGICAL FATAL, REWI, TRACE
459 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
460 $ as( nmax*nmax ), bet( nbet ), x( nmax ),
461 $ xs( nmax*incmax ), xx( nmax*incmax ),
462 $ y( nmax ), ys( nmax*incmax ), yt( nmax ),
465 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
467 COMPLEX ALPHA, ALS, BETA, BLS, TRANSL
469 INTEGER I, IA, IB, IC, IKU, IM, IN, INCX, INCXS, INCY,
470 $ incys, ix, iy, kl, kls, ku, kus, laa, lda,
471 $ ldas, lx, ly, m, ml, ms, n, nargs, nc, nd, nk,
473 LOGICAL BANDED, FULL, NULL, RESET, SAME, TRAN
474 CHARACTER*1 TRANS, TRANSS
484 INTRINSIC abs, max, min
489 COMMON /infoc/infot, noutc, ok, lerr
493 full = sname( 3: 3 ).EQ.
'E'
494 banded = sname( 3: 3 ).EQ.
'B'
498 ELSE IF( banded )
THEN
512 $ m = max( n - nd, 0 )
514 $ m = min( n + nd, nmax )
524 kl = max( ku - 1, 0 )
541 null = n.LE.0.OR.m.LE.0
546 CALL cmake( sname( 2: 3 ),
' ',
' ', m, n, a, nmax, aa,
547 $ lda, kl, ku, reset, transl )
550 trans = ich( ic: ic )
551 tran = trans.EQ.
'T'.OR.trans.EQ.
'C'
568 CALL cmake(
'GE',
' ',
' ', 1, nl, x, 1, xx,
569 $ abs( incx ), 0, nl - 1, reset, transl )
572 xx( 1 + abs( incx )*( nl/2 - 1 ) ) = zero
588 CALL cmake(
'GE',
' ',
' ', 1, ml, y, 1,
589 $ yy, abs( incy ), 0, ml - 1,
621 $
WRITE( ntra, fmt = 9994 )nc, sname,
622 $ trans, m, n, alpha, lda, incx, beta,
626 CALL cgemv( trans, m, n, alpha, aa,
627 $ lda, xx, incx, beta, yy,
629 ELSE IF( banded )
THEN
631 $
WRITE( ntra, fmt = 9995 )nc, sname,
632 $ trans, m, n, kl, ku, alpha, lda,
636 CALL cgbmv( trans, m, n, kl, ku, alpha,
637 $ aa, lda, xx, incx, beta,
644 WRITE( nout, fmt = 9993 )
651 isame( 1 ) = trans.EQ.transs
655 isame( 4 ) = als.EQ.alpha
656 isame( 5 ) = lce( as, aa, laa )
657 isame( 6 ) = ldas.EQ.lda
658 isame( 7 ) = lce( xs, xx, lx )
659 isame( 8 ) = incxs.EQ.incx
660 isame( 9 ) = bls.EQ.beta
662 isame( 10 ) = lce( ys, yy, ly )
664 isame( 10 ) = lceres(
'GE',
' ', 1,
668 isame( 11 ) = incys.EQ.incy
669 ELSE IF( banded )
THEN
670 isame( 4 ) = kls.EQ.kl
671 isame( 5 ) = kus.EQ.ku
672 isame( 6 ) = als.EQ.alpha
673 isame( 7 ) = lce( as, aa, laa )
674 isame( 8 ) = ldas.EQ.lda
675 isame( 9 ) = lce( xs, xx, lx )
676 isame( 10 ) = incxs.EQ.incx
677 isame( 11 ) = bls.EQ.beta
679 isame( 12 ) = lce( ys, yy, ly )
681 isame( 12 ) = lceres(
'GE',
' ', 1,
685 isame( 13 ) = incys.EQ.incy
693 same = same.AND.isame( i )
694 IF( .NOT.isame( i ) )
695 $
WRITE( nout, fmt = 9998 )i
706 CALL cmvch( trans, m, n, alpha, a,
707 $ nmax, x, incx, beta, y,
708 $ incy, yt, g, yy, eps, err,
709 $ fatal, nout, .true. )
710 errmax = max( errmax, err )
739 CALL cregr1( trans, m, n, ly, kl, ku, alpha, aa, lda, xx, incx,
740 $ beta, yy, incy, ys )
743 $
WRITE( ntra, fmt = 9994 )nc, sname, trans, m, n, alpha, lda,
747 CALL cgemv( trans, m, n, alpha, aa, lda, xx, incx, beta, yy,
749 ELSE IF( banded )
THEN
751 $
WRITE( ntra, fmt = 9995 )nc, sname, trans, m, n, kl, ku,
752 $ alpha, lda, incx, beta, incy
755 CALL cgbmv( trans, m, n, kl, ku, alpha, aa, lda, xx, incx,
759 IF( .NOT.lce( ys, yy, ly ) )
THEN
760 WRITE( nout, fmt = 9998 )nargs - 1
767 IF( errmax.LT.thresh )
THEN
768 WRITE( nout, fmt = 9999 )sname, nc
770 WRITE( nout, fmt = 9997 )sname, nc, errmax
775 WRITE( nout, fmt = 9996 )sname
777 WRITE( nout, fmt = 9994 )nc, sname, trans, m, n, alpha, lda,
779 ELSE IF( banded )
THEN
780 WRITE( nout, fmt = 9995 )nc, sname, trans, m, n, kl, ku,
781 $ alpha, lda, incx, beta, incy
787 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
789 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
790 $
'ANGED INCORRECTLY *******' )
791 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
792 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
793 $
' - SUSPECT *******' )
794 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
795 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 4( i3,
',' ),
'(',
796 $ f4.1,
',', f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',',
797 $ f4.1,
'), Y,', i2,
') .' )
798 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ),
'(',
799 $ f4.1,
',', f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',',
800 $ f4.1,
'), Y,', i2,
') .' )
801 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
807 SUBROUTINE cchk2( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
808 $ FATAL, NIDIM, IDIM, NKB, KB, NALF, ALF, NBET,
809 $ BET, NINC, INC, NMAX, INCMAX, A, AA, AS, X, XX,
810 $ XS, Y, YY, YS, YT, G )
822 PARAMETER ( ZERO = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ) )
824 PARAMETER ( RZERO = 0.0 )
827 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
829 LOGICAL FATAL, REWI, TRACE
832 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
833 $ as( nmax*nmax ), bet( nbet ), x( nmax ),
834 $ xs( nmax*incmax ), xx( nmax*incmax ),
835 $ y( nmax ), ys( nmax*incmax ), yt( nmax ),
838 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
840 COMPLEX ALPHA, ALS, BETA, BLS, TRANSL
842 INTEGER I, IA, IB, IC, IK, IN, INCX, INCXS, INCY,
843 $ incys, ix, iy, k, ks, laa, lda, ldas, lx, ly,
844 $ n, nargs, nc, nk, ns
845 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
846 CHARACTER*1 UPLO, UPLOS
861 COMMON /infoc/infot, noutc, ok, lerr
865 full = sname( 3: 3 ).EQ.
'E'
866 banded = sname( 3: 3 ).EQ.
'B'
867 packed = sname( 3: 3 ).EQ.
'P'
871 ELSE IF( banded )
THEN
873 ELSE IF( packed )
THEN
907 laa = ( n*( n + 1 ) )/2
919 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax, aa,
920 $ lda, k, k, reset, transl )
929 CALL cmake(
'GE',
' ',
' ', 1, n, x, 1, xx,
930 $ abs( incx ), 0, n - 1, reset, transl )
933 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
949 CALL cmake(
'GE',
' ',
' ', 1, n, y, 1, yy,
950 $ abs( incy ), 0, n - 1, reset,
980 $
WRITE( ntra, fmt = 9993 )nc, sname,
981 $ uplo, n, alpha, lda, incx, beta, incy
984 CALL chemv( uplo, n, alpha, aa, lda, xx,
985 $ incx, beta, yy, incy )
986 ELSE IF( banded )
THEN
988 $
WRITE( ntra, fmt = 9994 )nc, sname,
989 $ uplo, n, k, alpha, lda, incx, beta,
993 CALL chbmv( uplo, n, k, alpha, aa, lda,
994 $ xx, incx, beta, yy, incy )
995 ELSE IF( packed )
THEN
997 $
WRITE( ntra, fmt = 9995 )nc, sname,
998 $ uplo, n, alpha, incx, beta, incy
1001 CALL chpmv( uplo, n, alpha, aa, xx, incx,
1008 WRITE( nout, fmt = 9992 )
1015 isame( 1 ) = uplo.EQ.uplos
1016 isame( 2 ) = ns.EQ.n
1018 isame( 3 ) = als.EQ.alpha
1019 isame( 4 ) = lce( as, aa, laa )
1020 isame( 5 ) = ldas.EQ.lda
1021 isame( 6 ) = lce( xs, xx, lx )
1022 isame( 7 ) = incxs.EQ.incx
1023 isame( 8 ) = bls.EQ.beta
1025 isame( 9 ) = lce( ys, yy, ly )
1027 isame( 9 ) = lceres(
'GE',
' ', 1, n,
1028 $ ys, yy, abs( incy ) )
1030 isame( 10 ) = incys.EQ.incy
1031 ELSE IF( banded )
THEN
1032 isame( 3 ) = ks.EQ.k
1033 isame( 4 ) = als.EQ.alpha
1034 isame( 5 ) = lce( as, aa, laa )
1035 isame( 6 ) = ldas.EQ.lda
1036 isame( 7 ) = lce( xs, xx, lx )
1037 isame( 8 ) = incxs.EQ.incx
1038 isame( 9 ) = bls.EQ.beta
1040 isame( 10 ) = lce( ys, yy, ly )
1042 isame( 10 ) = lceres(
'GE',
' ', 1, n,
1043 $ ys, yy, abs( incy ) )
1045 isame( 11 ) = incys.EQ.incy
1046 ELSE IF( packed )
THEN
1047 isame( 3 ) = als.EQ.alpha
1048 isame( 4 ) = lce( as, aa, laa )
1049 isame( 5 ) = lce( xs, xx, lx )
1050 isame( 6 ) = incxs.EQ.incx
1051 isame( 7 ) = bls.EQ.beta
1053 isame( 8 ) = lce( ys, yy, ly )
1055 isame( 8 ) = lceres(
'GE',
' ', 1, n,
1056 $ ys, yy, abs( incy ) )
1058 isame( 9 ) = incys.EQ.incy
1066 same = same.AND.isame( i )
1067 IF( .NOT.isame( i ) )
1068 $
WRITE( nout, fmt = 9998 )i
1079 CALL cmvch(
'N', n, n, alpha, a, nmax, x,
1080 $ incx, beta, y, incy, yt, g,
1081 $ yy, eps, err, fatal, nout,
1083 errmax = max( errmax, err )
1109 IF( errmax.LT.thresh )
THEN
1110 WRITE( nout, fmt = 9999 )sname, nc
1112 WRITE( nout, fmt = 9997 )sname, nc, errmax
1117 WRITE( nout, fmt = 9996 )sname
1119 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, lda, incx,
1121 ELSE IF( banded )
THEN
1122 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, k, alpha, lda,
1124 ELSE IF( packed )
THEN
1125 WRITE( nout, fmt = 9995 )nc, sname, uplo, n, alpha, incx,
1132 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1134 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1135 $
'ANGED INCORRECTLY *******' )
1136 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1137 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1138 $
' - SUSPECT *******' )
1139 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1140 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
1141 $ f4.1,
'), AP, X,', i2,
',(', f4.1,
',', f4.1,
'), Y,', i2,
1143 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ),
'(',
1144 $ f4.1,
',', f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',',
1145 $ f4.1,
'), Y,', i2,
') .' )
1146 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
1147 $ f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',', f4.1,
'), ',
1149 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1155 SUBROUTINE cchk3( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1156 $ FATAL, NIDIM, IDIM, NKB, KB, NINC, INC, NMAX,
1157 $ INCMAX, A, AA, AS, X, XX, XS, XT, G, Z )
1168 COMPLEX ZERO, HALF, ONE
1169 PARAMETER ( ZERO = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ),
1170 $ one = ( 1.0, 0.0 ) )
1172 PARAMETER ( RZERO = 0.0 )
1175 INTEGER INCMAX, NIDIM, NINC, NKB, NMAX, NOUT, NTRA
1176 LOGICAL FATAL, REWI, TRACE
1179 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ),
1180 $ as( nmax*nmax ), x( nmax ), xs( nmax*incmax ),
1181 $ xt( nmax ), xx( nmax*incmax ), z( nmax )
1183 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
1187 INTEGER I, ICD, ICT, ICU, IK, IN, INCX, INCXS, IX, K,
1188 $ KS, LAA, LDA, LDAS, LX, N, NARGS, NC, NK, NS
1189 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
1190 CHARACTER*1 DIAG, DIAGS, TRANS, TRANSS, UPLO, UPLOS
1191 CHARACTER*2 ICHD, ICHU
1197 EXTERNAL lce, lceres
1204 INTEGER INFOT, NOUTC
1207 COMMON /infoc/infot, noutc, ok, lerr
1209 DATA ichu/
'UL'/, icht/
'NTC'/, ichd/
'UN'/
1211 full = sname( 3: 3 ).EQ.
'R'
1212 banded = sname( 3: 3 ).EQ.
'B'
1213 packed = sname( 3: 3 ).EQ.
'P'
1217 ELSE IF( banded )
THEN
1219 ELSE IF( packed )
THEN
1231 DO 110 in = 1, nidim
1257 laa = ( n*( n + 1 ) )/2
1264 uplo = ichu( icu: icu )
1267 trans = icht( ict: ict )
1270 diag = ichd( icd: icd )
1275 CALL cmake( sname( 2: 3 ), uplo, diag, n, n, a,
1276 $ nmax, aa, lda, k, k, reset, transl )
1285 CALL cmake(
'GE',
' ',
' ', 1, n, x, 1, xx,
1286 $ abs( incx ), 0, n - 1, reset,
1290 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1313 IF( sname( 4: 5 ).EQ.
'MV' )
THEN
1316 $
WRITE( ntra, fmt = 9993 )nc, sname,
1317 $ uplo, trans, diag, n, lda, incx
1320 CALL ctrmv( uplo, trans, diag, n, aa, lda,
1322 ELSE IF( banded )
THEN
1324 $
WRITE( ntra, fmt = 9994 )nc, sname,
1325 $ uplo, trans, diag, n, k, lda, incx
1328 CALL ctbmv( uplo, trans, diag, n, k, aa,
1330 ELSE IF( packed )
THEN
1332 $
WRITE( ntra, fmt = 9995 )nc, sname,
1333 $ uplo, trans, diag, n, incx
1336 CALL ctpmv( uplo, trans, diag, n, aa, xx,
1339 ELSE IF( sname( 4: 5 ).EQ.
'SV' )
THEN
1342 $
WRITE( ntra, fmt = 9993 )nc, sname,
1343 $ uplo, trans, diag, n, lda, incx
1346 CALL ctrsv( uplo, trans, diag, n, aa, lda,
1348 ELSE IF( banded )
THEN
1350 $
WRITE( ntra, fmt = 9994 )nc, sname,
1351 $ uplo, trans, diag, n, k, lda, incx
1354 CALL ctbsv( uplo, trans, diag, n, k, aa,
1356 ELSE IF( packed )
THEN
1358 $
WRITE( ntra, fmt = 9995 )nc, sname,
1359 $ uplo, trans, diag, n, incx
1362 CALL ctpsv( uplo, trans, diag, n, aa, xx,
1370 WRITE( nout, fmt = 9992 )
1377 isame( 1 ) = uplo.EQ.uplos
1378 isame( 2 ) = trans.EQ.transs
1379 isame( 3 ) = diag.EQ.diags
1380 isame( 4 ) = ns.EQ.n
1382 isame( 5 ) = lce( as, aa, laa )
1383 isame( 6 ) = ldas.EQ.lda
1385 isame( 7 ) = lce( xs, xx, lx )
1387 isame( 7 ) = lceres(
'GE',
' ', 1, n, xs,
1390 isame( 8 ) = incxs.EQ.incx
1391 ELSE IF( banded )
THEN
1392 isame( 5 ) = ks.EQ.k
1393 isame( 6 ) = lce( as, aa, laa )
1394 isame( 7 ) = ldas.EQ.lda
1396 isame( 8 ) = lce( xs, xx, lx )
1398 isame( 8 ) = lceres(
'GE',
' ', 1, n, xs,
1401 isame( 9 ) = incxs.EQ.incx
1402 ELSE IF( packed )
THEN
1403 isame( 5 ) = lce( as, aa, laa )
1405 isame( 6 ) = lce( xs, xx, lx )
1407 isame( 6 ) = lceres(
'GE',
' ', 1, n, xs,
1410 isame( 7 ) = incxs.EQ.incx
1418 same = same.AND.isame( i )
1419 IF( .NOT.isame( i ) )
1420 $
WRITE( nout, fmt = 9998 )i
1428 IF( sname( 4: 5 ).EQ.
'MV' )
THEN
1432 CALL cmvch( trans, n, n, one, a, nmax, x,
1433 $ incx, zero, z, incx, xt, g,
1434 $ xx, eps, err, fatal, nout,
1436 ELSE IF( sname( 4: 5 ).EQ.
'SV' )
THEN
1441 z( i ) = xx( 1 + ( i - 1 )*
1443 xx( 1 + ( i - 1 )*abs( incx ) )
1446 CALL cmvch( trans, n, n, one, a, nmax, z,
1447 $ incx, zero, x, incx, xt, g,
1448 $ xx, eps, err, fatal, nout,
1451 errmax = max( errmax, err )
1474 IF( errmax.LT.thresh )
THEN
1475 WRITE( nout, fmt = 9999 )sname, nc
1477 WRITE( nout, fmt = 9997 )sname, nc, errmax
1482 WRITE( nout, fmt = 9996 )sname
1484 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, diag, n, lda,
1486 ELSE IF( banded )
THEN
1487 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, diag, n, k,
1489 ELSE IF( packed )
THEN
1490 WRITE( nout, fmt = 9995 )nc, sname, uplo, trans, diag, n, incx
1496 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1498 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1499 $
'ANGED INCORRECTLY *******' )
1500 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1501 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1502 $
' - SUSPECT *******' )
1503 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1504 9995
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), i3,
', AP, ',
1506 9994
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), 2( i3,
',' ),
1507 $
' A,', i3,
', X,', i2,
') .' )
1508 9993
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), i3,
', A,',
1509 $ i3,
', X,', i2,
') .' )
1510 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1516 SUBROUTINE cchk4( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1517 $ FATAL, NIDIM, IDIM, NALF, ALF, NINC, INC, NMAX,
1518 $ INCMAX, A, AA, AS, X, XX, XS, Y, YY, YS, YT, G,
1530 COMPLEX ZERO, HALF, ONE
1531 PARAMETER ( ZERO = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ),
1532 $ one = ( 1.0, 0.0 ) )
1534 PARAMETER ( RZERO = 0.0 )
1537 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
1538 LOGICAL FATAL, REWI, TRACE
1541 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1542 $ as( nmax*nmax ), x( nmax ), xs( nmax*incmax ),
1543 $ xx( nmax*incmax ), y( nmax ),
1544 $ ys( nmax*incmax ), yt( nmax ),
1545 $ yy( nmax*incmax ), z( nmax )
1547 INTEGER IDIM( NIDIM ), INC( NINC )
1549 COMPLEX ALPHA, ALS, TRANSL
1551 INTEGER I, IA, IM, IN, INCX, INCXS, INCY, INCYS, IX,
1552 $ iy, j, laa, lda, ldas, lx, ly, m, ms, n, nargs,
1554 LOGICAL CONJ, NULL, RESET, SAME
1560 EXTERNAL lce, lceres
1564 INTRINSIC abs, conjg, max, min
1566 INTEGER INFOT, NOUTC
1569 COMMON /infoc/infot, noutc, ok, lerr
1571 conj = sname( 5: 5 ).EQ.
'C'
1579 DO 120 in = 1, nidim
1585 $ m = max( n - nd, 0 )
1587 $ m = min( n + nd, nmax )
1597 null = n.LE.0.OR.m.LE.0
1606 CALL cmake(
'GE',
' ',
' ', 1, m, x, 1, xx, abs( incx ),
1607 $ 0, m - 1, reset, transl )
1610 xx( 1 + abs( incx )*( m/2 - 1 ) ) = zero
1620 CALL cmake(
'GE',
' ',
' ', 1, n, y, 1, yy,
1621 $ abs( incy ), 0, n - 1, reset, transl )
1624 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
1633 CALL cmake( sname( 2: 3 ),
' ',
' ', m, n, a, nmax,
1634 $ aa, lda, m - 1, n - 1, reset, transl )
1659 $
WRITE( ntra, fmt = 9994 )nc, sname, m, n,
1660 $ alpha, incx, incy, lda
1664 CALL cgerc( m, n, alpha, xx, incx, yy, incy, aa,
1669 CALL cgeru( m, n, alpha, xx, incx, yy, incy, aa,
1676 WRITE( nout, fmt = 9993 )
1683 isame( 1 ) = ms.EQ.m
1684 isame( 2 ) = ns.EQ.n
1685 isame( 3 ) = als.EQ.alpha
1686 isame( 4 ) = lce( xs, xx, lx )
1687 isame( 5 ) = incxs.EQ.incx
1688 isame( 6 ) = lce( ys, yy, ly )
1689 isame( 7 ) = incys.EQ.incy
1691 isame( 8 ) = lce( as, aa, laa )
1693 isame( 8 ) = lceres(
'GE',
' ', m, n, as, aa,
1696 isame( 9 ) = ldas.EQ.lda
1702 same = same.AND.isame( i )
1703 IF( .NOT.isame( i ) )
1704 $
WRITE( nout, fmt = 9998 )i
1721 z( i ) = x( m - i + 1 )
1728 w( 1 ) = y( n - j + 1 )
1731 $ w( 1 ) = conjg( w( 1 ) )
1732 CALL cmvch(
'N', m, 1, alpha, z, nmax, w, 1,
1733 $ one, a( 1, j ), 1, yt, g,
1734 $ aa( 1 + ( j - 1 )*lda ), eps,
1735 $ err, fatal, nout, .true. )
1736 errmax = max( errmax, err )
1758 IF( errmax.LT.thresh )
THEN
1759 WRITE( nout, fmt = 9999 )sname, nc
1761 WRITE( nout, fmt = 9997 )sname, nc, errmax
1766 WRITE( nout, fmt = 9995 )j
1769 WRITE( nout, fmt = 9996 )sname
1770 WRITE( nout, fmt = 9994 )nc, sname, m, n, alpha, incx, incy, lda
1775 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1777 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1778 $
'ANGED INCORRECTLY *******' )
1779 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1780 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1781 $
' - SUSPECT *******' )
1782 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1783 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1784 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2( i3,
',' ),
'(', f4.1,
',', f4.1,
1785 $
'), X,', i2,
', Y,', i2,
', A,', i3,
') ',
1787 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
1793 SUBROUTINE cchk5( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
1794 $ FATAL, NIDIM, IDIM, NALF, ALF, NINC, INC, NMAX,
1795 $ INCMAX, A, AA, AS, X, XX, XS, Y, YY, YS, YT, G,
1807 COMPLEX ZERO, HALF, ONE
1808 PARAMETER ( ZERO = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ),
1809 $ one = ( 1.0, 0.0 ) )
1811 PARAMETER ( RZERO = 0.0 )
1814 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
1815 LOGICAL FATAL, REWI, TRACE
1818 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1819 $ AS( NMAX*NMAX ), X( NMAX ), XS( NMAX*INCMAX ),
1820 $ XX( NMAX*INCMAX ), Y( NMAX ),
1821 $ ys( nmax*incmax ), yt( nmax ),
1822 $ yy( nmax*incmax ), z( nmax )
1824 INTEGER IDIM( NIDIM ), INC( NINC )
1826 COMPLEX ALPHA, TRANSL
1827 REAL ERR, ERRMAX, RALPHA, RALS
1828 INTEGER I, IA, IC, IN, INCX, INCXS, IX, J, JA, JJ, LAA,
1829 $ lda, ldas, lj, lx, n, nargs, nc, ns
1830 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
1831 CHARACTER*1 UPLO, UPLOS
1838 EXTERNAL lce, lceres
1842 INTRINSIC abs, cmplx, conjg, max, real
1844 INTEGER INFOT, NOUTC
1847 COMMON /infoc/infot, noutc, ok, lerr
1851 full = sname( 3: 3 ).EQ.
'E'
1852 packed = sname( 3: 3 ).EQ.
'P'
1856 ELSE IF( packed )
THEN
1864 DO 100 in = 1, nidim
1874 laa = ( n*( n + 1 ) )/2
1880 uplo = ich( ic: ic )
1890 CALL cmake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
1891 $ 0, n - 1, reset, transl )
1894 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1898 ralpha = real( alf( ia ) )
1899 alpha = cmplx( ralpha, rzero )
1900 null = n.LE.0.OR.ralpha.EQ.rzero
1905 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax,
1906 $ aa, lda, n - 1, n - 1, reset, transl )
1928 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
1932 CALL cher( uplo, n, ralpha, xx, incx, aa, lda )
1933 ELSE IF( packed )
THEN
1935 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
1939 CALL chpr( uplo, n, ralpha, xx, incx, aa )
1945 WRITE( nout, fmt = 9992 )
1952 isame( 1 ) = uplo.EQ.uplos
1953 isame( 2 ) = ns.EQ.n
1954 isame( 3 ) = rals.EQ.ralpha
1955 isame( 4 ) = lce( xs, xx, lx )
1956 isame( 5 ) = incxs.EQ.incx
1958 isame( 6 ) = lce( as, aa, laa )
1960 isame( 6 ) = lceres( sname( 2: 3 ), uplo, n, n, as,
1963 IF( .NOT.packed )
THEN
1964 isame( 7 ) = ldas.EQ.lda
1971 same = same.AND.isame( i )
1972 IF( .NOT.isame( i ) )
1973 $
WRITE( nout, fmt = 9998 )i
1990 z( i ) = x( n - i + 1 )
1995 w( 1 ) = conjg( z( j ) )
2003 CALL cmvch(
'N', lj, 1, alpha, z( jj ), lj, w,
2004 $ 1, one, a( jj, j ), 1, yt, g,
2005 $ aa( ja ), eps, err, fatal, nout,
2016 errmax = max( errmax, err )
2037 IF( errmax.LT.thresh )
THEN
2038 WRITE( nout, fmt = 9999 )sname, nc
2040 WRITE( nout, fmt = 9997 )sname, nc, errmax
2045 WRITE( nout, fmt = 9995 )j
2048 WRITE( nout, fmt = 9996 )sname
2050 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, ralpha, incx, lda
2051 ELSE IF( packed )
THEN
2052 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, ralpha, incx
2058 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2060 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2061 $
'ANGED INCORRECTLY *******' )
2062 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2063 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2064 $
' - SUSPECT *******' )
2065 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
2066 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2067 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2069 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2070 $ i2,
', A,', i3,
') .' )
2071 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
2077 SUBROUTINE cchk6( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
2078 $ FATAL, NIDIM, IDIM, NALF, ALF, NINC, INC, NMAX,
2079 $ INCMAX, A, AA, AS, X, XX, XS, Y, YY, YS, YT, G,
2091 COMPLEX ZERO, HALF, ONE
2092 PARAMETER ( ZERO = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ),
2093 $ one = ( 1.0, 0.0 ) )
2095 PARAMETER ( RZERO = 0.0 )
2098 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
2099 LOGICAL FATAL, REWI, TRACE
2102 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
2103 $ AS( NMAX*NMAX ), X( NMAX ), XS( NMAX*INCMAX ),
2104 $ XX( NMAX*INCMAX ), Y( NMAX ),
2105 $ YS( NMAX*INCMAX ), YT( NMAX ),
2106 $ YY( NMAX*INCMAX ), Z( NMAX, 2 )
2108 INTEGER IDIM( NIDIM ), INC( NINC )
2110 COMPLEX ALPHA, ALS, TRANSL
2112 INTEGER I, IA, IC, IN, INCX, INCXS, INCY, INCYS, IX,
2113 $ IY, J, JA, JJ, LAA, LDA, LDAS, LJ, LX, LY, N,
2115 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
2116 CHARACTER*1 UPLO, UPLOS
2123 EXTERNAL LCE, LCERES
2127 INTRINSIC abs, conjg, max
2129 INTEGER INFOT, NOUTC
2132 COMMON /infoc/infot, noutc, ok, lerr
2136 full = sname( 3: 3 ).EQ.
'E'
2137 packed = sname( 3: 3 ).EQ.
'P'
2141 ELSE IF( packed )
THEN
2149 DO 140 in = 1, nidim
2159 laa = ( n*( n + 1 ) )/2
2165 uplo = ich( ic: ic )
2175 CALL cmake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
2176 $ 0, n - 1, reset, transl )
2179 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
2189 CALL cmake(
'GE',
' ',
' ', 1, n, y, 1, yy,
2190 $ abs( incy ), 0, n - 1, reset, transl )
2193 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
2198 null = n.LE.0.OR.alpha.EQ.zero
2203 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, a,
2204 $ nmax, aa, lda, n - 1, n - 1, reset,
2231 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
2232 $ alpha, incx, incy, lda
2235 CALL cher2( uplo, n, alpha, xx, incx, yy, incy,
2237 ELSE IF( packed )
THEN
2239 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
2243 CALL chpr2( uplo, n, alpha, xx, incx, yy, incy,
2250 WRITE( nout, fmt = 9992 )
2257 isame( 1 ) = uplo.EQ.uplos
2258 isame( 2 ) = ns.EQ.n
2259 isame( 3 ) = als.EQ.alpha
2260 isame( 4 ) = lce( xs, xx, lx )
2261 isame( 5 ) = incxs.EQ.incx
2262 isame( 6 ) = lce( ys, yy, ly )
2263 isame( 7 ) = incys.EQ.incy
2265 isame( 8 ) = lce( as, aa, laa )
2267 isame( 8 ) = lceres( sname( 2: 3 ), uplo, n, n,
2270 IF( .NOT.packed )
THEN
2271 isame( 9 ) = ldas.EQ.lda
2278 same = same.AND.isame( i )
2279 IF( .NOT.isame( i ) )
2280 $
WRITE( nout, fmt = 9998 )i
2297 z( i, 1 ) = x( n - i + 1 )
2306 z( i, 2 ) = y( n - i + 1 )
2311 w( 1 ) = alpha*conjg( z( j, 2 ) )
2312 w( 2 ) = conjg( alpha )*conjg( z( j, 1 ) )
2320 CALL cmvch(
'N', lj, 2, one, z( jj, 1 ),
2321 $ nmax, w, 1, one, a( jj, j ), 1,
2322 $ yt, g, aa( ja ), eps, err, fatal,
2333 errmax = max( errmax, err )
2356 IF( errmax.LT.thresh )
THEN
2357 WRITE( nout, fmt = 9999 )sname, nc
2359 WRITE( nout, fmt = 9997 )sname, nc, errmax
2364 WRITE( nout, fmt = 9995 )j
2367 WRITE( nout, fmt = 9996 )sname
2369 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, incx,
2371 ELSE IF( packed )
THEN
2372 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, alpha, incx, incy
2378 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2380 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2381 $
'ANGED INCORRECTLY *******' )
2382 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2383 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2384 $
' - SUSPECT *******' )
2385 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
2386 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2387 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
2388 $ f4.1,
'), X,', i2,
', Y,', i2,
', AP) ',
2390 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
2391 $ f4.1,
'), X,', i2,
', Y,', i2,
', A,', i3,
') ',
2393 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
2415 INTEGER INFOT, NOUTC
2421 COMPLEX A( 1, 1 ), X( 1 ), Y( 1 )
2423 EXTERNAL CGBMV, CGEMV, CGERC, CGERU, CHBMV, CHEMV, CHER,
2424 $ CHER2, CHKXER, CHPMV, CHPR, CHPR2, CTBMV,
2425 $ CTBSV, CTPMV, CTPSV, CTRMV, CTRSV
2427 COMMON /INFOC/INFOT, NOUTC, OK, LERR
2435 GO TO ( 10, 20, 30, 40, 50, 60, 70, 80,
2436 $ 90, 100, 110, 120, 130, 140, 150, 160,
2439 CALL cgemv(
'/', 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2440 CALL chkxer( srnamt, infot, nout, lerr, ok )
2442 CALL cgemv(
'N', -1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2443 CALL chkxer( srnamt, infot, nout, lerr, ok )
2445 CALL cgemv(
'N', 0, -1, alpha, a, 1, x, 1, beta, y, 1 )
2446 CALL chkxer( srnamt, infot, nout, lerr, ok )
2448 CALL cgemv(
'N', 2, 0, alpha, a, 1, x, 1, beta, y, 1 )
2449 CALL chkxer( srnamt, infot, nout, lerr, ok )
2451 CALL cgemv(
'N', 0, 0, alpha, a, 1, x, 0, beta, y, 1 )
2452 CALL chkxer( srnamt, infot, nout, lerr, ok )
2454 CALL cgemv(
'N', 0, 0, alpha, a, 1, x, 1, beta, y, 0 )
2455 CALL chkxer( srnamt, infot, nout, lerr, ok )
2458 CALL cgbmv(
'/', 0, 0, 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2459 CALL chkxer( srnamt, infot, nout, lerr, ok )
2461 CALL cgbmv(
'N', -1, 0, 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2462 CALL chkxer( srnamt, infot, nout, lerr, ok )
2464 CALL cgbmv(
'N', 0, -1, 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2465 CALL chkxer( srnamt, infot, nout, lerr, ok )
2467 CALL cgbmv(
'N', 0, 0, -1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2468 CALL chkxer( srnamt, infot, nout, lerr, ok )
2470 CALL cgbmv(
'N', 2, 0, 0, -1, alpha, a, 1, x, 1, beta, y, 1 )
2471 CALL chkxer( srnamt, infot, nout, lerr, ok )
2473 CALL cgbmv(
'N', 0, 0, 1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2474 CALL chkxer( srnamt, infot, nout, lerr, ok )
2476 CALL cgbmv(
'N', 0, 0, 0, 0, alpha, a, 1, x, 0, beta, y, 1 )
2477 CALL chkxer( srnamt, infot, nout, lerr, ok )
2479 CALL cgbmv(
'N', 0, 0, 0, 0, alpha, a, 1, x, 1, beta, y, 0 )
2480 CALL chkxer( srnamt, infot, nout, lerr, ok )
2483 CALL chemv(
'/', 0, alpha, a, 1, x, 1, beta, y, 1 )
2484 CALL chkxer( srnamt, infot, nout, lerr, ok )
2486 CALL chemv(
'U', -1, alpha, a, 1, x, 1, beta, y, 1 )
2487 CALL chkxer( srnamt, infot, nout, lerr, ok )
2489 CALL chemv(
'U', 2, alpha, a, 1, x, 1, beta, y, 1 )
2490 CALL chkxer( srnamt, infot, nout, lerr, ok )
2492 CALL chemv(
'U', 0, alpha, a, 1, x, 0, beta, y, 1 )
2493 CALL chkxer( srnamt, infot, nout, lerr, ok )
2495 CALL chemv(
'U', 0, alpha, a, 1, x, 1, beta, y, 0 )
2496 CALL chkxer( srnamt, infot, nout, lerr, ok )
2499 CALL chbmv(
'/', 0, 0, alpha, a, 1, x, 1, beta, y, 1 )
2500 CALL chkxer( srnamt, infot, nout, lerr, ok )
2502 CALL chbmv(
'U', -1, 0, alpha, a, 1, x, 1, beta, y, 1 )
2503 CALL chkxer( srnamt, infot, nout, lerr, ok )
2505 CALL chbmv(
'U', 0, -1, alpha, a, 1, x, 1, beta, y, 1 )
2506 CALL chkxer( srnamt, infot, nout, lerr, ok )
2508 CALL chbmv(
'U', 0, 1, alpha, a, 1, x, 1, beta, y, 1 )
2509 CALL chkxer( srnamt, infot, nout, lerr, ok )
2511 CALL chbmv(
'U', 0, 0, alpha, a, 1, x, 0, beta, y, 1 )
2512 CALL chkxer( srnamt, infot, nout, lerr, ok )
2514 CALL chbmv(
'U', 0, 0, alpha, a, 1, x, 1, beta, y, 0 )
2515 CALL chkxer( srnamt, infot, nout, lerr, ok )
2518 CALL chpmv(
'/', 0, alpha, a, x, 1, beta, y, 1 )
2519 CALL chkxer( srnamt, infot, nout, lerr, ok )
2521 CALL chpmv(
'U', -1, alpha, a, x, 1, beta, y, 1 )
2522 CALL chkxer( srnamt, infot, nout, lerr, ok )
2524 CALL chpmv(
'U', 0, alpha, a, x, 0, beta, y, 1 )
2525 CALL chkxer( srnamt, infot, nout, lerr, ok )
2527 CALL chpmv(
'U', 0, alpha, a, x, 1, beta, y, 0 )
2528 CALL chkxer( srnamt, infot, nout, lerr, ok )
2531 CALL ctrmv(
'/',
'N',
'N', 0, a, 1, x, 1 )
2532 CALL chkxer( srnamt, infot, nout, lerr, ok )
2534 CALL ctrmv(
'U',
'/',
'N', 0, a, 1, x, 1 )
2535 CALL chkxer( srnamt, infot, nout, lerr, ok )
2537 CALL ctrmv(
'U',
'N',
'/', 0, a, 1, x, 1 )
2538 CALL chkxer( srnamt, infot, nout, lerr, ok )
2540 CALL ctrmv(
'U',
'N',
'N', -1, a, 1, x, 1 )
2541 CALL chkxer( srnamt, infot, nout, lerr, ok )
2543 CALL ctrmv(
'U',
'N',
'N', 2, a, 1, x, 1 )
2544 CALL chkxer( srnamt, infot, nout, lerr, ok )
2546 CALL ctrmv(
'U',
'N',
'N', 0, a, 1, x, 0 )
2547 CALL chkxer( srnamt, infot, nout, lerr, ok )
2550 CALL ctbmv(
'/',
'N',
'N', 0, 0, a, 1, x, 1 )
2551 CALL chkxer( srnamt, infot, nout, lerr, ok )
2553 CALL ctbmv(
'U',
'/',
'N', 0, 0, a, 1, x, 1 )
2554 CALL chkxer( srnamt, infot, nout, lerr, ok )
2556 CALL ctbmv(
'U',
'N',
'/', 0, 0, a, 1, x, 1 )
2557 CALL chkxer( srnamt, infot, nout, lerr, ok )
2559 CALL ctbmv(
'U',
'N',
'N', -1, 0, a, 1, x, 1 )
2560 CALL chkxer( srnamt, infot, nout, lerr, ok )
2562 CALL ctbmv(
'U',
'N',
'N', 0, -1, a, 1, x, 1 )
2563 CALL chkxer( srnamt, infot, nout, lerr, ok )
2565 CALL ctbmv(
'U',
'N',
'N', 0, 1, a, 1, x, 1 )
2566 CALL chkxer( srnamt, infot, nout, lerr, ok )
2568 CALL ctbmv(
'U',
'N',
'N', 0, 0, a, 1, x, 0 )
2569 CALL chkxer( srnamt, infot, nout, lerr, ok )
2572 CALL ctpmv(
'/',
'N',
'N', 0, a, x, 1 )
2573 CALL chkxer( srnamt, infot, nout, lerr, ok )
2575 CALL ctpmv(
'U',
'/',
'N', 0, a, x, 1 )
2576 CALL chkxer( srnamt, infot, nout, lerr, ok )
2578 CALL ctpmv(
'U',
'N',
'/', 0, a, x, 1 )
2579 CALL chkxer( srnamt, infot, nout, lerr, ok )
2581 CALL ctpmv(
'U',
'N',
'N', -1, a, x, 1 )
2582 CALL chkxer( srnamt, infot, nout, lerr, ok )
2584 CALL ctpmv(
'U',
'N',
'N', 0, a, x, 0 )
2585 CALL chkxer( srnamt, infot, nout, lerr, ok )
2588 CALL ctrsv(
'/',
'N',
'N', 0, a, 1, x, 1 )
2589 CALL chkxer( srnamt, infot, nout, lerr, ok )
2591 CALL ctrsv(
'U',
'/',
'N', 0, a, 1, x, 1 )
2592 CALL chkxer( srnamt, infot, nout, lerr, ok )
2594 CALL ctrsv(
'U',
'N',
'/', 0, a, 1, x, 1 )
2595 CALL chkxer( srnamt, infot, nout, lerr, ok )
2597 CALL ctrsv(
'U',
'N',
'N', -1, a, 1, x, 1 )
2598 CALL chkxer( srnamt, infot, nout, lerr, ok )
2600 CALL ctrsv(
'U',
'N',
'N', 2, a, 1, x, 1 )
2601 CALL chkxer( srnamt, infot, nout, lerr, ok )
2603 CALL ctrsv(
'U',
'N',
'N', 0, a, 1, x, 0 )
2604 CALL chkxer( srnamt, infot, nout, lerr, ok )
2607 CALL ctbsv(
'/',
'N',
'N', 0, 0, a, 1, x, 1 )
2608 CALL chkxer( srnamt, infot, nout, lerr, ok )
2610 CALL ctbsv(
'U',
'/',
'N', 0, 0, a, 1, x, 1 )
2611 CALL chkxer( srnamt, infot, nout, lerr, ok )
2613 CALL ctbsv(
'U',
'N',
'/', 0, 0, a, 1, x, 1 )
2614 CALL chkxer( srnamt, infot, nout, lerr, ok )
2616 CALL ctbsv(
'U',
'N',
'N', -1, 0, a, 1, x, 1 )
2617 CALL chkxer( srnamt, infot, nout, lerr, ok )
2619 CALL ctbsv(
'U',
'N',
'N', 0, -1, a, 1, x, 1 )
2620 CALL chkxer( srnamt, infot, nout, lerr, ok )
2622 CALL ctbsv(
'U',
'N',
'N', 0, 1, a, 1, x, 1 )
2623 CALL chkxer( srnamt, infot, nout, lerr, ok )
2625 CALL ctbsv(
'U',
'N',
'N', 0, 0, a, 1, x, 0 )
2626 CALL chkxer( srnamt, infot, nout, lerr, ok )
2629 CALL ctpsv(
'/',
'N',
'N', 0, a, x, 1 )
2630 CALL chkxer( srnamt, infot, nout, lerr, ok )
2632 CALL ctpsv(
'U',
'/',
'N', 0, a, x, 1 )
2633 CALL chkxer( srnamt, infot, nout, lerr, ok )
2635 CALL ctpsv(
'U',
'N',
'/', 0, a, x, 1 )
2636 CALL chkxer( srnamt, infot, nout, lerr, ok )
2638 CALL ctpsv(
'U',
'N',
'N', -1, a, x, 1 )
2639 CALL chkxer( srnamt, infot, nout, lerr, ok )
2641 CALL ctpsv(
'U',
'N',
'N', 0, a, x, 0 )
2642 CALL chkxer( srnamt, infot, nout, lerr, ok )
2645 CALL cgerc( -1, 0, alpha, x, 1, y, 1, a, 1 )
2646 CALL chkxer( srnamt, infot, nout, lerr, ok )
2648 CALL cgerc( 0, -1, alpha, x, 1, y, 1, a, 1 )
2649 CALL chkxer( srnamt, infot, nout, lerr, ok )
2651 CALL cgerc( 0, 0, alpha, x, 0, y, 1, a, 1 )
2652 CALL chkxer( srnamt, infot, nout, lerr, ok )
2654 CALL cgerc( 0, 0, alpha, x, 1, y, 0, a, 1 )
2655 CALL chkxer( srnamt, infot, nout, lerr, ok )
2657 CALL cgerc( 2, 0, alpha, x, 1, y, 1, a, 1 )
2658 CALL chkxer( srnamt, infot, nout, lerr, ok )
2661 CALL cgeru( -1, 0, alpha, x, 1, y, 1, a, 1 )
2662 CALL chkxer( srnamt, infot, nout, lerr, ok )
2664 CALL cgeru( 0, -1, alpha, x, 1, y, 1, a, 1 )
2665 CALL chkxer( srnamt, infot, nout, lerr, ok )
2667 CALL cgeru( 0, 0, alpha, x, 0, y, 1, a, 1 )
2668 CALL chkxer( srnamt, infot, nout, lerr, ok )
2670 CALL cgeru( 0, 0, alpha, x, 1, y, 0, a, 1 )
2671 CALL chkxer( srnamt, infot, nout, lerr, ok )
2673 CALL cgeru( 2, 0, alpha, x, 1, y, 1, a, 1 )
2674 CALL chkxer( srnamt, infot, nout, lerr, ok )
2677 CALL cher(
'/', 0, ralpha, x, 1, a, 1 )
2678 CALL chkxer( srnamt, infot, nout, lerr, ok )
2680 CALL cher(
'U', -1, ralpha, x, 1, a, 1 )
2681 CALL chkxer( srnamt, infot, nout, lerr, ok )
2683 CALL cher(
'U', 0, ralpha, x, 0, a, 1 )
2684 CALL chkxer( srnamt, infot, nout, lerr, ok )
2686 CALL cher(
'U', 2, ralpha, x, 1, a, 1 )
2687 CALL chkxer( srnamt, infot, nout, lerr, ok )
2690 CALL chpr(
'/', 0, ralpha, x, 1, a )
2691 CALL chkxer( srnamt, infot, nout, lerr, ok )
2693 CALL chpr(
'U', -1, ralpha, x, 1, a )
2694 CALL chkxer( srnamt, infot, nout, lerr, ok )
2696 CALL chpr(
'U', 0, ralpha, x, 0, a )
2697 CALL chkxer( srnamt, infot, nout, lerr, ok )
2700 CALL cher2(
'/', 0, alpha, x, 1, y, 1, a, 1 )
2701 CALL chkxer( srnamt, infot, nout, lerr, ok )
2703 CALL cher2(
'U', -1, alpha, x, 1, y, 1, a, 1 )
2704 CALL chkxer( srnamt, infot, nout, lerr, ok )
2706 CALL cher2(
'U', 0, alpha, x, 0, y, 1, a, 1 )
2707 CALL chkxer( srnamt, infot, nout, lerr, ok )
2709 CALL cher2(
'U', 0, alpha, x, 1, y, 0, a, 1 )
2710 CALL chkxer( srnamt, infot, nout, lerr, ok )
2712 CALL cher2(
'U', 2, alpha, x, 1, y, 1, a, 1 )
2713 CALL chkxer( srnamt, infot, nout, lerr, ok )
2716 CALL chpr2(
'/', 0, alpha, x, 1, y, 1, a )
2717 CALL chkxer( srnamt, infot, nout, lerr, ok )
2719 CALL chpr2(
'U', -1, alpha, x, 1, y, 1, a )
2720 CALL chkxer( srnamt, infot, nout, lerr, ok )
2722 CALL chpr2(
'U', 0, alpha, x, 0, y, 1, a )
2723 CALL chkxer( srnamt, infot, nout, lerr, ok )
2725 CALL chpr2(
'U', 0, alpha, x, 1, y, 0, a )
2726 CALL chkxer( srnamt, infot, nout, lerr, ok )
2729 WRITE( nout, fmt = 9999 )srnamt
2731 WRITE( nout, fmt = 9998 )srnamt
2735 9999
FORMAT(
' ', a6,
' PASSED THE TESTS OF ERROR-EXITS' )
2736 9998
FORMAT(
' ******* ', a6,
' FAILED THE TESTS OF ERROR-EXITS *****',
2742 SUBROUTINE cmake( TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL,
2743 $ KU, RESET, TRANSL )
2760 parameter( zero = ( 0.0, 0.0 ), one = ( 1.0, 0.0 ) )
2762 PARAMETER ( ROGUE = ( -1.0e10, 1.0e10 ) )
2764 PARAMETER ( RZERO = 0.0 )
2766 parameter( rrogue = -1.0e10 )
2769 INTEGER KL, KU, LDA, M, N, NMAX
2771 CHARACTER*1 DIAG, UPLO
2774 COMPLEX A( NMAX, * ), AA( * )
2776 INTEGER I, I1, I2, I3, IBEG, IEND, IOFF, J, JJ, KK
2777 LOGICAL GEN, LOWER, SYM, TRI, UNIT, UPPER
2782 INTRINSIC cmplx, conjg, max, min, real
2784 gen =
TYPE( 1: 1 ).EQ.
'G'
2785 SYM = type( 1: 1 ).EQ.
'H'
2786 tri =
TYPE( 1: 1 ).EQ.
'T'
2787 upper = ( sym.OR.tri ).AND.uplo.EQ.
'U'
2788 lower = ( sym.OR.tri ).AND.uplo.EQ.
'L'
2789 unit = tri.AND.diag.EQ.
'U'
2795 IF( gen.OR.( upper.AND.i.LE.j ).OR.( lower.AND.i.GE.j ) )
2797 IF( ( i.LE.j.AND.j - i.LE.ku ).OR.
2798 $ ( i.GE.j.AND.i - j.LE.kl ) )
THEN
2799 a( i, j ) = cbeg( reset ) + transl
2805 a( j, i ) = conjg( a( i, j ) )
2813 $ a( j, j ) = cmplx( real( a( j, j ) ), rzero )
2815 $ a( j, j ) = a( j, j ) + one
2822 IF( type.EQ.
'GE' )
THEN
2825 aa( i + ( j - 1 )*lda ) = a( i, j )
2827 DO 40 i = m + 1, lda
2828 aa( i + ( j - 1 )*lda ) = rogue
2831 ELSE IF( type.EQ.
'GB' )
THEN
2833 DO 60 i1 = 1, ku + 1 - j
2834 aa( i1 + ( j - 1 )*lda ) = rogue
2836 DO 70 i2 = i1, min( kl + ku + 1, ku + 1 + m - j )
2837 aa( i2 + ( j - 1 )*lda ) = a( i2 + j - ku - 1, j )
2840 aa( i3 + ( j - 1 )*lda ) = rogue
2843 ELSE IF( type.EQ.
'HE'.OR.type.EQ.
'TR' )
THEN
2860 DO 100 i = 1, ibeg - 1
2861 aa( i + ( j - 1 )*lda ) = rogue
2863 DO 110 i = ibeg, iend
2864 aa( i + ( j - 1 )*lda ) = a( i, j )
2866 DO 120 i = iend + 1, lda
2867 aa( i + ( j - 1 )*lda ) = rogue
2870 jj = j + ( j - 1 )*lda
2871 aa( jj ) = cmplx( real( aa( jj ) ), rrogue )
2874 ELSE IF( type.EQ.
'HB'.OR.type.EQ.
'TB' )
THEN
2878 ibeg = max( 1, kl + 2 - j )
2891 iend = min( kl + 1, 1 + m - j )
2893 DO 140 i = 1, ibeg - 1
2894 aa( i + ( j - 1 )*lda ) = rogue
2896 DO 150 i = ibeg, iend
2897 aa( i + ( j - 1 )*lda ) = a( i + j - kk, j )
2899 DO 160 i = iend + 1, lda
2900 aa( i + ( j - 1 )*lda ) = rogue
2903 jj = kk + ( j - 1 )*lda
2904 aa( jj ) = cmplx( real( aa( jj ) ), rrogue )
2907 ELSE IF( type.EQ.
'HP'.OR.type.EQ.
'TP' )
THEN
2917 DO 180 i = ibeg, iend
2919 aa( ioff ) = a( i, j )
2922 $ aa( ioff ) = rogue
2924 $ aa( ioff ) = cmplx( real( aa( ioff ) ), rrogue )
2934 SUBROUTINE cmvch( TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y,
2935 $ INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV )
2947 parameter( zero = ( 0.0, 0.0 ) )
2949 PARAMETER ( RZERO = 0.0, rone = 1.0 )
2953 INTEGER INCX, INCY, M, N, NMAX, NOUT
2957 COMPLEX A( NMAX, * ), X( * ), Y( * ), YT( * ), YY( * )
2962 INTEGER I, INCXL, INCYL, IY, J, JX, KX, KY, ML, NL
2965 INTRINSIC abs, aimag, conjg, max, real, sqrt
2969 abs1( c ) = abs( real( c ) ) + abs( aimag( c ) )
2972 ctran = trans.EQ.
'C'
2973 IF( tran.OR.ctran )
THEN
3005 yt( iy ) = yt( iy ) + a( j, i )*x( jx )
3006 g( iy ) = g( iy ) + abs1( a( j, i ) )*abs1( x( jx ) )
3009 ELSE IF( ctran )
THEN
3011 yt( iy ) = yt( iy ) + conjg( a( j, i ) )*x( jx )
3012 g( iy ) = g( iy ) + abs1( a( j, i ) )*abs1( x( jx ) )
3017 yt( iy ) = yt( iy ) + a( i, j )*x( jx )
3018 g( iy ) = g( iy ) + abs1( a( i, j ) )*abs1( x( jx ) )
3022 yt( iy ) = alpha*yt( iy ) + beta*y( iy )
3023 g( iy ) = abs1( alpha )*g( iy ) + abs1( beta )*abs1( y( iy ) )
3031 erri = abs( yt( i ) - yy( 1 + ( i - 1 )*abs( incy ) ) )/eps
3032 IF( g( i ).NE.rzero )
3033 $ erri = erri/g( i )
3034 err = max( err, erri )
3035 IF( err*sqrt( eps ).GE.rone )
3044 WRITE( nout, fmt = 9999 )
3047 WRITE( nout, fmt = 9998 )i, yt( i ),
3048 $ yy( 1 + ( i - 1 )*abs( incy ) )
3050 WRITE( nout, fmt = 9998 )i,
3051 $ yy( 1 + ( i - 1 )*abs( incy ) ), yt( i )
3058 9999
FORMAT(
' ******* FATAL ERROR - COMPUTED RESULT IS LESS THAN HAL',
3059 $
'F ACCURATE *******', /
' EXPECTED RE',
3060 $
'SULT COMPUTED RESULT' )
3061 9998
FORMAT( 1x, i7, 2(
' (', g15.6,
',', g15.6,
')' ) )
3066 LOGICAL FUNCTION lce( RI, RJ, LR )
3079 COMPLEX ri( * ), rj( * )
3084 IF( ri( i ).NE.rj( i ) )
3096 LOGICAL FUNCTION lceres( TYPE, UPLO, M, N, AA, AS, LDA )
3113 COMPLEX aa( lda, * ), as( lda, * )
3115 INTEGER i, ibeg, iend, j
3119 IF( type.EQ.
'GE' )
THEN
3121 DO 10 i = m + 1, lda
3122 IF( aa( i, j ).NE.as( i, j ) )
3126 ELSE IF( type.EQ.
'HE' )
THEN
3135 DO 30 i = 1, ibeg - 1
3136 IF( aa( i, j ).NE.as( i, j ) )
3139 DO 40 i = iend + 1, lda
3140 IF( aa( i, j ).NE.as( i, j ) )
3169 INTEGER i, ic, j, mi, mj
3171 SAVE i, ic, j, mi, mj
3195 i = i - 1000*( i/1000 )
3196 j = j - 1000*( j/1000 )
3201 cbeg = cmplx( ( i - 500 )/1001.0, ( j - 500 )/1001.0 )
3223 SUBROUTINE chkxer( SRNAMT, INFOT, NOUT, LERR, OK )
3239 WRITE( nout, fmt = 9999 )infot, srnamt
3245 9999
FORMAT(
' ***** ILLEGAL VALUE OF PARAMETER NUMBER ', i2,
' NOT D',
3246 $
'ETECTED BY ', a6,
' *****' )
3251 SUBROUTINE cregr1( TRANS, M, N, LY, KL, KU, ALPHA, A, LDA, X,
3252 $ INCX, BETA, Y, INCY, YS )
3258 INTEGER LY, M, N, KL, KU, LDA, INCX, INCY
3261 COMPLEX A(LDA,*), X(*), Y(*), YS(*)
3265 INTRINSIC cmplx, real
3272 alpha = cmplx( 1.0 )
3275 beta = cmplx( -0.7, -0.8 )
3279 y( i ) = cmplx( 42.0, real( i ) )
3309 COMMON /INFOC/INFOT, NOUT, OK, LERR
3310 COMMON /SRNAMC/SRNAMT
3313 IF( info.NE.infot )
THEN
3314 IF( infot.NE.0 )
THEN
3315 WRITE( nout, fmt = 9999 )info, infot
3317 WRITE( nout, fmt = 9997 )info
3321 IF( srname.NE.srnamt )
THEN
3322 WRITE( nout, fmt = 9998 )srname, srnamt
3327 9999
FORMAT(
' ******* XERBLA WAS CALLED WITH INFO = ', i6,
' INSTEAD',
3328 $
' OF ', i2,
' *******' )
3329 9998
FORMAT(
' ******* XERBLA WAS CALLED WITH SRNAME = ', a6,
' INSTE',
3330 $
'AD OF ', a6,
' *******' )
3331 9997
FORMAT(
' ******* XERBLA WAS CALLED WITH INFO = ', i6,
real function sdiff(sa, sb)
subroutine cmake(type, uplo, diag, m, n, a, nmax, aa, lda, kl, ku, reset, transl)
subroutine cchk5(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 cchk2(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 cchk6(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 cchk1(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 xerbla(srname, info)
logical function lceres(type, uplo, m, n, aa, as, lda)
subroutine cmvch(trans, m, n, alpha, a, nmax, x, incx, beta, y, incy, yt, g, yy, eps, err, fatal, nout, mv)
logical function lce(ri, rj, lr)
subroutine cchke(isnum, srnamt, nout)
subroutine cchk4(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 cchk3(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)
complex function cbeg(reset)
subroutine cregr1(trans, m, n, ly, kl, ku, alpha, a, lda, x, incx, beta, y, incy, ys)
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine cgbmv(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy)
CGBMV
subroutine cgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
CGEMV
subroutine cgerc(m, n, alpha, x, incx, y, incy, a, lda)
CGERC
subroutine cgeru(m, n, alpha, x, incx, y, incy, a, lda)
CGERU
subroutine chbmv(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)
CHBMV
subroutine chemv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
CHEMV
subroutine cher2(uplo, n, alpha, x, incx, y, incy, a, lda)
CHER2
subroutine cher(uplo, n, alpha, x, incx, a, lda)
CHER
subroutine chpmv(uplo, n, alpha, ap, x, incx, beta, y, incy)
CHPMV
subroutine chpr2(uplo, n, alpha, x, incx, y, incy, ap)
CHPR2
subroutine chpr(uplo, n, alpha, x, incx, ap)
CHPR
subroutine ctbmv(uplo, trans, diag, n, k, a, lda, x, incx)
CTBMV
subroutine ctbsv(uplo, trans, diag, n, k, a, lda, x, incx)
CTBSV
subroutine ctpmv(uplo, trans, diag, n, ap, x, incx)
CTPMV
subroutine ctpsv(uplo, trans, diag, n, ap, x, incx)
CTPSV
subroutine ctrmv(uplo, trans, diag, n, a, lda, x, incx)
CTRMV
subroutine ctrsv(uplo, trans, diag, n, a, lda, x, incx)
CTRSV