summaryrefslogtreecommitdiff
path: root/ripser.cpp
diff options
context:
space:
mode:
authorUlrich Bauer <ulrich.bauer@tum.de>2015-11-13 23:33:43 -0500
committerUlrich Bauer <ulrich.bauer@tum.de>2015-11-13 23:33:43 -0500
commitfe20cb62f2ecedc250911a305b2aad826d0286c0 (patch)
treeb582f4e2245c46cc67e0b944c9117651b01c1ec1 /ripser.cpp
parentfb72e5364eca5112f0239a467d02d37f43063491 (diff)
derive formula for multiplicative_inverse_vector
Diffstat (limited to 'ripser.cpp')
-rw-r--r--ripser.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/ripser.cpp b/ripser.cpp
index 54a3ae2..915f64e 100644
--- a/ripser.cpp
+++ b/ripser.cpp
@@ -65,6 +65,12 @@ public:
//
// https://comeoncodeon.wordpress.com/2011/10/09/modular-multiplicative-inverse/
//
+
+// a * (m / a) + m % a = m
+// m % a = -a * (m / a) (mod m)
+//Dividing by (a * (m % a)):
+// inverse(a) = - (m / a) * inverse(m % a) (mod m)
+
std::vector<coefficient_t> multiplicative_inverse_vector (const coefficient_t m) {
std::vector<coefficient_t> mod_inverse(m);
mod_inverse[1] = 1;