diff options
| author | Lucas Schwebler <lucas.schwebler@gmail.com> | 2025-05-13 15:25:57 +0200 |
|---|---|---|
| committer | Lucas Schwebler <lucas.schwebler@gmail.com> | 2025-05-13 15:25:57 +0200 |
| commit | 2b38e35c518fa52eef8024e805fdb78df9d7f92f (patch) | |
| tree | dae4f2497121947bf82ac7656a1daef7f93e9bf0 /test | |
| parent | 3903044dd68da8ac6d589cfc873260dccbf4cd8f (diff) | |
new gauss
Diffstat (limited to 'test')
| -rw-r--r-- | test/math/lgsFp.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
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 <math/shortModInv.cpp> vector<vector<ll>> mat; -#include <math/lgsFp.cpp> - constexpr ll mod = 1'000'000'007; +namespace lgs { + int n, m; + #include <math/lgsFp.cpp> +} + vector<vector<ll>> inverseMat(const vector<vector<ll>>& m) { int n = sz(m); @@ -13,7 +16,9 @@ vector<vector<ll>> inverseMat(const vector<vector<ll>>& 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<vector<ll>> res(m); for (int i = 0; i < n; i++) { res[i] = vector<ll>(mat[i].begin() + n, mat[i].end()); @@ -52,7 +57,9 @@ void test_square() { vector<vector<ll>> m(n); for (auto& v : m) v = Random::integers<ll>(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<vector<ll>> m(N); for (auto& v : m) v = Random::integers<ll>(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++) { |
