Skip to content

Commit 28f7e83

Browse files
authored
Merge pull request Reference-LAPACK#728 from angsch/master
Fix lower triangular band matrix generation
2 parents 96bd210 + ca9fa5a commit 28f7e83

File tree

9 files changed

+25
-21
lines changed

9 files changed

+25
-21
lines changed

TESTING/LIN/clatb4.f

+5-4
Original file line numberDiff line numberDiff line change
@@ -517,17 +517,18 @@ SUBROUTINE CLATB4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
517517
*
518518
* Set the norm and condition number.
519519
*
520-
IF( IMAT.EQ.2 .OR. IMAT.EQ.8 ) THEN
520+
MAT = ABS( IMAT )
521+
IF( MAT.EQ.2 .OR. MAT.EQ.8 ) THEN
521522
CNDNUM = BADC1
522-
ELSE IF( IMAT.EQ.3 .OR. IMAT.EQ.9 ) THEN
523+
ELSE IF( MAT.EQ.3 .OR. MAT.EQ.9 ) THEN
523524
CNDNUM = BADC2
524525
ELSE
525526
CNDNUM = TWO
526527
END IF
527528
*
528-
IF( IMAT.EQ.4 ) THEN
529+
IF( MAT.EQ.4 ) THEN
529530
ANORM = SMALL
530-
ELSE IF( IMAT.EQ.5 ) THEN
531+
ELSE IF( MAT.EQ.5 ) THEN
531532
ANORM = LARGE
532533
ELSE
533534
ANORM = ONE

TESTING/LIN/dlatb4.f

+5-4
Original file line numberDiff line numberDiff line change
@@ -518,17 +518,18 @@ SUBROUTINE DLATB4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
518518
*
519519
* Set the norm and condition number.
520520
*
521-
IF( IMAT.EQ.2 .OR. IMAT.EQ.8 ) THEN
521+
MAT = ABS( IMAT )
522+
IF( MAT.EQ.2 .OR. MAT.EQ.8 ) THEN
522523
CNDNUM = BADC1
523-
ELSE IF( IMAT.EQ.3 .OR. IMAT.EQ.9 ) THEN
524+
ELSE IF( MAT.EQ.3 .OR. MAT.EQ.9 ) THEN
524525
CNDNUM = BADC2
525526
ELSE
526527
CNDNUM = TWO
527528
END IF
528529
*
529-
IF( IMAT.EQ.4 ) THEN
530+
IF( MAT.EQ.4 ) THEN
530531
ANORM = SMALL
531-
ELSE IF( IMAT.EQ.5 ) THEN
532+
ELSE IF( MAT.EQ.5 ) THEN
532533
ANORM = LARGE
533534
ELSE
534535
ANORM = ONE

TESTING/LIN/dlattb.f

+1-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ SUBROUTINE DLATTB( IMAT, UPLO, TRANS, DIAG, ISEED, N, KD, AB,
195195
IF( N.LE.0 )
196196
$ RETURN
197197
*
198-
* Call DLATB4 to set parameters for SLATMS.
198+
* Call DLATB4 to set parameters for DLATMS.
199199
*
200200
UPPER = LSAME( UPLO, 'U' )
201201
IF( UPPER ) THEN

TESTING/LIN/dlattp.f

+1-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ SUBROUTINE DLATTP( IMAT, UPLO, TRANS, DIAG, ISEED, N, A, B, WORK,
187187
IF( N.LE.0 )
188188
$ RETURN
189189
*
190-
* Call DLATB4 to set parameters for SLATMS.
190+
* Call DLATB4 to set parameters for DLATMS.
191191
*
192192
UPPER = LSAME( UPLO, 'U' )
193193
IF( UPPER ) THEN

TESTING/LIN/dlattr.f

+1-1
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ SUBROUTINE DLATTR( IMAT, UPLO, TRANS, DIAG, ISEED, N, A, LDA, B,
193193
IF( N.LE.0 )
194194
$ RETURN
195195
*
196-
* Call DLATB4 to set parameters for SLATMS.
196+
* Call DLATB4 to set parameters for DLATMS.
197197
*
198198
UPPER = LSAME( UPLO, 'U' )
199199
IF( UPPER ) THEN

TESTING/LIN/slatb4.f

+5-4
Original file line numberDiff line numberDiff line change
@@ -518,17 +518,18 @@ SUBROUTINE SLATB4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
518518
*
519519
* Set the norm and condition number.
520520
*
521-
IF( IMAT.EQ.2 .OR. IMAT.EQ.8 ) THEN
521+
MAT = ABS( IMAT )
522+
IF( MAT.EQ.2 .OR. MAT.EQ.8 ) THEN
522523
CNDNUM = BADC1
523-
ELSE IF( IMAT.EQ.3 .OR. IMAT.EQ.9 ) THEN
524+
ELSE IF( MAT.EQ.3 .OR. MAT.EQ.9 ) THEN
524525
CNDNUM = BADC2
525526
ELSE
526527
CNDNUM = TWO
527528
END IF
528529
*
529-
IF( IMAT.EQ.4 ) THEN
530+
IF( MAT.EQ.4 ) THEN
530531
ANORM = SMALL
531-
ELSE IF( IMAT.EQ.5 ) THEN
532+
ELSE IF( MAT.EQ.5 ) THEN
532533
ANORM = LARGE
533534
ELSE
534535
ANORM = ONE

TESTING/LIN/zlatb4.f

+5-4
Original file line numberDiff line numberDiff line change
@@ -517,17 +517,18 @@ SUBROUTINE ZLATB4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
517517
*
518518
* Set the norm and condition number.
519519
*
520-
IF( IMAT.EQ.2 .OR. IMAT.EQ.8 ) THEN
520+
MAT = ABS( IMAT )
521+
IF( MAT.EQ.2 .OR. MAT.EQ.8 ) THEN
521522
CNDNUM = BADC1
522-
ELSE IF( IMAT.EQ.3 .OR. IMAT.EQ.9 ) THEN
523+
ELSE IF( MAT.EQ.3 .OR. MAT.EQ.9 ) THEN
523524
CNDNUM = BADC2
524525
ELSE
525526
CNDNUM = TWO
526527
END IF
527528
*
528-
IF( IMAT.EQ.4 ) THEN
529+
IF( MAT.EQ.4 ) THEN
529530
ANORM = SMALL
530-
ELSE IF( IMAT.EQ.5 ) THEN
531+
ELSE IF( MAT.EQ.5 ) THEN
531532
ANORM = LARGE
532533
ELSE
533534
ANORM = ONE

TESTING/LIN/zlattb.f

+1-1
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ SUBROUTINE ZLATTB( IMAT, UPLO, TRANS, DIAG, ISEED, N, KD, AB,
204204
IF( N.LE.0 )
205205
$ RETURN
206206
*
207-
* Call ZLATB4 to set parameters for CLATMS.
207+
* Call ZLATB4 to set parameters for ZLATMS.
208208
*
209209
UPPER = LSAME( UPLO, 'U' )
210210
IF( UPPER ) THEN

TESTING/LIN/zlattr.f

+1-1
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ SUBROUTINE ZLATTR( IMAT, UPLO, TRANS, DIAG, ISEED, N, A, LDA, B,
201201
IF( N.LE.0 )
202202
$ RETURN
203203
*
204-
* Call ZLATB4 to set parameters for CLATMS.
204+
* Call ZLATB4 to set parameters for ZLATMS.
205205
*
206206
UPPER = LSAME( UPLO, 'U' )
207207
IF( UPPER ) THEN

0 commit comments

Comments
 (0)