1571 COMPLEX*16 zero, half, one
1572 parameter ( zero = ( 0.0d0, 0.0d0 ),
1573 $ half = ( 0.5d0, 0.0d0 ),
1574 $ one = ( 1.0d0, 0.0d0 ) )
1575 DOUBLE PRECISION rzero
1576 parameter ( rzero = 0.0d0 )
1578 DOUBLE PRECISION eps, thresh
1579 INTEGER incmax, nalf, nidim, ninc, nmax, nout, ntra,
1581 LOGICAL fatal, rewi, trace
1584 COMPLEX*16 a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
1585 $ as( nmax*nmax ), x( nmax ), xs( nmax*incmax ),
1586 $ xx( nmax*incmax ), y( nmax ),
1587 $ ys( nmax*incmax ), yt( nmax ),
1588 $ yy( nmax*incmax ), z( nmax )
1589 DOUBLE PRECISION g( nmax )
1590 INTEGER idim( nidim ), inc( ninc )
1592 COMPLEX*16 alpha, als, transl
1593 DOUBLE PRECISION err, errmax
1594 INTEGER i, ia, im, in, incx, incxs, incy, incys, ix,
1595 $ iy, j, laa, lda, ldas, lx, ly, m, ms, n, nargs,
1597 LOGICAL conj, null, reset, same
1607 INTRINSIC abs, dconjg, max, min
1609 INTEGER infot, noutc
1612 COMMON /infoc/infot, noutc, ok
1614 conj = sname( 11: 11 ).EQ.
'c'
1622 DO 120 in = 1, nidim
1628 $ m = max( n - nd, 0 )
1630 $ m = min( n + nd, nmax )
1640 null = n.LE.0.OR.m.LE.0
1649 CALL zmake(
'ge',
' ',
' ', 1, m, x, 1, xx, abs( incx ),
1650 $ 0, m - 1, reset, transl )
1653 xx( 1 + abs( incx )*( m/2 - 1 ) ) = zero
1663 CALL zmake(
'ge',
' ',
' ', 1, n, y, 1, yy,
1664 $ abs( incy ), 0, n - 1, reset, transl )
1667 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
1676 CALL zmake(sname( 8: 9 ),
' ',
' ', m, n, a, nmax,
1677 $ aa, lda, m - 1, n - 1, reset, transl )
1702 $
WRITE( ntra, fmt = 9994 )nc, sname, m, n,
1703 $ alpha, incx, incy, lda
1707 CALL czgerc( iorder, m, n, alpha, xx, incx,
1708 $ yy, incy, aa, lda )
1712 CALL czgeru( iorder, m, n, alpha, xx, incx,
1713 $ yy, incy, aa, lda )
1719 WRITE( nout, fmt = 9993 )
1726 isame( 1 ) = ms.EQ.m
1727 isame( 2 ) = ns.EQ.n
1728 isame( 3 ) = als.EQ.alpha
1729 isame( 4 ) =
lze( xs, xx, lx )
1730 isame( 5 ) = incxs.EQ.incx
1731 isame( 6 ) =
lze( ys, yy, ly )
1732 isame( 7 ) = incys.EQ.incy
1734 isame( 8 ) =
lze( as, aa, laa )
1736 isame( 8 ) =
lzeres(
'ge',
' ', m, n, as, aa,
1739 isame( 9 ) = ldas.EQ.lda
1745 same = same.AND.isame( i )
1746 IF( .NOT.isame( i ) )
1747 $
WRITE( nout, fmt = 9998 )i
1764 z( i ) = x( m - i + 1 )
1771 w( 1 ) = y( n - j + 1 )
1774 $ w( 1 ) = dconjg( w( 1 ) )
1775 CALL zmvch(
'N', m, 1, alpha, z, nmax, w, 1,
1776 $ one, a( 1, j ), 1, yt, g,
1777 $ aa( 1 + ( j - 1 )*lda ), eps,
1778 $ err, fatal, nout, .true. )
1779 errmax = max( errmax, err )
1801 IF( errmax.LT.thresh )
THEN
1802 WRITE( nout, fmt = 9999 )sname, nc
1804 WRITE( nout, fmt = 9997 )sname, nc, errmax
1809 WRITE( nout, fmt = 9995 )j
1812 WRITE( nout, fmt = 9996 )sname
1813 WRITE( nout, fmt = 9994 )nc, sname, m, n, alpha, incx, incy, lda
1818 9999
FORMAT(
' ',a12,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1820 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1821 $
'ANGED INCORRECTLY *******' )
1822 9997
FORMAT(
' ',a12,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1823 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1824 $
' - SUSPECT *******' )
1825 9996
FORMAT(
' ******* ',a12,
' FAILED ON CALL NUMBER:' )
1826 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1827 9994
FORMAT(1x, i6,
': ',a12,
'(', 2( i3,
',' ),
'(', f4.1,
',', f4.1,
1828 $
'), X,', i2,
', Y,', i2,
', A,', i3,
') .' )
1829 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
logical function lzeres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine zmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lze(RI, RJ, LR)
subroutine zmvch(TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y, INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV)