Commit 83bdbb2abb
Changed files (1)
lib
std
math
big
lib/std/math/big/int.zig
@@ -18,11 +18,14 @@ const debug_safety = false;
/// Returns the number of limbs needed to store `scalar`, which must be a
/// primitive integer value.
pub fn calcLimbLen(scalar: anytype) usize {
- if (scalar == 0) {
- return 1;
- }
+ const T = @TypeOf(scalar);
+ const max_scalar = switch (@typeInfo(T)) {
+ .Int => maxInt(T),
+ .ComptimeInt => scalar,
+ else => @compileError("parameter must be a primitive integer type"),
+ };
- const w_value = std.math.absCast(scalar);
+ const w_value = std.math.absCast(max_scalar);
return @divFloor(@intCast(Limb, math.log2(w_value)), limb_bits) + 1;
}