476 COMPLEX*16 ZERO, HALF
477 parameter( zero = ( 0.0d0, 0.0d0 ),
478 $ half = ( 0.5d0, 0.0d0 ) )
479 DOUBLE PRECISION RZERO
480 parameter( rzero = 0.0d0 )
482 DOUBLE PRECISION EPS, THRESH
483 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
485 LOGICAL FATAL, REWI, TRACE
488 COMPLEX*16 A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
489 $ AS( NMAX*NMAX ), BET( NBET ), X( NMAX ),
490 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
491 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
493 DOUBLE PRECISION G( NMAX )
494 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
496 COMPLEX*16 ALPHA, ALS, BETA, BLS, TRANSL
497 DOUBLE PRECISION ERR, ERRMAX
498 INTEGER I, IA, IB, IC, IKU, IM, IN, INCX, INCXS, INCY,
499 $ INCYS, IX, IY, KL, KLS, KU, KUS, LAA, LDA,
500 $ LDAS, LX, LY, M, ML, MS, N, NARGS, NC, ND, NK,
502 LOGICAL BANDED, FULL, NULL, RESET, SAME, TRAN
503 CHARACTER*1 TRANS, TRANSS
514 INTRINSIC abs, max, min
519 COMMON /infoc/infot, noutc, ok
523 full = sname( 9: 9 ).EQ.
'e'
524 banded = sname( 9: 9 ).EQ.
'b'
528 ELSE IF( banded )
THEN
542 $ m = max( n - nd, 0 )
544 $ m = min( n + nd, nmax )
554 kl = max( ku - 1, 0 )
571 null = n.LE.0.OR.m.LE.0
576 CALL zmake( sname( 8: 9 ),
' ',
' ', m, n, a, nmax, aa,
577 $ lda, kl, ku, reset, transl )
580 trans = ich( ic: ic )
581 IF (trans.EQ.
'N')
THEN
582 ctrans =
' CblasNoTrans'
583 ELSE IF (trans.EQ.
'T')
THEN
584 ctrans =
' CblasTrans'
586 ctrans =
'CblasConjTrans'
588 tran = trans.EQ.
'T'.OR.trans.EQ.
'C'
605 CALL zmake(
'ge',
' ',
' ', 1, nl, x, 1, xx,
606 $ abs( incx ), 0, nl - 1, reset, transl )
609 xx( 1 + abs( incx )*( nl/2 - 1 ) ) = zero
625 CALL zmake(
'ge',
' ',
' ', 1, ml, y, 1,
626 $ yy, abs( incy ), 0, ml - 1,
658 $
WRITE( ntra, fmt = 9994 )nc, sname,
659 $ ctrans, m, n, alpha, lda, incx, beta,
663 CALL czgemv( iorder, trans, m, n,
664 $ alpha, aa, lda, xx, incx,
666 ELSE IF( banded )
THEN
668 $
WRITE( ntra, fmt = 9995 )nc, sname,
669 $ ctrans, m, n, kl, ku, alpha, lda,
673 CALL czgbmv( iorder, trans, m, n, kl,
674 $ ku, alpha, aa, lda, xx,
675 $ incx, beta, yy, incy )
681 WRITE( nout, fmt = 9993 )
689 isame( 1 ) = trans.EQ.transs
693 isame( 4 ) = als.EQ.alpha
694 isame( 5 ) =
lze( as, aa, laa )
695 isame( 6 ) = ldas.EQ.lda
696 isame( 7 ) =
lze( xs, xx, lx )
697 isame( 8 ) = incxs.EQ.incx
698 isame( 9 ) = bls.EQ.beta
700 isame( 10 ) =
lze( ys, yy, ly )
702 isame( 10 ) =
lzeres(
'ge',
' ', 1,
706 isame( 11 ) = incys.EQ.incy
707 ELSE IF( banded )
THEN
708 isame( 4 ) = kls.EQ.kl
709 isame( 5 ) = kus.EQ.ku
710 isame( 6 ) = als.EQ.alpha
711 isame( 7 ) =
lze( as, aa, laa )
712 isame( 8 ) = ldas.EQ.lda
713 isame( 9 ) =
lze( xs, xx, lx )
714 isame( 10 ) = incxs.EQ.incx
715 isame( 11 ) = bls.EQ.beta
717 isame( 12 ) =
lze( ys, yy, ly )
719 isame( 12 ) =
lzeres(
'ge',
' ', 1,
723 isame( 13 ) = incys.EQ.incy
731 same = same.AND.isame( i )
732 IF( .NOT.isame( i ) )
733 $
WRITE( nout, fmt = 9998 )i
744 CALL zmvch( trans, m, n, alpha, a,
745 $ nmax, x, incx, beta, y,
746 $ incy, yt, g, yy, eps, err,
747 $ fatal, nout, .true. )
748 errmax = max( errmax, err )
778 IF( errmax.LT.thresh )
THEN
779 WRITE( nout, fmt = 9999 )sname, nc
781 WRITE( nout, fmt = 9997 )sname, nc, errmax
786 WRITE( nout, fmt = 9996 )sname
788 WRITE( nout, fmt = 9994 )nc, sname, ctrans, m, n, alpha, lda,
790 ELSE IF( banded )
THEN
791 WRITE( nout, fmt = 9995 )nc, sname, ctrans, m, n, kl, ku,
792 $ alpha, lda, incx, beta, incy
798 9999
FORMAT(
' ',a12,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
800 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
801 $
'ANGED INCORRECTLY *******' )
802 9997
FORMAT(
' ',a12,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
803 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
804 $
' - SUSPECT *******' )
805 9996
FORMAT(
' ******* ',a12,
' FAILED ON CALL NUMBER:' )
806 9995
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', 4( i3,
',' ),
'(',
807 $ f4.1,
',', f4.1,
'), A,',/ 10x, i3,
', X,', i2,
',(',
808 $ f4.1,
',', f4.1,
'), Y,', i2,
') .' )
809 9994
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', 2( i3,
',' ),
'(',
810 $ f4.1,
',', f4.1,
'), A,',/ 10x, i3,
', X,', i2,
',(',
811 $ f4.1,
',', f4.1,
'), Y,', i2,
') .' )
812 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',