From 7f09f40bf4259ce973f0e72fa2b751da39b34443 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Tue, 22 Nov 2022 01:08:27 +0000 Subject: [PATCH] Fix SLATRS3 and CLATRS3 tests Some SLATRS3 tests were failing with OpenBLAS where the RHS has a BIGNUM (=Infinity in this test) component. OpenBLAS SSCAL, when multiplying with 0, will turn this component into 0, unlike reference BLAS which turns it into NaN. While NaN looks more correct it still did not explain why DLATRS3 tests were succeeding where DSCAL has the same difference between reference and OpenBLAS. Diffing the test code unmasked a few bugs, which makes the test succeed and also unmasked a bug in the CLATRS3 test. The ZLATRS3 and DLATRS3 tests look correct to me. --- TESTING/LIN/cchktr.f | 6 +++--- TESTING/LIN/schktr.f | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/TESTING/LIN/cchktr.f b/TESTING/LIN/cchktr.f index c55b076437..4b09361d8b 100644 --- a/TESTING/LIN/cchktr.f +++ b/TESTING/LIN/cchktr.f @@ -541,7 +541,7 @@ SUBROUTINE CCHKTR( DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, * SRNAMT = 'CLATRS3' CALL CCOPY( N, X, 1, B, 1 ) - CALL CCOPY( N, X, 1, B, 1 ) + CALL CCOPY( N, X, 1, B( N+1 ), 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, @@ -551,7 +551,7 @@ SUBROUTINE CCHKTR( DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, * IF( INFO.NE.0 ) $ CALL ALAERH( PATH, 'CLATRS3', INFO, 0, - $ UPLO // TRANS // DIAG // 'Y', N, N, + $ UPLO // TRANS // DIAG // 'N', 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, @@ -559,7 +559,7 @@ SUBROUTINE CCHKTR( DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, 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 ) ) + $ X, LDA, WORK, RES ) RESULT( 10 ) = MAX( RESULT( 10 ), RES ) * * Print information about the tests that did not pass diff --git a/TESTING/LIN/schktr.f b/TESTING/LIN/schktr.f index 5aeb1ce88c..92d8761087 100644 --- a/TESTING/LIN/schktr.f +++ b/TESTING/LIN/schktr.f @@ -555,11 +555,11 @@ SUBROUTINE SCHKTR( DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, * IF( INFO.NE.0 ) $ CALL ALAERH( PATH, 'SLATRS3', INFO, 0, - $ UPLO // TRANS // DIAG // 'Y', N, N, + $ UPLO // TRANS // DIAG // 'N', N, N, $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) * CALL STRT03( UPLO, TRANS, DIAG, N, 1, A, LDA, - $ SCALE3 ( 1 ), RWORK, ONE, B( N+1 ), LDA, + $ SCALE3( 1 ), RWORK, ONE, B( 1 ), LDA, $ X, LDA, WORK, RESULT( 10 ) ) CALL SSCAL( N, BIGNUM, X, 1 ) CALL STRT03( UPLO, TRANS, DIAG, N, 1, A, LDA,