diff --git a/gtestsuite/testsuite/level3/trsm/ctrsm_generic.cpp b/gtestsuite/testsuite/level3/trsm/ctrsm_generic.cpp index 0b8c35776..b0efde03e 100644 --- a/gtestsuite/testsuite/level3/trsm/ctrsm_generic.cpp +++ b/gtestsuite/testsuite/level3/trsm/ctrsm_generic.cpp @@ -80,7 +80,7 @@ TEST_P(ctrsmTest, RandomData) { char datatype = std::get<10>(GetParam()); // Set the threshold for the errors: - double thresh = 15*n*m*testinghelpers::getEpsilon(); + double thresh = std::max(m, n)*testinghelpers::getEpsilon(); //---------------------------------------------------------- // Call test body using these parameters @@ -139,8 +139,8 @@ INSTANTIATE_TEST_SUITE_P( ::testing::Values('u','l'), // uplo u:upper, l:lower ::testing::Values('n','c','t'), // transa ::testing::Values('n','u'), // diaga , n=nonunit u=unit - ::testing::Range(gtint_t(10), gtint_t(11), 10), // m - ::testing::Range(gtint_t(10), gtint_t(11), 10), // n + ::testing::Range(gtint_t(10), gtint_t(31), 10), // m + ::testing::Range(gtint_t(10), gtint_t(31), 10), // n ::testing::Values(scomplex{2.0,-1.0}), // alpha ::testing::Values(gtint_t(0), gtint_t(3)), // increment to the leading dim of a ::testing::Values(gtint_t(0), gtint_t(4)), // increment to the leading dim of b diff --git a/gtestsuite/testsuite/level3/trsm/dtrsm_generic.cpp b/gtestsuite/testsuite/level3/trsm/dtrsm_generic.cpp index d15af9390..457828227 100644 --- a/gtestsuite/testsuite/level3/trsm/dtrsm_generic.cpp +++ b/gtestsuite/testsuite/level3/trsm/dtrsm_generic.cpp @@ -80,7 +80,7 @@ TEST_P(dtrsmTest, RandomData) { char datatype = std::get<10>(GetParam()); // Set the threshold for the errors: - double thresh = 20*n*m*testinghelpers::getEpsilon(); + double thresh = std::max(m, n)*testinghelpers::getEpsilon(); //---------------------------------------------------------- // Call test body using these parameters diff --git a/gtestsuite/testsuite/level3/trsm/strsm_generic.cpp b/gtestsuite/testsuite/level3/trsm/strsm_generic.cpp index 88c11b647..f4aadc4e3 100644 --- a/gtestsuite/testsuite/level3/trsm/strsm_generic.cpp +++ b/gtestsuite/testsuite/level3/trsm/strsm_generic.cpp @@ -80,7 +80,7 @@ TEST_P(strsmTest, RandomData) { char datatype = std::get<10>(GetParam()); // Set the threshold for the errors: - double thresh = 15*n*m*testinghelpers::getEpsilon(); + double thresh = std::max(m, n)*testinghelpers::getEpsilon(); //---------------------------------------------------------- // Call test body using these parameters diff --git a/gtestsuite/testsuite/level3/trsm/test_trsm.h b/gtestsuite/testsuite/level3/trsm/test_trsm.h index a42be916b..2cb13be5d 100644 --- a/gtestsuite/testsuite/level3/trsm/test_trsm.h +++ b/gtestsuite/testsuite/level3/trsm/test_trsm.h @@ -54,9 +54,17 @@ void test_trsm( char storage, char side, char uploa, char transa, //---------------------------------------------------------- // Initialize matrics with random values. //---------------------------------------------------------- - std::vector a = testinghelpers::get_random_matrix(2, 18, storage, transa, mn, mn, lda, datatype); - std::vector b = testinghelpers::get_random_matrix(5, 12, storage, 'n', m, n, ldb, datatype); + gtint_t lower = (diaga = 'n')||(diaga = 'N') ? 3 : 0; + gtint_t upper = (diaga = 'n')||(diaga = 'N') ? 10 : 1; + std::vector a = testinghelpers::get_random_matrix(lower, upper, storage, transa, mn, mn, lda, datatype); + std::vector b = testinghelpers::get_random_matrix(3, 10, storage, 'n', m, n, ldb, datatype); + // Making A diagonally dominant so that the condition number is good and + // the algorithm doesn't diverge. + for (gtint_t i=0; i b_ref(b); diff --git a/gtestsuite/testsuite/level3/trsm/ztrsm_generic.cpp b/gtestsuite/testsuite/level3/trsm/ztrsm_generic.cpp index 8d16cbfd4..e0c1b4155 100644 --- a/gtestsuite/testsuite/level3/trsm/ztrsm_generic.cpp +++ b/gtestsuite/testsuite/level3/trsm/ztrsm_generic.cpp @@ -80,7 +80,7 @@ TEST_P(ztrsmTest, RandomData) { char datatype = std::get<10>(GetParam()); // Set the threshold for the errors: - double thresh = 15*n*m*testinghelpers::getEpsilon(); + double thresh = std::max(m, n)*testinghelpers::getEpsilon(); //---------------------------------------------------------- // Call test body using these parameters