1 from math import *
2
15
16
18 """Linear enterpolate from a to b."""
19 return a+(b-a)*i
20
21
23
24 """Creates a 2D range."""
25
26 range_x = list(range_x)
27 return [ (x, y) for y in range_y for x in range_x ]
28
29
31
32 """Iterates over a 2D range."""
33
34 range_x = list(range_x)
35 for y in range_y:
36 for x in range_x:
37 yield (x, y)
38
39
41 return min(max(value, low), high)
42
43
45 """Returns True if a value is a power of 2."""
46 return log(n, 2) % 1.0 == 0.0
47
48
50 """Returns the next power of 2 that is >= n"""
51 return int(2 ** ceil(log(n, 2)))
52
53 if __name__ == "__main__":
54
55 print list( xrange2d(xrange(3), xrange(3)) )
56 print range2d(xrange(3), xrange(3))
57 print is_power_of_2(7)
58 print is_power_of_2(8)
59 print is_power_of_2(9)
60
61 print next_power_of_2(7)
62