477 parameter( zero = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ) )
479 parameter( rzero = 0.0 )
482 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
484 LOGICAL FATAL, REWI, TRACE
487 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
488 $ AS( NMAX*NMAX ), BET( NBET ), X( NMAX ),
489 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
490 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
493 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
495 COMPLEX ALPHA, ALS, BETA, BLS, TRANSL
497 INTEGER I, IA, IB, IC, IKU, IM, IN, INCX, INCXS, INCY,
498 $ INCYS, IX, IY, KL, KLS, KU, KUS, LAA, LDA,
499 $ LDAS, LX, LY, M, ML, MS, N, NARGS, NC, ND, NK,
501 LOGICAL BANDED, FULL, NULL, RESET, SAME, TRAN
502 CHARACTER*1 TRANS, TRANSS
513 INTRINSIC abs, max, min
518 COMMON /infoc/infot, noutc, ok
522 full = sname( 9: 9 ).EQ.
'e'
523 banded = sname( 9: 9 ).EQ.
'b'
527 ELSE IF( banded )
THEN
541 $ m = max( n - nd, 0 )
543 $ m = min( n + nd, nmax )
553 kl = max( ku - 1, 0 )
570 null = n.LE.0.OR.m.LE.0
575 CALL cmake( sname( 8: 9 ),
' ',
' ', m, n, a, nmax, aa,
576 $ lda, kl, ku, reset, transl )
579 trans = ich( ic: ic )
580 IF (trans.EQ.
'N')
THEN
581 ctrans =
' CblasNoTrans'
582 ELSE IF (trans.EQ.
'T')
THEN
583 ctrans =
' CblasTrans'
585 ctrans =
'CblasConjTrans'
587 tran = trans.EQ.
'T'.OR.trans.EQ.
'C'
604 CALL cmake(
'ge',
' ',
' ', 1, nl, x, 1, xx,
605 $ abs( incx ), 0, nl - 1, reset, transl )
608 xx( 1 + abs( incx )*( nl/2 - 1 ) ) = zero
624 CALL cmake(
'ge',
' ',
' ', 1, ml, y, 1,
625 $ yy, abs( incy ), 0, ml - 1,
657 $
WRITE( ntra, fmt = 9994 )nc, sname,
658 $ ctrans, m, n, alpha, lda, incx, beta,
662 CALL ccgemv( iorder, trans, m, n,
663 $ alpha, aa, lda, xx, incx,
665 ELSE IF( banded )
THEN
667 $
WRITE( ntra, fmt = 9995 )nc, sname,
668 $ ctrans, m, n, kl, ku, alpha, lda,
672 CALL ccgbmv( iorder, trans, m, n, kl,
673 $ ku, alpha, aa, lda, xx,
674 $ incx, beta, yy, incy )
680 WRITE( nout, fmt = 9993 )
688 isame( 1 ) = trans.EQ.transs
692 isame( 4 ) = als.EQ.alpha
693 isame( 5 ) =
lce( as, aa, laa )
694 isame( 6 ) = ldas.EQ.lda
695 isame( 7 ) =
lce( xs, xx, lx )
696 isame( 8 ) = incxs.EQ.incx
697 isame( 9 ) = bls.EQ.beta
699 isame( 10 ) =
lce( ys, yy, ly )
701 isame( 10 ) =
lceres(
'ge',
' ', 1,
705 isame( 11 ) = incys.EQ.incy
706 ELSE IF( banded )
THEN
707 isame( 4 ) = kls.EQ.kl
708 isame( 5 ) = kus.EQ.ku
709 isame( 6 ) = als.EQ.alpha
710 isame( 7 ) =
lce( as, aa, laa )
711 isame( 8 ) = ldas.EQ.lda
712 isame( 9 ) =
lce( xs, xx, lx )
713 isame( 10 ) = incxs.EQ.incx
714 isame( 11 ) = bls.EQ.beta
716 isame( 12 ) =
lce( ys, yy, ly )
718 isame( 12 ) =
lceres(
'ge',
' ', 1,
722 isame( 13 ) = incys.EQ.incy
730 same = same.AND.isame( i )
731 IF( .NOT.isame( i ) )
732 $
WRITE( nout, fmt = 9998 )i
743 CALL cmvch( trans, m, n, alpha, a,
744 $ nmax, x, incx, beta, y,
745 $ incy, yt, g, yy, eps, err,
746 $ fatal, nout, .true. )
747 errmax = max( errmax, err )
777 IF( errmax.LT.thresh )
THEN
778 WRITE( nout, fmt = 9999 )sname, nc
780 WRITE( nout, fmt = 9997 )sname, nc, errmax
785 WRITE( nout, fmt = 9996 )sname
787 WRITE( nout, fmt = 9994 )nc, sname, ctrans, m, n, alpha, lda,
789 ELSE IF( banded )
THEN
790 WRITE( nout, fmt = 9995 )nc, sname, ctrans, m, n, kl, ku,
791 $ alpha, lda, incx, beta, incy
797 9999
FORMAT(
' ',a12,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
799 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
800 $
'ANGED INCORRECTLY *******' )
801 9997
FORMAT(
' ',a12,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
802 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
803 $
' - SUSPECT *******' )
804 9996
FORMAT(
' ******* ',a12,
' FAILED ON CALL NUMBER:' )
805 9995
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', 4( i3,
',' ),
'(',
806 $ f4.1,
',', f4.1,
'), A,',/ 10x, i3,
', X,', i2,
',(',
807 $ f4.1,
',', f4.1,
'), Y,', i2,
') .' )
808 9994
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', 2( i3,
',' ),
'(',
809 $ f4.1,
',', f4.1,
'), A,',/ 10x, i3,
', X,', i2,
',(',
810 $ f4.1,
',', f4.1,
'), Y,', i2,
') .' )
811 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',