| author | |
| committer | |
| log | eb26aeb1e527b5f43f7f789d3a995dca8c73e2e9 |
| tree | f3e74b99c5593c922e9c59cb27dd11beef9683a1 |
| parent | cd2f65ff6ace9f1e426d5e8a4721666d347b289d |
1 files changed, 5 insertions(+), 2 deletions(-)
std/math/log2.zig+5-2| ... | ... | @@ -26,8 +26,11 @@ fn log2_workaround(x: var) -> @typeOf(x) { |
| 26 | 26 | else => @compileError("log2 not implemented for " ++ @typeName(T)), |
| 27 | 27 | }; |
| 28 | 28 | }, |
| 29 | TypeId.IntLiteral => { | |
| 30 | return @typeOf(1)(log2_int(u128, x)) | |
| 29 | TypeId.IntLiteral => comptime { | |
| 30 | var result = 0; | |
| 31 | var x_shifted = x; | |
| 32 | while ({x_shifted >>= 1; x_shifted != 0}) : (result += 1) {} | |
| 33 | return result; | |
| 31 | 34 | }, |
| 32 | 35 | TypeId.Int => { |
| 33 | 36 | return log2_int(T, x); |