mirror of
https://github.com/ziglang/zig.git
synced 2026-02-20 16:24:51 +00:00
Use std.math.isPowerOfTwo across std lib
This commit is contained in:
parent
12b2950bf2
commit
05e92a51aa
@ -157,8 +157,7 @@ pub fn HashMap(comptime K: type, comptime V: type, comptime hash: fn (key: K) u3
|
||||
fn ensureCapacityExact(self: *Self, new_capacity: usize) !void {
|
||||
// capacity must always be a power of two to allow for modulo
|
||||
// optimization in the constrainIndex fn
|
||||
const is_power_of_two = new_capacity & (new_capacity - 1) == 0;
|
||||
assert(is_power_of_two);
|
||||
assert(math.isPowerOfTwo(new_capacity));
|
||||
|
||||
if (new_capacity <= self.entries.len) {
|
||||
return;
|
||||
|
||||
@ -447,7 +447,7 @@ pub const Int = struct {
|
||||
}
|
||||
|
||||
// Power of two: can do a single pass and use masks to extract digits.
|
||||
if (base & (base - 1) == 0) {
|
||||
if (math.isPowerOfTwo(base)) {
|
||||
const base_shift = math.log2_int(Limb, base);
|
||||
|
||||
for (self.limbs[0..self.len()]) |limb| {
|
||||
|
||||
@ -80,9 +80,9 @@ pub fn SegmentedList(comptime T: type, comptime prealloc_item_count: usize) type
|
||||
const prealloc_exp = blk: {
|
||||
// we don't use the prealloc_exp constant when prealloc_item_count is 0.
|
||||
assert(prealloc_item_count != 0);
|
||||
assert(std.math.isPowerOfTwo(prealloc_item_count));
|
||||
|
||||
const value = std.math.log2_int(usize, prealloc_item_count);
|
||||
assert((1 << value) == prealloc_item_count); // prealloc_item_count must be a power of 2
|
||||
break :blk @typeOf(1)(value);
|
||||
};
|
||||
const ShelfIndex = std.math.Log2Int(usize);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user