#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; };