From 2b38e35c518fa52eef8024e805fdb78df9d7f92f Mon Sep 17 00:00:00 2001 From: Lucas Schwebler Date: Tue, 13 May 2025 15:25:57 +0200 Subject: new gauss --- test/math/lgsFp.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'test/math/lgsFp.cpp') diff --git a/test/math/lgsFp.cpp b/test/math/lgsFp.cpp index 08f8f84..e529390 100644 --- a/test/math/lgsFp.cpp +++ b/test/math/lgsFp.cpp @@ -1,9 +1,12 @@ #include "../util.h" #include vector> mat; -#include - constexpr ll mod = 1'000'000'007; +namespace lgs { + int n, m; + #include +} + vector> inverseMat(const vector>& m) { int n = sz(m); @@ -13,7 +16,9 @@ vector> inverseMat(const vector>& m) { mat[i].resize(2*n); mat[i][n+i] = 1; } - gauss(n, mod); + lgs::n = sz(mat); + lgs::m = sz(mat[0]); + lgs::gauss(); vector> res(m); for (int i = 0; i < n; i++) { res[i] = vector(mat[i].begin() + n, mat[i].end()); @@ -52,7 +57,9 @@ void test_square() { vector> m(n); for (auto& v : m) v = Random::integers(n, 0, mod); mat = m; - gauss(n, mod); + lgs::n = sz(mat); + lgs::m = sz(mat[0]); + lgs::gauss(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { @@ -97,9 +104,11 @@ void performance_test() { vector> m(N); for (auto& v : m) v = Random::integers(N, 0, mod); mat = m; + lgs::n = sz(mat); + lgs::m = sz(mat[0]); t.start(); - gauss(N, mod); + lgs::gauss(); t.stop(); hash_t hash = 0; for (int i = 0; i < N; i++) { -- cgit v1.2.3