1482 REAL ZERO, HALF, ONE
1483 parameter( zero = 0.0, half = 0.5, one = 1.0 )
1486 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
1487 LOGICAL FATAL, REWI, TRACE
1490 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1491 $ AS( NMAX*NMAX ), G( NMAX ), X( NMAX ),
1492 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
1493 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
1494 $ YY( NMAX*INCMAX ), Z( NMAX )
1495 INTEGER IDIM( NIDIM ), INC( NINC )
1497 REAL ALPHA, ALS, ERR, ERRMAX, TRANSL
1498 INTEGER I, IA, IM, IN, INCX, INCXS, INCY, INCYS, IX,
1499 $ IY, J, LAA, LDA, LDAS, LX, LY, M, MS, N, NARGS,
1501 LOGICAL NULL, RESET, SAME
1511 INTRINSIC abs, max, min
1513 INTEGER INFOT, NOUTC
1516 COMMON /infoc/infot, noutc, ok, lerr
1525 DO 120 in = 1, nidim
1531 $ m = max( n - nd, 0 )
1533 $ m = min( n + nd, nmax )
1543 null = n.LE.0.OR.m.LE.0
1552 CALL smake(
'GE',
' ',
' ', 1, m, x, 1, xx, abs( incx ),
1553 $ 0, m - 1, reset, transl )
1556 xx( 1 + abs( incx )*( m/2 - 1 ) ) = zero
1566 CALL smake(
'GE',
' ',
' ', 1, n, y, 1, yy,
1567 $ abs( incy ), 0, n - 1, reset, transl )
1570 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
1579 CALL smake( sname( 2: 3 ),
' ',
' ', m, n, a, nmax,
1580 $ aa, lda, m - 1, n - 1, reset, transl )
1605 $
WRITE( ntra, fmt = 9994 )nc, sname, m, n,
1606 $ alpha, incx, incy, lda
1609 CALL sger( m, n, alpha, xx, incx, yy, incy, aa,
1615 WRITE( nout, fmt = 9993 )
1622 isame( 1 ) = ms.EQ.m
1623 isame( 2 ) = ns.EQ.n
1624 isame( 3 ) = als.EQ.alpha
1625 isame( 4 ) =
lse( xs, xx, lx )
1626 isame( 5 ) = incxs.EQ.incx
1627 isame( 6 ) =
lse( ys, yy, ly )
1628 isame( 7 ) = incys.EQ.incy
1630 isame( 8 ) =
lse( as, aa, laa )
1632 isame( 8 ) =
lseres(
'GE',
' ', m, n, as, aa,
1635 isame( 9 ) = ldas.EQ.lda
1641 same = same.AND.isame( i )
1642 IF( .NOT.isame( i ) )
1643 $
WRITE( nout, fmt = 9998 )i
1660 z( i ) = x( m - i + 1 )
1667 w( 1 ) = y( n - j + 1 )
1669 CALL smvch(
'N', m, 1, alpha, z, nmax, w, 1,
1670 $ one, a( 1, j ), 1, yt, g,
1671 $ aa( 1 + ( j - 1 )*lda ), eps,
1672 $ err, fatal, nout, .true. )
1673 errmax = max( errmax, err )
1695 IF( errmax.LT.thresh )
THEN
1696 WRITE( nout, fmt = 9999 )sname, nc
1698 WRITE( nout, fmt = 9997 )sname, nc, errmax
1703 WRITE( nout, fmt = 9995 )j
1706 WRITE( nout, fmt = 9996 )sname
1707 WRITE( nout, fmt = 9994 )nc, sname, m, n, alpha, incx, incy, lda
1712 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1714 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1715 $
'ANGED INCORRECTLY *******' )
1716 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1717 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1718 $
' - SUSPECT *******' )
1719 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1720 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1721 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2( i3,
',' ), f4.1,
', X,', i2,
1722 $
', Y,', i2,
', A,', i3,
') .' )
1723 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine sger(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
SGER
logical function lse(RI, RJ, LR)
subroutine smvch(TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y, INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV)
logical function lseres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine smake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)