452 parameter( zero = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ) )
454 parameter( rzero = 0.0 )
457 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
459 LOGICAL FATAL, REWI, TRACE
462 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
463 $ AS( NMAX*NMAX ), BET( NBET ), X( NMAX ),
464 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
465 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
468 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
470 COMPLEX ALPHA, ALS, BETA, BLS, TRANSL
472 INTEGER I, IA, IB, IC, IKU, IM, IN, INCX, INCXS, INCY,
473 $ INCYS, IX, IY, KL, KLS, KU, KUS, LAA, LDA,
474 $ LDAS, LX, LY, M, ML, MS, N, NARGS, NC, ND, NK,
476 LOGICAL BANDED, FULL, NULL, RESET, SAME, TRAN
477 CHARACTER*1 TRANS, TRANSS
487 INTRINSIC abs, max, min
492 COMMON /infoc/infot, noutc, ok, lerr
496 full = sname( 3: 3 ).EQ.
'E'
497 banded = sname( 3: 3 ).EQ.
'B'
501 ELSE IF( banded )
THEN
515 $ m = max( n - nd, 0 )
517 $ m = min( n + nd, nmax )
527 kl = max( ku - 1, 0 )
544 null = n.LE.0.OR.m.LE.0
549 CALL cmake( sname( 2: 3 ),
' ',
' ', m, n, a, nmax, aa,
550 $ lda, kl, ku, reset, transl )
553 trans = ich( ic: ic )
554 tran = trans.EQ.
'T'.OR.trans.EQ.
'C'
571 CALL cmake(
'GE',
' ',
' ', 1, nl, x, 1, xx,
572 $ abs( incx ), 0, nl - 1, reset, transl )
575 xx( 1 + abs( incx )*( nl/2 - 1 ) ) = zero
591 CALL cmake(
'GE',
' ',
' ', 1, ml, y, 1,
592 $ yy, abs( incy ), 0, ml - 1,
624 $
WRITE( ntra, fmt = 9994 )nc, sname,
625 $ trans, m, n, alpha, lda, incx, beta,
629 CALL cgemv( trans, m, n, alpha, aa,
630 $ lda, xx, incx, beta, yy,
632 ELSE IF( banded )
THEN
634 $
WRITE( ntra, fmt = 9995 )nc, sname,
635 $ trans, m, n, kl, ku, alpha, lda,
639 CALL cgbmv( trans, m, n, kl, ku, alpha,
640 $ aa, lda, xx, incx, beta,
647 WRITE( nout, fmt = 9993 )
654 isame( 1 ) = trans.EQ.transs
658 isame( 4 ) = als.EQ.alpha
659 isame( 5 ) =
lce( as, aa, laa )
660 isame( 6 ) = ldas.EQ.lda
661 isame( 7 ) =
lce( xs, xx, lx )
662 isame( 8 ) = incxs.EQ.incx
663 isame( 9 ) = bls.EQ.beta
665 isame( 10 ) =
lce( ys, yy, ly )
667 isame( 10 ) =
lceres(
'GE',
' ', 1,
671 isame( 11 ) = incys.EQ.incy
672 ELSE IF( banded )
THEN
673 isame( 4 ) = kls.EQ.kl
674 isame( 5 ) = kus.EQ.ku
675 isame( 6 ) = als.EQ.alpha
676 isame( 7 ) =
lce( as, aa, laa )
677 isame( 8 ) = ldas.EQ.lda
678 isame( 9 ) =
lce( xs, xx, lx )
679 isame( 10 ) = incxs.EQ.incx
680 isame( 11 ) = bls.EQ.beta
682 isame( 12 ) =
lce( ys, yy, ly )
684 isame( 12 ) =
lceres(
'GE',
' ', 1,
688 isame( 13 ) = incys.EQ.incy
696 same = same.AND.isame( i )
697 IF( .NOT.isame( i ) )
698 $
WRITE( nout, fmt = 9998 )i
709 CALL cmvch( trans, m, n, alpha, a,
710 $ nmax, x, incx, beta, y,
711 $ incy, yt, g, yy, eps, err,
712 $ fatal, nout, .true. )
713 errmax = max( errmax, err )
742 IF( errmax.LT.thresh )
THEN
743 WRITE( nout, fmt = 9999 )sname, nc
745 WRITE( nout, fmt = 9997 )sname, nc, errmax
750 WRITE( nout, fmt = 9996 )sname
752 WRITE( nout, fmt = 9994 )nc, sname, trans, m, n, alpha, lda,
754 ELSE IF( banded )
THEN
755 WRITE( nout, fmt = 9995 )nc, sname, trans, m, n, kl, ku,
756 $ alpha, lda, incx, beta, incy
762 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
764 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
765 $
'ANGED INCORRECTLY *******' )
766 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
767 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
768 $
' - SUSPECT *******' )
769 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
770 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 4( i3,
',' ),
'(',
771 $ f4.1,
',', f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',',
772 $ f4.1,
'), Y,', i2,
') .' )
773 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ),
'(',
774 $ f4.1,
',', f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',',
775 $ f4.1,
'), Y,', i2,
') .' )
776 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',