diff --git a/multbase.py b/multbase.py index 5883665..d823359 100644 --- a/multbase.py +++ b/multbase.py @@ -1,24 +1,43 @@ -from functools import reduce +from functools import reduce,partial from operator import mul +# from math import fmod def _base(n,b): - out =[] - while n: - out.append(n%b) - n //= b - return out + out =[] + while n: + out.insert(0,n%b) + n //= b + return out def _multbase(n,bases): - out = [] - if functools.reduce(mul,bases) < n: - raise ValueError("Not enough bases/not big enough") - for base in reversed(bases): - out.append(n%bases) - n //= base - if not n: - return out - -def base(n,base_arg): - try: - return _multbase(n,base_arg - except ValueError: - return _base(n,base_arg) \ No newline at end of file + if reduce(mul,bases) < n: + raise ValueError("Not enough bases/not big enough") + + for base in reversed(bases): + out.insert(0,n%bases) + n //= base + if not n: + return out +def _fbase(n,b,se = 2**-64): + out = [] + if b < 1: + b = 1/b + op = out.append + else: + op = partial(out.insert,0) + print(b) + r = 1 + while n > r != 0: + r = int(n%b) + op(r) + n = (n-r)/b + return out +def _fmultbase(n,b,se = 0.01): + out = [] + if reduce(mul,bases) < n: + raise ValueError("Not enough bases/not big enough") + for base in reversed(bases): + out.insert(0,n%base) + n /= base + if n < se or n == 0: + return out +#test \ No newline at end of file