zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit fcf65f06c4eb42c8ecffbe9b7558f9cb84ef44e2 (tree)
parent 6daa041932ae5ab03eed953dacf3ca506078390c
Author: Benoit Jauvin-Girard <bjg-coding@agaguk.net>
Date:   Sun, 17 Feb 2019 14:52:40 -0500

Fix std.math.powi so powi(x, +-0) = 1 for any x.

Diffstat:
Mstd/math/powi.zig | 9++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/std/math/powi.zig b/std/math/powi.zig @@ -25,7 +25,7 @@ pub fn powi(comptime T: type, x: T, y: T) (error{ // powi(x, +-0) = 1 for any x if (y == 0 or y == -0) { - return 0; + return 1; } switch (x) { @@ -174,4 +174,11 @@ test "math.powi.special" { testing.expectError(error.Overflow, powi(u64, 2, 64)); testing.expectError(error.Overflow, powi(u17, 2, 17)); testing.expectError(error.Overflow, powi(u42, 2, 42)); + + testing.expect((try powi(u8, 6, 0)) == 1); + testing.expect((try powi(u16, 5, 0)) == 1); + testing.expect((try powi(u32, 12, 0)) == 1); + testing.expect((try powi(u64, 34, 0)) == 1); + testing.expect((try powi(u17, 16, 0)) == 1); + testing.expect((try powi(u42, 34, 0)) == 1); }