Fix implicit conversions and unused variables (Reference-LAPACK PR 703)

This commit is contained in:
Martin Kroeker 2022-11-13 20:37:18 +01:00 committed by GitHub
parent c99d27ae45
commit fdb012ceed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 131 additions and 61 deletions

View File

@ -319,15 +319,15 @@
* elements. * elements.
* *
IF( IZERO.EQ.1 ) THEN IF( IZERO.EQ.1 ) THEN
D( 1 ) = Z( 2 ) D( 1 ) = REAL( Z( 2 ) )
IF( N.GT.1 ) IF( N.GT.1 )
$ E( 1 ) = Z( 3 ) $ E( 1 ) = Z( 3 )
ELSE IF( IZERO.EQ.N ) THEN ELSE IF( IZERO.EQ.N ) THEN
E( N-1 ) = Z( 1 ) E( N-1 ) = Z( 1 )
D( N ) = Z( 2 ) D( N ) = REAL( Z( 2 ) )
ELSE ELSE
E( IZERO-1 ) = Z( 1 ) E( IZERO-1 ) = Z( 1 )
D( IZERO ) = Z( 2 ) D( IZERO ) = REAL( Z( 2 ) )
E( IZERO ) = Z( 3 ) E( IZERO ) = Z( 3 )
END IF END IF
END IF END IF

View File

@ -31,7 +31,7 @@
*> *>
*> \verbatim *> \verbatim
*> *>
*> CCHKTR tests CTRTRI, -TRS, -RFS, and -CON, and CLATRS *> CCHKTR tests CTRTRI, -TRS, -RFS, and -CON, and CLATRS(3)
*> \endverbatim *> \endverbatim
* *
* Arguments: * Arguments:
@ -184,7 +184,7 @@
INTEGER NTYPE1, NTYPES INTEGER NTYPE1, NTYPES
PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) PARAMETER ( NTYPE1 = 10, NTYPES = 18 )
INTEGER NTESTS INTEGER NTESTS
PARAMETER ( NTESTS = 9 ) PARAMETER ( NTESTS = 10 )
INTEGER NTRAN INTEGER NTRAN
PARAMETER ( NTRAN = 3 ) PARAMETER ( NTRAN = 3 )
REAL ONE, ZERO REAL ONE, ZERO
@ -195,13 +195,13 @@
CHARACTER*3 PATH CHARACTER*3 PATH
INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN,
$ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN
REAL AINVNM, ANORM, DUMMY, RCOND, RCONDC, RCONDI, REAL AINVNM, ANORM, BIGNUM, DUMMY, RCOND, RCONDC,
$ RCONDO, SCALE $ RCONDI, RCONDO, RES, SCALE, SLAMCH
* .. * ..
* .. Local Arrays .. * .. Local Arrays ..
CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) CHARACTER TRANSS( NTRAN ), UPLOS( 2 )
INTEGER ISEED( 4 ), ISEEDY( 4 ) INTEGER ISEED( 4 ), ISEEDY( 4 )
REAL RESULT( NTESTS ) REAL RESULT( NTESTS ), SCALE3( 2 )
* .. * ..
* .. External Functions .. * .. External Functions ..
LOGICAL LSAME LOGICAL LSAME
@ -210,9 +210,9 @@
* .. * ..
* .. External Subroutines .. * .. External Subroutines ..
EXTERNAL ALAERH, ALAHD, ALASUM, CCOPY, CERRTR, CGET04, EXTERNAL ALAERH, ALAHD, ALASUM, CCOPY, CERRTR, CGET04,
$ CLACPY, CLARHS, CLATRS, CLATTR, CTRCON, CTRRFS, $ CLACPY, CLARHS, CLATRS, CLATRS3, CLATTR,
$ CTRT01, CTRT02, CTRT03, CTRT05, CTRT06, CTRTRI, $ CSSCAL, CTRCON, CTRRFS, CTRT01, CTRT02, CTRT03,
$ CTRTRS, XLAENV $ CTRT05, CTRT06, CTRTRI, CTRTRS, XLAENV, SLAMCH
* .. * ..
* .. Scalars in Common .. * .. Scalars in Common ..
LOGICAL LERR, OK LOGICAL LERR, OK
@ -236,6 +236,7 @@
* *
PATH( 1: 1 ) = 'Complex precision' PATH( 1: 1 ) = 'Complex precision'
PATH( 2: 3 ) = 'TR' PATH( 2: 3 ) = 'TR'
BIGNUM = SLAMCH('Overflow') / SLAMCH('Precision')
NRUN = 0 NRUN = 0
NFAIL = 0 NFAIL = 0
NERRS = 0 NERRS = 0
@ -380,7 +381,7 @@
* This line is needed on a Sun SPARCstation. * This line is needed on a Sun SPARCstation.
* *
IF( N.GT.0 ) IF( N.GT.0 )
$ DUMMY = A( 1 ) $ DUMMY = REAL( A( 1 ) )
* *
CALL CTRT02( UPLO, TRANS, DIAG, N, NRHS, A, LDA, CALL CTRT02( UPLO, TRANS, DIAG, N, NRHS, A, LDA,
$ X, LDA, B, LDA, WORK, RWORK, $ X, LDA, B, LDA, WORK, RWORK,
@ -535,6 +536,32 @@
$ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK,
$ RESULT( 9 ) ) $ RESULT( 9 ) )
* *
*+ TEST 10
* Solve op(A)*X = B.
*
SRNAMT = 'CLATRS3'
CALL CCOPY( N, X, 1, B, 1 )
CALL CCOPY( N, X, 1, B, 1 )
CALL CSCAL( N, BIGNUM, B( N+1 ), 1 )
CALL CLATRS3( UPLO, TRANS, DIAG, 'N', N, 2, A, LDA,
$ B, MAX(1, N), SCALE3, RWORK, WORK, NMAX,
$ INFO )
*
* Check error code from CLATRS3.
*
IF( INFO.NE.0 )
$ CALL ALAERH( PATH, 'CLATRS3', INFO, 0,
$ UPLO // TRANS // DIAG // 'Y', N, N,
$ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT )
CALL CTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA,
$ SCALE3( 1 ), RWORK, ONE, B( 1 ), LDA,
$ X, LDA, WORK, RESULT( 10 ) )
CALL CSSCAL( N, BIGNUM, X, 1 )
CALL CTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA,
$ SCALE3( 2 ), RWORK, ONE, B( N+1 ), LDA,
$ X, LDA, WORK, RESULT( 10 ) )
RESULT( 10 ) = MAX( RESULT( 10 ), RES )
*
* Print information about the tests that did not pass * Print information about the tests that did not pass
* the threshold. * the threshold.
* *
@ -552,7 +579,14 @@
$ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 )
NFAIL = NFAIL + 1 NFAIL = NFAIL + 1
END IF END IF
NRUN = NRUN + 2 IF( RESULT( 10 ).GE.THRESH ) THEN
IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 )
$ CALL ALAHD( NOUT, PATH )
WRITE( NOUT, FMT = 9996 )'CLATRS3', UPLO, TRANS,
$ DIAG, 'N', N, IMAT, 10, RESULT( 10 )
NFAIL = NFAIL + 1
END IF
NRUN = NRUN + 3
90 CONTINUE 90 CONTINUE
100 CONTINUE 100 CONTINUE
110 CONTINUE 110 CONTINUE

View File

@ -307,16 +307,16 @@
IZERO = 0 IZERO = 0
ELSE IF( IMAT.EQ.8 ) THEN ELSE IF( IMAT.EQ.8 ) THEN
IZERO = 1 IZERO = 1
Z( 2 ) = A( N ) Z( 2 ) = REAL( A( N ) )
A( N ) = ZERO A( N ) = ZERO
IF( N.GT.1 ) THEN IF( N.GT.1 ) THEN
Z( 3 ) = A( 1 ) Z( 3 ) = REAL( A( 1 ) )
A( 1 ) = ZERO A( 1 ) = ZERO
END IF END IF
ELSE IF( IMAT.EQ.9 ) THEN ELSE IF( IMAT.EQ.9 ) THEN
IZERO = N IZERO = N
Z( 1 ) = A( 3*N-2 ) Z( 1 ) = REAL( A( 3*N-2 ) )
Z( 2 ) = A( 2*N-1 ) Z( 2 ) = REAL( A( 2*N-1 ) )
A( 3*N-2 ) = ZERO A( 3*N-2 ) = ZERO
A( 2*N-1 ) = ZERO A( 2*N-1 ) = ZERO
ELSE ELSE

View File

@ -336,7 +336,7 @@
WORK( J+1 ) = PLUS2 WORK( J+1 ) = PLUS2
WORK( N+J+1 ) = ZERO WORK( N+J+1 ) = ZERO
PLUS1 = STAR1 / PLUS2 PLUS1 = STAR1 / PLUS2
REXP = CLARND( 2, ISEED ) REXP = REAL( CLARND( 2, ISEED ) )
IF( REXP.LT.ZERO ) THEN IF( REXP.LT.ZERO ) THEN
STAR1 = -SFAC**( ONE-REXP )*CLARND( 5, ISEED ) STAR1 = -SFAC**( ONE-REXP )*CLARND( 5, ISEED )
ELSE ELSE
@ -790,7 +790,7 @@
DO 460 J = 1, N / 2 DO 460 J = 1, N / 2
JL = JJ JL = JJ
DO 450 I = J, N - J DO 450 I = J, N - J
T = AP( JR-I+J ) T = REAL( AP( JR-I+J ) )
AP( JR-I+J ) = AP( JL ) AP( JR-I+J ) = AP( JL )
AP( JL ) = T AP( JL ) = T
JL = JL + I JL = JL + I
@ -804,7 +804,7 @@
DO 480 J = 1, N / 2 DO 480 J = 1, N / 2
JR = JJ JR = JJ
DO 470 I = J, N - J DO 470 I = J, N - J
T = AP( JL+I-J ) T = REAL( AP( JL+I-J ) )
AP( JL+I-J ) = AP( JR ) AP( JL+I-J ) = AP( JR )
AP( JR ) = T AP( JR ) = T
JR = JR - I JR = JR - I

View File

@ -201,7 +201,8 @@
* *
* Compute the (K,K) element of the result. * Compute the (K,K) element of the result.
* *
AKK = CDOTC( KLEN+1, AFAC( KC, K ), 1, AFAC( KC, K ), 1 ) AKK = REAL(
$ CDOTC( KLEN+1, AFAC( KC, K ), 1, AFAC( KC, K ), 1 ) )
AFAC( KD+1, K ) = AKK AFAC( KD+1, K ) = AKK
* *
* Compute the rest of column K. * Compute the rest of column K.
@ -228,7 +229,7 @@
* *
* Scale column K by the diagonal element. * Scale column K by the diagonal element.
* *
AKK = AFAC( 1, K ) AKK = REAL( AFAC( 1, K ) )
CALL CSSCAL( KLEN+1, AKK, AFAC( 1, K ), 1 ) CALL CSSCAL( KLEN+1, AKK, AFAC( 1, K ), 1 )
* *
40 CONTINUE 40 CONTINUE

View File

@ -176,7 +176,7 @@
* *
* Compute the (K,K) element of the result. * Compute the (K,K) element of the result.
* *
TR = CDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) TR = REAL( CDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) )
AFAC( K, K ) = TR AFAC( K, K ) = TR
* *
* Compute the rest of column K. * Compute the rest of column K.
@ -224,7 +224,7 @@
70 CONTINUE 70 CONTINUE
END IF END IF
* *
* Compute norm( L*U - A ) / ( N * norm(A) * EPS ) * Compute norm(L*U - A) / ( N * norm(A) * EPS )
* *
RESID = CLANHE( '1', UPLO, N, AFAC, LDAFAC, RWORK ) RESID = CLANHE( '1', UPLO, N, AFAC, LDAFAC, RWORK )
* *

View File

@ -178,7 +178,7 @@
* *
* Compute the (K,K) element of the result. * Compute the (K,K) element of the result.
* *
TR = CDOTC( K, AFAC( KC ), 1, AFAC( KC ), 1 ) TR = REAL( CDOTC( K, AFAC( KC ), 1, AFAC( KC ), 1 ) )
AFAC( KC+K-1 ) = TR AFAC( KC+K-1 ) = TR
* *
* Compute the rest of column K. * Compute the rest of column K.

View File

@ -219,7 +219,7 @@
* *
* Compute the (K,K) element of the result. * Compute the (K,K) element of the result.
* *
TR = CDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) TR = REAL( CDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) )
AFAC( K, K ) = TR AFAC( K, K ) = TR
* *
* Compute the rest of column K. * Compute the rest of column K.

View File

@ -319,15 +319,15 @@
* elements. * elements.
* *
IF( IZERO.EQ.1 ) THEN IF( IZERO.EQ.1 ) THEN
D( 1 ) = Z( 2 ) D( 1 ) = DBLE( Z( 2 ) )
IF( N.GT.1 ) IF( N.GT.1 )
$ E( 1 ) = Z( 3 ) $ E( 1 ) = Z( 3 )
ELSE IF( IZERO.EQ.N ) THEN ELSE IF( IZERO.EQ.N ) THEN
E( N-1 ) = Z( 1 ) E( N-1 ) = Z( 1 )
D( N ) = Z( 2 ) D( N ) = DBLE( Z( 2 ) )
ELSE ELSE
E( IZERO-1 ) = Z( 1 ) E( IZERO-1 ) = Z( 1 )
D( IZERO ) = Z( 2 ) D( IZERO ) = DBLE( Z( 2 ) )
E( IZERO ) = Z( 3 ) E( IZERO ) = Z( 3 )
END IF END IF
END IF END IF

View File

@ -31,7 +31,7 @@
*> *>
*> \verbatim *> \verbatim
*> *>
*> ZCHKTR tests ZTRTRI, -TRS, -RFS, and -CON, and ZLATRS *> ZCHKTR tests ZTRTRI, -TRS, -RFS, and -CON, and ZLATRS(3)
*> \endverbatim *> \endverbatim
* *
* Arguments: * Arguments:
@ -184,7 +184,7 @@
INTEGER NTYPE1, NTYPES INTEGER NTYPE1, NTYPES
PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) PARAMETER ( NTYPE1 = 10, NTYPES = 18 )
INTEGER NTESTS INTEGER NTESTS
PARAMETER ( NTESTS = 9 ) PARAMETER ( NTESTS = 10 )
INTEGER NTRAN INTEGER NTRAN
PARAMETER ( NTRAN = 3 ) PARAMETER ( NTRAN = 3 )
DOUBLE PRECISION ONE, ZERO DOUBLE PRECISION ONE, ZERO
@ -195,13 +195,13 @@
CHARACTER*3 PATH CHARACTER*3 PATH
INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN,
$ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN
DOUBLE PRECISION AINVNM, ANORM, DUMMY, RCOND, RCONDC, RCONDI, DOUBLE PRECISION AINVNM, ANORM, BIGNUM, DUMMY, RCOND, RCONDC,
$ RCONDO, SCALE $ RCONDI, RCONDO, RES, SCALE, DLAMCH
* .. * ..
* .. Local Arrays .. * .. Local Arrays ..
CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) CHARACTER TRANSS( NTRAN ), UPLOS( 2 )
INTEGER ISEED( 4 ), ISEEDY( 4 ) INTEGER ISEED( 4 ), ISEEDY( 4 )
DOUBLE PRECISION RESULT( NTESTS ) DOUBLE PRECISION RESULT( NTESTS ), SCALE3( 2 )
* .. * ..
* .. External Functions .. * .. External Functions ..
LOGICAL LSAME LOGICAL LSAME
@ -209,10 +209,10 @@
EXTERNAL LSAME, ZLANTR EXTERNAL LSAME, ZLANTR
* .. * ..
* .. External Subroutines .. * .. External Subroutines ..
EXTERNAL ALAERH, ALAHD, ALASUM, XLAENV, ZCOPY, ZERRTR, EXTERNAL ALAERH, ALAHD, ALASUM, DLAMCH, XLAENV, ZCOPY,
$ ZGET04, ZLACPY, ZLARHS, ZLATRS, ZLATTR, ZTRCON, $ ZDSCAL, ZERRTR, ZGET04, ZLACPY, ZLARHS, ZLATRS,
$ ZTRRFS, ZTRT01, ZTRT02, ZTRT03, ZTRT05, ZTRT06, $ ZLATRS3, ZLATTR, ZTRCON, ZTRRFS, ZTRT01,
$ ZTRTRI, ZTRTRS $ ZTRT02, ZTRT03, ZTRT05, ZTRT06, ZTRTRI, ZTRTRS
* .. * ..
* .. Scalars in Common .. * .. Scalars in Common ..
LOGICAL LERR, OK LOGICAL LERR, OK
@ -236,6 +236,7 @@
* *
PATH( 1: 1 ) = 'Zomplex precision' PATH( 1: 1 ) = 'Zomplex precision'
PATH( 2: 3 ) = 'TR' PATH( 2: 3 ) = 'TR'
BIGNUM = DLAMCH('Overflow') / DLAMCH('Precision')
NRUN = 0 NRUN = 0
NFAIL = 0 NFAIL = 0
NERRS = 0 NERRS = 0
@ -380,7 +381,7 @@
* This line is needed on a Sun SPARCstation. * This line is needed on a Sun SPARCstation.
* *
IF( N.GT.0 ) IF( N.GT.0 )
$ DUMMY = A( 1 ) $ DUMMY = DBLE( A( 1 ) )
* *
CALL ZTRT02( UPLO, TRANS, DIAG, N, NRHS, A, LDA, CALL ZTRT02( UPLO, TRANS, DIAG, N, NRHS, A, LDA,
$ X, LDA, B, LDA, WORK, RWORK, $ X, LDA, B, LDA, WORK, RWORK,
@ -535,6 +536,32 @@
$ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK,
$ RESULT( 9 ) ) $ RESULT( 9 ) )
* *
*+ TEST 10
* Solve op(A)*X = B
*
SRNAMT = 'ZLATRS3'
CALL ZCOPY( N, X, 1, B, 1 )
CALL ZCOPY( N, X, 1, B( N+1 ), 1 )
CALL ZDSCAL( N, BIGNUM, B( N+1 ), 1 )
CALL ZLATRS3( UPLO, TRANS, DIAG, 'N', N, 2, A, LDA,
$ B, MAX(1, N), SCALE3, RWORK, WORK, NMAX,
$ INFO )
*
* Check error code from ZLATRS3.
*
IF( INFO.NE.0 )
$ CALL ALAERH( PATH, 'ZLATRS3', INFO, 0,
$ UPLO // TRANS // DIAG // 'N', N, N,
$ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT )
CALL ZTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA,
$ SCALE3( 1 ), RWORK, ONE, B( 1 ), LDA,
$ X, LDA, WORK, RESULT( 10 ) )
CALL ZDSCAL( N, BIGNUM, X, 1 )
CALL ZTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA,
$ SCALE3( 2 ), RWORK, ONE, B( N+1 ), LDA,
$ X, LDA, WORK, RES )
RESULT( 10 ) = MAX( RESULT( 10 ), RES )
*
* Print information about the tests that did not pass * Print information about the tests that did not pass
* the threshold. * the threshold.
* *
@ -552,7 +579,14 @@
$ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 )
NFAIL = NFAIL + 1 NFAIL = NFAIL + 1
END IF END IF
NRUN = NRUN + 2 IF( RESULT( 10 ).GE.THRESH ) THEN
IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 )
$ CALL ALAHD( NOUT, PATH )
WRITE( NOUT, FMT = 9996 )'ZLATRS3', UPLO, TRANS,
$ DIAG, 'N', N, IMAT, 10, RESULT( 10 )
NFAIL = NFAIL + 1
END IF
NRUN = NRUN + 3
90 CONTINUE 90 CONTINUE
100 CONTINUE 100 CONTINUE
110 CONTINUE 110 CONTINUE
@ -565,8 +599,8 @@
9999 FORMAT( ' UPLO=''', A1, ''', DIAG=''', A1, ''', N=', I5, ', NB=', 9999 FORMAT( ' UPLO=''', A1, ''', DIAG=''', A1, ''', N=', I5, ', NB=',
$ I4, ', type ', I2, ', test(', I2, ')= ', G12.5 ) $ I4, ', type ', I2, ', test(', I2, ')= ', G12.5 )
9998 FORMAT( ' UPLO=''', A1, ''', TRANS=''', A1, ''', DIAG=''', A1, 9998 FORMAT( ' UPLO=''', A1, ''', TRANS=''', A1, ''', DIAG=''', A1,
$ ''', N=', I5, ', NB=', I4, ', type ', I2, ', $ ''', N=', I5, ', NB=', I4, ', type ', I2, ', test(',
$ test(', I2, ')= ', G12.5 ) $ I2, ')= ', G12.5 )
9997 FORMAT( ' NORM=''', A1, ''', UPLO =''', A1, ''', N=', I5, ',', 9997 FORMAT( ' NORM=''', A1, ''', UPLO =''', A1, ''', N=', I5, ',',
$ 11X, ' type ', I2, ', test(', I2, ')=', G12.5 ) $ 11X, ' type ', I2, ', test(', I2, ')=', G12.5 )
9996 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''', ''', 9996 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''', ''',

View File

@ -307,16 +307,16 @@
IZERO = 0 IZERO = 0
ELSE IF( IMAT.EQ.8 ) THEN ELSE IF( IMAT.EQ.8 ) THEN
IZERO = 1 IZERO = 1
Z( 2 ) = A( N ) Z( 2 ) = DBLE( A( N ) )
A( N ) = ZERO A( N ) = ZERO
IF( N.GT.1 ) THEN IF( N.GT.1 ) THEN
Z( 3 ) = A( 1 ) Z( 3 ) = DBLE( A( 1 ) )
A( 1 ) = ZERO A( 1 ) = ZERO
END IF END IF
ELSE IF( IMAT.EQ.9 ) THEN ELSE IF( IMAT.EQ.9 ) THEN
IZERO = N IZERO = N
Z( 1 ) = A( 3*N-2 ) Z( 1 ) = DBLE( A( 3*N-2 ) )
Z( 2 ) = A( 2*N-1 ) Z( 2 ) = DBLE( A( 2*N-1 ) )
A( 3*N-2 ) = ZERO A( 3*N-2 ) = ZERO
A( 2*N-1 ) = ZERO A( 2*N-1 ) = ZERO
ELSE ELSE

View File

@ -266,12 +266,12 @@
* *
IA = 1 IA = 1
DO 20 I = 1, N - 1 DO 20 I = 1, N - 1
D( I ) = A( IA ) D( I ) = DBLE( A( IA ) )
E( I ) = A( IA+1 ) E( I ) = A( IA+1 )
IA = IA + 2 IA = IA + 2
20 CONTINUE 20 CONTINUE
IF( N.GT.0 ) IF( N.GT.0 )
$ D( N ) = A( IA ) $ D( N ) = DBLE( A( IA ) )
ELSE ELSE
* *
* Type 7-12: generate a diagonally dominant matrix with * Type 7-12: generate a diagonally dominant matrix with
@ -333,13 +333,13 @@
Z( 2 ) = D( 1 ) Z( 2 ) = D( 1 )
D( 1 ) = ZERO D( 1 ) = ZERO
IF( N.GT.1 ) THEN IF( N.GT.1 ) THEN
Z( 3 ) = E( 1 ) Z( 3 ) = DBLE( E( 1 ) )
E( 1 ) = ZERO E( 1 ) = ZERO
END IF END IF
ELSE IF( IMAT.EQ.9 ) THEN ELSE IF( IMAT.EQ.9 ) THEN
IZERO = N IZERO = N
IF( N.GT.1 ) THEN IF( N.GT.1 ) THEN
Z( 1 ) = E( N-1 ) Z( 1 ) = DBLE( E( N-1 ) )
E( N-1 ) = ZERO E( N-1 ) = ZERO
END IF END IF
Z( 2 ) = D( N ) Z( 2 ) = D( N )
@ -347,9 +347,9 @@
ELSE IF( IMAT.EQ.10 ) THEN ELSE IF( IMAT.EQ.10 ) THEN
IZERO = ( N+1 ) / 2 IZERO = ( N+1 ) / 2
IF( IZERO.GT.1 ) THEN IF( IZERO.GT.1 ) THEN
Z( 1 ) = E( IZERO-1 ) Z( 1 ) = DBLE( E( IZERO-1 ) )
E( IZERO-1 ) = ZERO E( IZERO-1 ) = ZERO
Z( 3 ) = E( IZERO ) Z( 3 ) = DBLE( E( IZERO ) )
E( IZERO ) = ZERO E( IZERO ) = ZERO
END IF END IF
Z( 2 ) = D( IZERO ) Z( 2 ) = D( IZERO )

View File

@ -336,7 +336,7 @@
WORK( J+1 ) = PLUS2 WORK( J+1 ) = PLUS2
WORK( N+J+1 ) = ZERO WORK( N+J+1 ) = ZERO
PLUS1 = STAR1 / PLUS2 PLUS1 = STAR1 / PLUS2
REXP = ZLARND( 2, ISEED ) REXP = DBLE( ZLARND( 2, ISEED ) )
IF( REXP.LT.ZERO ) THEN IF( REXP.LT.ZERO ) THEN
STAR1 = -SFAC**( ONE-REXP )*ZLARND( 5, ISEED ) STAR1 = -SFAC**( ONE-REXP )*ZLARND( 5, ISEED )
ELSE ELSE
@ -790,7 +790,7 @@
DO 460 J = 1, N / 2 DO 460 J = 1, N / 2
JL = JJ JL = JJ
DO 450 I = J, N - J DO 450 I = J, N - J
T = AP( JR-I+J ) T = DBLE( AP( JR-I+J ) )
AP( JR-I+J ) = AP( JL ) AP( JR-I+J ) = AP( JL )
AP( JL ) = T AP( JL ) = T
JL = JL + I JL = JL + I
@ -804,7 +804,7 @@
DO 480 J = 1, N / 2 DO 480 J = 1, N / 2
JR = JJ JR = JJ
DO 470 I = J, N - J DO 470 I = J, N - J
T = AP( JL+I-J ) T = DBLE( AP( JL+I-J ) )
AP( JL+I-J ) = AP( JR ) AP( JL+I-J ) = AP( JR )
AP( JR ) = T AP( JR ) = T
JR = JR - I JR = JR - I

View File

@ -201,7 +201,8 @@
* *
* Compute the (K,K) element of the result. * Compute the (K,K) element of the result.
* *
AKK = ZDOTC( KLEN+1, AFAC( KC, K ), 1, AFAC( KC, K ), 1 ) AKK = DBLE(
$ ZDOTC( KLEN+1, AFAC( KC, K ), 1, AFAC( KC, K ), 1 ) )
AFAC( KD+1, K ) = AKK AFAC( KD+1, K ) = AKK
* *
* Compute the rest of column K. * Compute the rest of column K.
@ -228,7 +229,7 @@
* *
* Scale column K by the diagonal element. * Scale column K by the diagonal element.
* *
AKK = AFAC( 1, K ) AKK = DBLE( AFAC( 1, K ) )
CALL ZDSCAL( KLEN+1, AKK, AFAC( 1, K ), 1 ) CALL ZDSCAL( KLEN+1, AKK, AFAC( 1, K ), 1 )
* *
40 CONTINUE 40 CONTINUE

View File

@ -176,7 +176,7 @@
* *
* Compute the (K,K) element of the result. * Compute the (K,K) element of the result.
* *
TR = ZDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) TR = DBLE( ZDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) )
AFAC( K, K ) = TR AFAC( K, K ) = TR
* *
* Compute the rest of column K. * Compute the rest of column K.
@ -224,7 +224,7 @@
70 CONTINUE 70 CONTINUE
END IF END IF
* *
* Compute norm( L*U - A ) / ( N * norm(A) * EPS ) * Compute norm(L*U - A) / ( N * norm(A) * EPS )
* *
RESID = ZLANHE( '1', UPLO, N, AFAC, LDAFAC, RWORK ) RESID = ZLANHE( '1', UPLO, N, AFAC, LDAFAC, RWORK )
* *

View File

@ -178,7 +178,7 @@
* *
* Compute the (K,K) element of the result. * Compute the (K,K) element of the result.
* *
TR = ZDOTC( K, AFAC( KC ), 1, AFAC( KC ), 1 ) TR = DBLE( ZDOTC( K, AFAC( KC ), 1, AFAC( KC ), 1 ) )
AFAC( KC+K-1 ) = TR AFAC( KC+K-1 ) = TR
* *
* Compute the rest of column K. * Compute the rest of column K.

View File

@ -219,7 +219,7 @@
* *
* Compute the (K,K) element of the result. * Compute the (K,K) element of the result.
* *
TR = ZDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) TR = DBLE( ZDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) )
AFAC( K, K ) = TR AFAC( K, K ) = TR
* *
* Compute the rest of column K. * Compute the rest of column K.