From 355e4567e68a76356714e2e58a42dcd78533cf6c Mon Sep 17 00:00:00 2001 From: Bertrand Date: Fri, 19 Feb 2016 14:36:20 +0000 Subject: un peu de nettoyage --- p_adic.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 p_adic.cpp (limited to 'p_adic.cpp') diff --git a/p_adic.cpp b/p_adic.cpp new file mode 100644 index 0000000..30080ac --- /dev/null +++ b/p_adic.cpp @@ -0,0 +1,23 @@ +#include "low_discrepancy.hpp" + +p_adic::p_adic(int n, int p) : p(p) { + int puiss = 1; + while (n > 0) { + ak.push_back(n % p); + pk.push_back(puiss); + puiss *= p; + n -= ak.back(); + n /= p; + } + pk.push_back(puiss); +}; + +void p_adic::increment() { + coeff::iterator i = ak.begin(); + while ((i != ak.end()) && ((*i)+1 == p)) { (*i) = 0; i++; } + if (i == ak.end()) { + ak.push_back(1); + pk.push_back(pk.back()*p); + } + else (*i) += 1; +}; -- cgit v1.2.3-70-g09d2