From: Zooko O'Whielacronx Date: Fri, 29 Dec 2006 20:50:42 +0000 (-0700) Subject: import mathutil from pyutil X-Git-Tag: tahoe_v0.1.0-0-UNSTABLE~417 X-Git-Url: https://git.rkrishnan.org/...?a=commitdiff_plain;h=f3f91105bd9a91ccaf2a30e791d41ca5a597d3cf;p=tahoe-lafs%2Ftahoe-lafs.git import mathutil from pyutil --- 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