1143 COMPLEX ZERO, HALF, ONE
1144 parameter( zero = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ),
1145 $ one = ( 1.0, 0.0 ) )
1147 parameter( rzero = 0.0 )
1150 INTEGER INCMAX, NIDIM, NINC, NKB, NMAX, NOUT, NTRA
1151 LOGICAL FATAL, REWI, TRACE
1154 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ),
1155 $ AS( NMAX*NMAX ), X( NMAX ), XS( NMAX*INCMAX ),
1156 $ XT( NMAX ), XX( NMAX*INCMAX ), Z( NMAX )
1158 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
1162 INTEGER I, ICD, ICT, ICU, IK, IN, INCX, INCXS, IX, K,
1163 $ KS, LAA, LDA, LDAS, LX, N, NARGS, NC, NK, NS
1164 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
1165 CHARACTER*1 DIAG, DIAGS, TRANS, TRANSS, UPLO, UPLOS
1166 CHARACTER*2 ICHD, ICHU
1179 INTEGER INFOT, NOUTC
1182 COMMON /infoc/infot, noutc, ok, lerr
1184 DATA ichu/
'UL'/, icht/
'NTC'/, ichd/
'UN'/
1186 full = sname( 3: 3 ).EQ.
'R'
1187 banded = sname( 3: 3 ).EQ.
'B'
1188 packed = sname( 3: 3 ).EQ.
'P'
1192 ELSE IF( banded )
THEN
1194 ELSE IF( packed )
THEN
1206 DO 110 in = 1, nidim
1232 laa = ( n*( n + 1 ) )/2
1239 uplo = ichu( icu: icu )
1242 trans = icht( ict: ict )
1245 diag = ichd( icd: icd )
1250 CALL cmake( sname( 2: 3 ), uplo, diag, n, n, a,
1251 $ nmax, aa, lda, k, k, reset, transl )
1260 CALL cmake(
'GE',
' ',
' ', 1, n, x, 1, xx,
1261 $ abs( incx ), 0, n - 1, reset,
1265 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1288 IF( sname( 4: 5 ).EQ.
'MV' )
THEN
1291 $
WRITE( ntra, fmt = 9993 )nc, sname,
1292 $ uplo, trans, diag, n, lda, incx
1295 CALL ctrmv( uplo, trans, diag, n, aa, lda,
1297 ELSE IF( banded )
THEN
1299 $
WRITE( ntra, fmt = 9994 )nc, sname,
1300 $ uplo, trans, diag, n, k, lda, incx
1303 CALL ctbmv( uplo, trans, diag, n, k, aa,
1305 ELSE IF( packed )
THEN
1307 $
WRITE( ntra, fmt = 9995 )nc, sname,
1308 $ uplo, trans, diag, n, incx
1311 CALL ctpmv( uplo, trans, diag, n, aa, xx,
1314 ELSE IF( sname( 4: 5 ).EQ.
'SV' )
THEN
1317 $
WRITE( ntra, fmt = 9993 )nc, sname,
1318 $ uplo, trans, diag, n, lda, incx
1321 CALL ctrsv( uplo, trans, diag, n, aa, lda,
1323 ELSE IF( banded )
THEN
1325 $
WRITE( ntra, fmt = 9994 )nc, sname,
1326 $ uplo, trans, diag, n, k, lda, incx
1329 CALL ctbsv( uplo, trans, diag, n, k, aa,
1331 ELSE IF( packed )
THEN
1333 $
WRITE( ntra, fmt = 9995 )nc, sname,
1334 $ uplo, trans, diag, n, incx
1337 CALL ctpsv( uplo, trans, diag, n, aa, xx,
1345 WRITE( nout, fmt = 9992 )
1352 isame( 1 ) = uplo.EQ.uplos
1353 isame( 2 ) = trans.EQ.transs
1354 isame( 3 ) = diag.EQ.diags
1355 isame( 4 ) = ns.EQ.n
1357 isame( 5 ) =
lce( as, aa, laa )
1358 isame( 6 ) = ldas.EQ.lda
1360 isame( 7 ) =
lce( xs, xx, lx )
1362 isame( 7 ) =
lceres(
'GE',
' ', 1, n, xs,
1365 isame( 8 ) = incxs.EQ.incx
1366 ELSE IF( banded )
THEN
1367 isame( 5 ) = ks.EQ.k
1368 isame( 6 ) =
lce( as, aa, laa )
1369 isame( 7 ) = ldas.EQ.lda
1371 isame( 8 ) =
lce( xs, xx, lx )
1373 isame( 8 ) =
lceres(
'GE',
' ', 1, n, xs,
1376 isame( 9 ) = incxs.EQ.incx
1377 ELSE IF( packed )
THEN
1378 isame( 5 ) =
lce( as, aa, laa )
1380 isame( 6 ) =
lce( xs, xx, lx )
1382 isame( 6 ) =
lceres(
'GE',
' ', 1, n, xs,
1385 isame( 7 ) = incxs.EQ.incx
1393 same = same.AND.isame( i )
1394 IF( .NOT.isame( i ) )
1395 $
WRITE( nout, fmt = 9998 )i
1403 IF( sname( 4: 5 ).EQ.
'MV' )
THEN
1407 CALL cmvch( trans, n, n, one, a, nmax, x,
1408 $ incx, zero, z, incx, xt, g,
1409 $ xx, eps, err, fatal, nout,
1411 ELSE IF( sname( 4: 5 ).EQ.
'SV' )
THEN
1416 z( i ) = xx( 1 + ( i - 1 )*
1418 xx( 1 + ( i - 1 )*abs( incx ) )
1421 CALL cmvch( trans, n, n, one, a, nmax, z,
1422 $ incx, zero, x, incx, xt, g,
1423 $ xx, eps, err, fatal, nout,
1426 errmax = max( errmax, err )
1449 IF( errmax.LT.thresh )
THEN
1450 WRITE( nout, fmt = 9999 )sname, nc
1452 WRITE( nout, fmt = 9997 )sname, nc, errmax
1457 WRITE( nout, fmt = 9996 )sname
1459 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, diag, n, lda,
1461 ELSE IF( banded )
THEN
1462 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, diag, n, k,
1464 ELSE IF( packed )
THEN
1465 WRITE( nout, fmt = 9995 )nc, sname, uplo, trans, diag, n, incx
1471 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1473 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1474 $
'ANGED INCORRECTLY *******' )
1475 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1476 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1477 $
' - SUSPECT *******' )
1478 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1479 9995
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), i3,
', AP, ',
1481 9994
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), 2( i3,
',' ),
1482 $
' A,', i3,
', X,', i2,
') .' )
1483 9993
FORMAT( 1x, i6,
': ', a6,
'(', 3(
'''', a1,
''',' ), i3,
', A,',
1484 $ i3,
', X,', i2,
') .' )
1485 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',