From f3f91105bd9a91ccaf2a30e791d41ca5a597d3cf Mon Sep 17 00:00:00 2001 From: Zooko O'Whielacronx Date: Fri, 29 Dec 2006 13:50:42 -0700 Subject: [PATCH] import mathutil from pyutil --- src/allmydata/util/mathutil.py | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/allmydata/util/mathutil.py diff --git a/src/allmydata/util/mathutil.py b/src/allmydata/util/mathutil.py new file mode 100644 index 00000000..fa58ecc0 --- /dev/null +++ b/src/allmydata/util/mathutil.py @@ -0,0 +1,36 @@ +# Copyright (c) 2005-2007 Bryce "Zooko" Wilcox-O'Hearn +# mailto:zooko@zooko.com +# http://zooko.com/repos/pyutil +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this work to deal in this work without restriction (including the rights +# to use, modify, distribute, sublicense, and/or sell copies). + +""" +A few commonly needed functions. +""" + +import math + +def div_ceil(n, d): + """ + The smallest integer k such that k*d >= n. + """ + return (n/d) + (n%d != 0) + +def next_multiple(n, k): + """ + The smallest multiple of k which is >= n. + """ + return div_ceil(n, k) * k + +def pad_size(n, k): + """ + The smallest number that has to be added to n so that n is a multiple of k. + """ + if n%k: + return k - n%k + else: + return 0 + +def is_power_of_k(n, k): + return k**int(math.log(n, k) + 0.5) == n -- 2.45.2