From d0badc2cebb87401fa876d79f16ec8be0277f3f0 Mon Sep 17 00:00:00 2001 From: Ermakov Alexei Date: Sun, 12 Apr 2026 15:48:42 +0300 Subject: [PATCH 1/3] fix tests --- .../tests/functional/main.cpp | 14 +++++++++++++- .../tests/performance/main.cpp | 12 ++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/tasks/ermakov_a_spar_mat_mult/tests/functional/main.cpp b/tasks/ermakov_a_spar_mat_mult/tests/functional/main.cpp index 75d82d66d..d073e0fb0 100644 --- a/tasks/ermakov_a_spar_mat_mult/tests/functional/main.cpp +++ b/tasks/ermakov_a_spar_mat_mult/tests/functional/main.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -101,6 +102,17 @@ void FillRandom(DenseMatrix &a, DenseMatrix &b, int n, double density, std::mt19 } } +std::uint32_t MakeSeed(int n, const std::string &desc) { + std::uint32_t seed = 2166136261U; + for (unsigned char ch : desc) { + seed ^= ch; + seed *= 16777619U; + } + seed ^= static_cast(n); + seed *= 16777619U; + return seed; +} + MatrixCRS DenseToCRS(const DenseMatrix &m, double eps = 1e-12) { MatrixCRS r; @@ -179,7 +191,7 @@ class ErmakovARunFuncTestSparMatMult : public ppc::util::BaseRunFuncTests #include #include +#include #include #include @@ -19,10 +20,13 @@ namespace { using DenseMatrix = std::vector>>; -DenseMatrix MakeRandomDense(int n, double density) { +constexpr std::uint32_t kPerfSeedA = 0x13579BDFU; +constexpr std::uint32_t kPerfSeedB = 0x2468ACE0U; + +DenseMatrix MakeRandomDense(int n, double density, std::uint32_t seed) { DenseMatrix m(n, std::vector>(n, {0.0, 0.0})); - std::mt19937 gen(std::random_device{}()); + std::mt19937 gen(seed); std::uniform_real_distribution dis_val(-5.0, 5.0); std::uniform_real_distribution dis_prob(0.0, 1.0); @@ -71,8 +75,8 @@ class ErmakovARunPerfTestSparMatMult : public ppc::util::BaseRunPerfTests Date: Wed, 15 Apr 2026 23:37:15 +0300 Subject: [PATCH 2/3] fix performance/main.cpp --- .../tests/performance/main.cpp | 49 +++++-------------- 1 file changed, 11 insertions(+), 38 deletions(-) diff --git a/tasks/ermakov_a_spar_mat_mult/tests/performance/main.cpp b/tasks/ermakov_a_spar_mat_mult/tests/performance/main.cpp index c174312c2..3e032d0a4 100644 --- a/tasks/ermakov_a_spar_mat_mult/tests/performance/main.cpp +++ b/tasks/ermakov_a_spar_mat_mult/tests/performance/main.cpp @@ -1,6 +1,5 @@ #include -#include #include #include #include @@ -18,14 +17,14 @@ namespace ermakov_a_spar_mat_mult { namespace { -using DenseMatrix = std::vector>>; - constexpr std::uint32_t kPerfSeedA = 0x13579BDFU; constexpr std::uint32_t kPerfSeedB = 0x2468ACE0U; -DenseMatrix MakeRandomDense(int n, double density, std::uint32_t seed) { - DenseMatrix m(n, std::vector>(n, {0.0, 0.0})); - +MatrixCRS MakeRandomCRS(int n, double density, std::uint32_t seed) { + MatrixCRS matrix; + matrix.rows = n; + matrix.cols = n; + matrix.row_ptr.resize(static_cast(n) + 1ULL, 0); std::mt19937 gen(seed); std::uniform_real_distribution dis_val(-5.0, 5.0); std::uniform_real_distribution dis_prob(0.0, 1.0); @@ -33,36 +32,13 @@ DenseMatrix MakeRandomDense(int n, double density, std::uint32_t seed) { for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (dis_prob(gen) < density) { - m[i][j] = {dis_val(gen), dis_val(gen)}; - } - } - } - return m; -} - -MatrixCRS DenseToCRS(const DenseMatrix &m, double eps = 1e-12) { - MatrixCRS r; - - const int rows = static_cast(m.size()); - const int cols = (rows != 0) ? static_cast(m[0].size()) : 0; - - r.rows = rows; - r.cols = cols; - r.row_ptr.resize(rows + 1); - r.row_ptr[0] = 0; - - for (int i = 0; i < rows; ++i) { - for (int j = 0; j < cols; ++j) { - const auto v = m[i][j]; - if (std::abs(v.real()) > eps || std::abs(v.imag()) > eps) { - r.values.push_back(v); - r.col_index.push_back(j); + matrix.values.emplace_back(dis_val(gen), dis_val(gen)); + matrix.col_index.push_back(j); } } - r.row_ptr[i + 1] = static_cast(r.values.size()); + matrix.row_ptr[static_cast(i) + 1ULL] = static_cast(matrix.values.size()); } - - return r; + return matrix; } } // namespace @@ -75,11 +51,8 @@ class ErmakovARunPerfTestSparMatMult : public ppc::util::BaseRunPerfTests Date: Sun, 19 Apr 2026 19:16:21 +0300 Subject: [PATCH 3/3] fix clang-tidy --- tasks/ermakov_a_spar_mat_mult/tests/performance/main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/tasks/ermakov_a_spar_mat_mult/tests/performance/main.cpp b/tasks/ermakov_a_spar_mat_mult/tests/performance/main.cpp index 3e032d0a4..30d01a8ae 100644 --- a/tasks/ermakov_a_spar_mat_mult/tests/performance/main.cpp +++ b/tasks/ermakov_a_spar_mat_mult/tests/performance/main.cpp @@ -1,6 +1,5 @@ #include -#include #include #include #include