summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGloria Mundi <gloria@gloria-mundi.eu>2025-02-19 20:53:47 +0100
committerGloria Mundi <gloria@gloria-mundi.eu>2025-02-19 20:53:47 +0100
commitce41ee064f64efff57a9b355c88b14b9f18bbcb5 (patch)
tree2307cb49d9446a02ea6717397a526d0d1fd6f1de
parent12d1669686bb2822705a678a696d66a18497068b (diff)
remove recursive modPow
-rw-r--r--content/math/modExp.cpp6
-rw-r--r--test/math/modExp.cpp42
2 files changed, 0 insertions, 48 deletions
diff --git a/content/math/modExp.cpp b/content/math/modExp.cpp
deleted file mode 100644
index 2329a94..0000000
--- a/content/math/modExp.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-ll powMod(ll a, ll b, ll n) {
- if(b == 0) return 1;
- if(b == 1) return a % n;
- if(b & 1) return (powMod(a, b - 1, n) * a) % n;
- else return powMod((a * a) % n, b / 2, n);
-}
diff --git a/test/math/modExp.cpp b/test/math/modExp.cpp
deleted file mode 100644
index ebb38eb..0000000
--- a/test/math/modExp.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "../util.h"
-#include <math/modExp.cpp>
-
-void stress_test() {
- ll queries = 0;
- for (ll i = 0; i < 10'000; i++) {
- int a = Random::integer<int>(1, 100);
- int n = Random::integer<int>(2, 100);
- ll expected = 1;
- ll k = 0;
- do {
- auto got = powMod(a, k, n);
- if (got != expected) cerr << "got: " << got << ", expected: " << expected << FAIL;
- k++;
- expected = (expected * a) % n;
- } while (k < 100);
- queries += n;
- }
- cerr << "tested queries: " << queries << endl;
-}
-
-constexpr int N = 1'000'000;
-void performance_test() {
- timer t;
- hash_t hash = 0;
- for (int operations = 0; operations < N; operations++) {
- ll a = Random::integer<ll>(0, 1'000'000'000);
- ll b = Random::integer<ll>(0, 1'000'000'000);
- ll n = Random::integer<ll>(2, 1'000'000'000);
- t.start();
- hash += powMod(a, b, n);
- t.stop();
- }
- if (t.time > 750) cerr << "too slow: " << t.time << FAIL;
- cerr << "tested performance: " << t.time << "ms (hash: " << hash << ")" << endl;
-}
-
-int main() {
- stress_test();
- performance_test();
-}
-