|
|
|
|
@@ -32,17 +32,18 @@ fn test__powixf2(a: f80, b: i32, expected: f80) !void {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "powihf2" {
|
|
|
|
|
const inf_f16 = math.inf(f16);
|
|
|
|
|
try test__powisf2(0, 0, 1);
|
|
|
|
|
try test__powihf2(1, 0, 1);
|
|
|
|
|
try test__powihf2(1.5, 0, 1);
|
|
|
|
|
try test__powihf2(2, 0, 1);
|
|
|
|
|
try test__powihf2(math.inf_f16, 0, 1);
|
|
|
|
|
try test__powihf2(inf_f16, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powihf2(-0.0, 0, 1);
|
|
|
|
|
try test__powihf2(-1, 0, 1);
|
|
|
|
|
try test__powihf2(-1.5, 0, 1);
|
|
|
|
|
try test__powihf2(-2, 0, 1);
|
|
|
|
|
try test__powihf2(-math.inf_f16, 0, 1);
|
|
|
|
|
try test__powihf2(-inf_f16, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powihf2(0, 1, 0);
|
|
|
|
|
try test__powihf2(0, 2, 0);
|
|
|
|
|
@@ -65,35 +66,35 @@ test "powihf2" {
|
|
|
|
|
try test__powihf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFE)), 1);
|
|
|
|
|
try test__powihf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFF)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powihf2(math.inf_f16, 1, math.inf_f16);
|
|
|
|
|
try test__powihf2(math.inf_f16, 2, math.inf_f16);
|
|
|
|
|
try test__powihf2(math.inf_f16, 3, math.inf_f16);
|
|
|
|
|
try test__powihf2(math.inf_f16, 4, math.inf_f16);
|
|
|
|
|
try test__powihf2(math.inf_f16, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f16);
|
|
|
|
|
try test__powihf2(math.inf_f16, @bitCast(i32, @as(u32, 0x7FFFFFFF)), math.inf_f16);
|
|
|
|
|
try test__powihf2(inf_f16, 1, inf_f16);
|
|
|
|
|
try test__powihf2(inf_f16, 2, inf_f16);
|
|
|
|
|
try test__powihf2(inf_f16, 3, inf_f16);
|
|
|
|
|
try test__powihf2(inf_f16, 4, inf_f16);
|
|
|
|
|
try test__powihf2(inf_f16, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f16);
|
|
|
|
|
try test__powihf2(inf_f16, @bitCast(i32, @as(u32, 0x7FFFFFFF)), inf_f16);
|
|
|
|
|
|
|
|
|
|
try test__powihf2(-math.inf_f16, 1, -math.inf_f16);
|
|
|
|
|
try test__powihf2(-math.inf_f16, 2, math.inf_f16);
|
|
|
|
|
try test__powihf2(-math.inf_f16, 3, -math.inf_f16);
|
|
|
|
|
try test__powihf2(-math.inf_f16, 4, math.inf_f16);
|
|
|
|
|
try test__powihf2(-math.inf_f16, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f16);
|
|
|
|
|
try test__powihf2(-math.inf_f16, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -math.inf_f16);
|
|
|
|
|
try test__powihf2(-inf_f16, 1, -inf_f16);
|
|
|
|
|
try test__powihf2(-inf_f16, 2, inf_f16);
|
|
|
|
|
try test__powihf2(-inf_f16, 3, -inf_f16);
|
|
|
|
|
try test__powihf2(-inf_f16, 4, inf_f16);
|
|
|
|
|
try test__powihf2(-inf_f16, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f16);
|
|
|
|
|
try test__powihf2(-inf_f16, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -inf_f16);
|
|
|
|
|
//
|
|
|
|
|
try test__powihf2(0, -1, math.inf_f16);
|
|
|
|
|
try test__powihf2(0, -2, math.inf_f16);
|
|
|
|
|
try test__powihf2(0, -3, math.inf_f16);
|
|
|
|
|
try test__powihf2(0, -4, math.inf_f16);
|
|
|
|
|
try test__powihf2(0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f16); // 0 ^ anything = +inf
|
|
|
|
|
try test__powihf2(0, @bitCast(i32, @as(u32, 0x80000001)), math.inf_f16);
|
|
|
|
|
try test__powihf2(0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f16);
|
|
|
|
|
try test__powihf2(0, -1, inf_f16);
|
|
|
|
|
try test__powihf2(0, -2, inf_f16);
|
|
|
|
|
try test__powihf2(0, -3, inf_f16);
|
|
|
|
|
try test__powihf2(0, -4, inf_f16);
|
|
|
|
|
try test__powihf2(0, @bitCast(i32, @as(u32, 0x80000002)), inf_f16); // 0 ^ anything = +inf
|
|
|
|
|
try test__powihf2(0, @bitCast(i32, @as(u32, 0x80000001)), inf_f16);
|
|
|
|
|
try test__powihf2(0, @bitCast(i32, @as(u32, 0x80000000)), inf_f16);
|
|
|
|
|
|
|
|
|
|
try test__powihf2(-0.0, -1, -math.inf_f16);
|
|
|
|
|
try test__powihf2(-0.0, -2, math.inf_f16);
|
|
|
|
|
try test__powihf2(-0.0, -3, -math.inf_f16);
|
|
|
|
|
try test__powihf2(-0.0, -4, math.inf_f16);
|
|
|
|
|
try test__powihf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f16); // -0 ^ anything even = +inf
|
|
|
|
|
try test__powihf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -math.inf_f16); // -0 ^ anything odd = -inf
|
|
|
|
|
try test__powihf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f16);
|
|
|
|
|
try test__powihf2(-0.0, -1, -inf_f16);
|
|
|
|
|
try test__powihf2(-0.0, -2, inf_f16);
|
|
|
|
|
try test__powihf2(-0.0, -3, -inf_f16);
|
|
|
|
|
try test__powihf2(-0.0, -4, inf_f16);
|
|
|
|
|
try test__powihf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), inf_f16); // -0 ^ anything even = +inf
|
|
|
|
|
try test__powihf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -inf_f16); // -0 ^ anything odd = -inf
|
|
|
|
|
try test__powihf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), inf_f16);
|
|
|
|
|
|
|
|
|
|
try test__powihf2(1, -1, 1);
|
|
|
|
|
try test__powihf2(1, -2, 1);
|
|
|
|
|
@@ -103,21 +104,21 @@ test "powihf2" {
|
|
|
|
|
try test__powihf2(1, @bitCast(i32, @as(u32, 0x80000001)), 1);
|
|
|
|
|
try test__powihf2(1, @bitCast(i32, @as(u32, 0x80000000)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powihf2(math.inf_f16, -1, 0);
|
|
|
|
|
try test__powihf2(math.inf_f16, -2, 0);
|
|
|
|
|
try test__powihf2(math.inf_f16, -3, 0);
|
|
|
|
|
try test__powihf2(math.inf_f16, -4, 0);
|
|
|
|
|
try test__powihf2(math.inf_f16, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powihf2(math.inf_f16, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powihf2(math.inf_f16, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powihf2(inf_f16, -1, 0);
|
|
|
|
|
try test__powihf2(inf_f16, -2, 0);
|
|
|
|
|
try test__powihf2(inf_f16, -3, 0);
|
|
|
|
|
try test__powihf2(inf_f16, -4, 0);
|
|
|
|
|
try test__powihf2(inf_f16, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powihf2(inf_f16, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powihf2(inf_f16, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
//
|
|
|
|
|
try test__powihf2(-math.inf_f16, -1, -0.0);
|
|
|
|
|
try test__powihf2(-math.inf_f16, -2, 0);
|
|
|
|
|
try test__powihf2(-math.inf_f16, -3, -0.0);
|
|
|
|
|
try test__powihf2(-math.inf_f16, -4, 0);
|
|
|
|
|
try test__powihf2(-math.inf_f16, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powihf2(-math.inf_f16, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powihf2(-math.inf_f16, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powihf2(-inf_f16, -1, -0.0);
|
|
|
|
|
try test__powihf2(-inf_f16, -2, 0);
|
|
|
|
|
try test__powihf2(-inf_f16, -3, -0.0);
|
|
|
|
|
try test__powihf2(-inf_f16, -4, 0);
|
|
|
|
|
try test__powihf2(-inf_f16, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powihf2(-inf_f16, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powihf2(-inf_f16, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
|
|
|
|
|
try test__powihf2(2, 10, 1024.0);
|
|
|
|
|
try test__powihf2(-2, 10, 1024.0);
|
|
|
|
|
@@ -128,8 +129,8 @@ test "powihf2" {
|
|
|
|
|
try test__powihf2(-2, 14, 16384.0);
|
|
|
|
|
try test__powihf2(2, 15, 32768.0);
|
|
|
|
|
try test__powihf2(-2, 15, -32768.0);
|
|
|
|
|
try test__powihf2(2, 16, math.inf_f16);
|
|
|
|
|
try test__powihf2(-2, 16, math.inf_f16);
|
|
|
|
|
try test__powihf2(2, 16, inf_f16);
|
|
|
|
|
try test__powihf2(-2, 16, inf_f16);
|
|
|
|
|
|
|
|
|
|
try test__powihf2(2, -13, 1.0 / 8192.0);
|
|
|
|
|
try test__powihf2(-2, -13, -1.0 / 8192.0);
|
|
|
|
|
@@ -140,17 +141,18 @@ test "powihf2" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "powisf2" {
|
|
|
|
|
const inf_f32 = math.inf(f32);
|
|
|
|
|
try test__powisf2(0, 0, 1);
|
|
|
|
|
try test__powisf2(1, 0, 1);
|
|
|
|
|
try test__powisf2(1.5, 0, 1);
|
|
|
|
|
try test__powisf2(2, 0, 1);
|
|
|
|
|
try test__powisf2(math.inf_f32, 0, 1);
|
|
|
|
|
try test__powisf2(inf_f32, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(-0.0, 0, 1);
|
|
|
|
|
try test__powisf2(-1, 0, 1);
|
|
|
|
|
try test__powisf2(-1.5, 0, 1);
|
|
|
|
|
try test__powisf2(-2, 0, 1);
|
|
|
|
|
try test__powisf2(-math.inf_f32, 0, 1);
|
|
|
|
|
try test__powisf2(-inf_f32, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(0, 1, 0);
|
|
|
|
|
try test__powisf2(0, 2, 0);
|
|
|
|
|
@@ -173,35 +175,35 @@ test "powisf2" {
|
|
|
|
|
try test__powisf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFE)), 1);
|
|
|
|
|
try test__powisf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFF)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(math.inf_f32, 1, math.inf_f32);
|
|
|
|
|
try test__powisf2(math.inf_f32, 2, math.inf_f32);
|
|
|
|
|
try test__powisf2(math.inf_f32, 3, math.inf_f32);
|
|
|
|
|
try test__powisf2(math.inf_f32, 4, math.inf_f32);
|
|
|
|
|
try test__powisf2(math.inf_f32, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f32);
|
|
|
|
|
try test__powisf2(math.inf_f32, @bitCast(i32, @as(u32, 0x7FFFFFFF)), math.inf_f32);
|
|
|
|
|
try test__powisf2(inf_f32, 1, inf_f32);
|
|
|
|
|
try test__powisf2(inf_f32, 2, inf_f32);
|
|
|
|
|
try test__powisf2(inf_f32, 3, inf_f32);
|
|
|
|
|
try test__powisf2(inf_f32, 4, inf_f32);
|
|
|
|
|
try test__powisf2(inf_f32, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f32);
|
|
|
|
|
try test__powisf2(inf_f32, @bitCast(i32, @as(u32, 0x7FFFFFFF)), inf_f32);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(-math.inf_f32, 1, -math.inf_f32);
|
|
|
|
|
try test__powisf2(-math.inf_f32, 2, math.inf_f32);
|
|
|
|
|
try test__powisf2(-math.inf_f32, 3, -math.inf_f32);
|
|
|
|
|
try test__powisf2(-math.inf_f32, 4, math.inf_f32);
|
|
|
|
|
try test__powisf2(-math.inf_f32, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f32);
|
|
|
|
|
try test__powisf2(-math.inf_f32, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -math.inf_f32);
|
|
|
|
|
try test__powisf2(-inf_f32, 1, -inf_f32);
|
|
|
|
|
try test__powisf2(-inf_f32, 2, inf_f32);
|
|
|
|
|
try test__powisf2(-inf_f32, 3, -inf_f32);
|
|
|
|
|
try test__powisf2(-inf_f32, 4, inf_f32);
|
|
|
|
|
try test__powisf2(-inf_f32, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f32);
|
|
|
|
|
try test__powisf2(-inf_f32, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -inf_f32);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(0, -1, math.inf_f32);
|
|
|
|
|
try test__powisf2(0, -2, math.inf_f32);
|
|
|
|
|
try test__powisf2(0, -3, math.inf_f32);
|
|
|
|
|
try test__powisf2(0, -4, math.inf_f32);
|
|
|
|
|
try test__powisf2(0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f32);
|
|
|
|
|
try test__powisf2(0, @bitCast(i32, @as(u32, 0x80000001)), math.inf_f32);
|
|
|
|
|
try test__powisf2(0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f32);
|
|
|
|
|
try test__powisf2(0, -1, inf_f32);
|
|
|
|
|
try test__powisf2(0, -2, inf_f32);
|
|
|
|
|
try test__powisf2(0, -3, inf_f32);
|
|
|
|
|
try test__powisf2(0, -4, inf_f32);
|
|
|
|
|
try test__powisf2(0, @bitCast(i32, @as(u32, 0x80000002)), inf_f32);
|
|
|
|
|
try test__powisf2(0, @bitCast(i32, @as(u32, 0x80000001)), inf_f32);
|
|
|
|
|
try test__powisf2(0, @bitCast(i32, @as(u32, 0x80000000)), inf_f32);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(-0.0, -1, -math.inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, -2, math.inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, -3, -math.inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, -4, math.inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -math.inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, -1, -inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, -2, inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, -3, -inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, -4, inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -inf_f32);
|
|
|
|
|
try test__powisf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), inf_f32);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(1, -1, 1);
|
|
|
|
|
try test__powisf2(1, -2, 1);
|
|
|
|
|
@@ -211,21 +213,21 @@ test "powisf2" {
|
|
|
|
|
try test__powisf2(1, @bitCast(i32, @as(u32, 0x80000001)), 1);
|
|
|
|
|
try test__powisf2(1, @bitCast(i32, @as(u32, 0x80000000)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(math.inf_f32, -1, 0);
|
|
|
|
|
try test__powisf2(math.inf_f32, -2, 0);
|
|
|
|
|
try test__powisf2(math.inf_f32, -3, 0);
|
|
|
|
|
try test__powisf2(math.inf_f32, -4, 0);
|
|
|
|
|
try test__powisf2(math.inf_f32, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powisf2(math.inf_f32, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powisf2(math.inf_f32, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powisf2(inf_f32, -1, 0);
|
|
|
|
|
try test__powisf2(inf_f32, -2, 0);
|
|
|
|
|
try test__powisf2(inf_f32, -3, 0);
|
|
|
|
|
try test__powisf2(inf_f32, -4, 0);
|
|
|
|
|
try test__powisf2(inf_f32, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powisf2(inf_f32, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powisf2(inf_f32, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(-math.inf_f32, -1, -0.0);
|
|
|
|
|
try test__powisf2(-math.inf_f32, -2, 0);
|
|
|
|
|
try test__powisf2(-math.inf_f32, -3, -0.0);
|
|
|
|
|
try test__powisf2(-math.inf_f32, -4, 0);
|
|
|
|
|
try test__powisf2(-math.inf_f32, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powisf2(-math.inf_f32, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powisf2(-math.inf_f32, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powisf2(-inf_f32, -1, -0.0);
|
|
|
|
|
try test__powisf2(-inf_f32, -2, 0);
|
|
|
|
|
try test__powisf2(-inf_f32, -3, -0.0);
|
|
|
|
|
try test__powisf2(-inf_f32, -4, 0);
|
|
|
|
|
try test__powisf2(-inf_f32, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powisf2(-inf_f32, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powisf2(-inf_f32, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
|
|
|
|
|
try test__powisf2(2.0, 10, 1024.0);
|
|
|
|
|
try test__powisf2(-2, 10, 1024.0);
|
|
|
|
|
@@ -244,17 +246,18 @@ test "powisf2" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "powidf2" {
|
|
|
|
|
const inf_f64 = math.inf(f64);
|
|
|
|
|
try test__powidf2(0, 0, 1);
|
|
|
|
|
try test__powidf2(1, 0, 1);
|
|
|
|
|
try test__powidf2(1.5, 0, 1);
|
|
|
|
|
try test__powidf2(2, 0, 1);
|
|
|
|
|
try test__powidf2(math.inf_f64, 0, 1);
|
|
|
|
|
try test__powidf2(inf_f64, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(-0.0, 0, 1);
|
|
|
|
|
try test__powidf2(-1, 0, 1);
|
|
|
|
|
try test__powidf2(-1.5, 0, 1);
|
|
|
|
|
try test__powidf2(-2, 0, 1);
|
|
|
|
|
try test__powidf2(-math.inf_f64, 0, 1);
|
|
|
|
|
try test__powidf2(-inf_f64, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(0, 1, 0);
|
|
|
|
|
try test__powidf2(0, 2, 0);
|
|
|
|
|
@@ -277,35 +280,35 @@ test "powidf2" {
|
|
|
|
|
try test__powidf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFE)), 1);
|
|
|
|
|
try test__powidf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFF)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(math.inf_f64, 1, math.inf_f64);
|
|
|
|
|
try test__powidf2(math.inf_f64, 2, math.inf_f64);
|
|
|
|
|
try test__powidf2(math.inf_f64, 3, math.inf_f64);
|
|
|
|
|
try test__powidf2(math.inf_f64, 4, math.inf_f64);
|
|
|
|
|
try test__powidf2(math.inf_f64, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f64);
|
|
|
|
|
try test__powidf2(math.inf_f64, @bitCast(i32, @as(u32, 0x7FFFFFFF)), math.inf_f64);
|
|
|
|
|
try test__powidf2(inf_f64, 1, inf_f64);
|
|
|
|
|
try test__powidf2(inf_f64, 2, inf_f64);
|
|
|
|
|
try test__powidf2(inf_f64, 3, inf_f64);
|
|
|
|
|
try test__powidf2(inf_f64, 4, inf_f64);
|
|
|
|
|
try test__powidf2(inf_f64, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f64);
|
|
|
|
|
try test__powidf2(inf_f64, @bitCast(i32, @as(u32, 0x7FFFFFFF)), inf_f64);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(-math.inf_f64, 1, -math.inf_f64);
|
|
|
|
|
try test__powidf2(-math.inf_f64, 2, math.inf_f64);
|
|
|
|
|
try test__powidf2(-math.inf_f64, 3, -math.inf_f64);
|
|
|
|
|
try test__powidf2(-math.inf_f64, 4, math.inf_f64);
|
|
|
|
|
try test__powidf2(-math.inf_f64, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f64);
|
|
|
|
|
try test__powidf2(-math.inf_f64, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -math.inf_f64);
|
|
|
|
|
try test__powidf2(-inf_f64, 1, -inf_f64);
|
|
|
|
|
try test__powidf2(-inf_f64, 2, inf_f64);
|
|
|
|
|
try test__powidf2(-inf_f64, 3, -inf_f64);
|
|
|
|
|
try test__powidf2(-inf_f64, 4, inf_f64);
|
|
|
|
|
try test__powidf2(-inf_f64, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f64);
|
|
|
|
|
try test__powidf2(-inf_f64, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -inf_f64);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(0, -1, math.inf_f64);
|
|
|
|
|
try test__powidf2(0, -2, math.inf_f64);
|
|
|
|
|
try test__powidf2(0, -3, math.inf_f64);
|
|
|
|
|
try test__powidf2(0, -4, math.inf_f64);
|
|
|
|
|
try test__powidf2(0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f64);
|
|
|
|
|
try test__powidf2(0, @bitCast(i32, @as(u32, 0x80000001)), math.inf_f64);
|
|
|
|
|
try test__powidf2(0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f64);
|
|
|
|
|
try test__powidf2(0, -1, inf_f64);
|
|
|
|
|
try test__powidf2(0, -2, inf_f64);
|
|
|
|
|
try test__powidf2(0, -3, inf_f64);
|
|
|
|
|
try test__powidf2(0, -4, inf_f64);
|
|
|
|
|
try test__powidf2(0, @bitCast(i32, @as(u32, 0x80000002)), inf_f64);
|
|
|
|
|
try test__powidf2(0, @bitCast(i32, @as(u32, 0x80000001)), inf_f64);
|
|
|
|
|
try test__powidf2(0, @bitCast(i32, @as(u32, 0x80000000)), inf_f64);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(-0.0, -1, -math.inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, -2, math.inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, -3, -math.inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, -4, math.inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -math.inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, -1, -inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, -2, inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, -3, -inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, -4, inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -inf_f64);
|
|
|
|
|
try test__powidf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), inf_f64);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(1, -1, 1);
|
|
|
|
|
try test__powidf2(1, -2, 1);
|
|
|
|
|
@@ -315,21 +318,21 @@ test "powidf2" {
|
|
|
|
|
try test__powidf2(1, @bitCast(i32, @as(u32, 0x80000001)), 1);
|
|
|
|
|
try test__powidf2(1, @bitCast(i32, @as(u32, 0x80000000)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(math.inf_f64, -1, 0);
|
|
|
|
|
try test__powidf2(math.inf_f64, -2, 0);
|
|
|
|
|
try test__powidf2(math.inf_f64, -3, 0);
|
|
|
|
|
try test__powidf2(math.inf_f64, -4, 0);
|
|
|
|
|
try test__powidf2(math.inf_f64, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powidf2(math.inf_f64, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powidf2(math.inf_f64, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powidf2(inf_f64, -1, 0);
|
|
|
|
|
try test__powidf2(inf_f64, -2, 0);
|
|
|
|
|
try test__powidf2(inf_f64, -3, 0);
|
|
|
|
|
try test__powidf2(inf_f64, -4, 0);
|
|
|
|
|
try test__powidf2(inf_f64, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powidf2(inf_f64, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powidf2(inf_f64, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(-math.inf_f64, -1, -0.0);
|
|
|
|
|
try test__powidf2(-math.inf_f64, -2, 0);
|
|
|
|
|
try test__powidf2(-math.inf_f64, -3, -0.0);
|
|
|
|
|
try test__powidf2(-math.inf_f64, -4, 0);
|
|
|
|
|
try test__powidf2(-math.inf_f64, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powidf2(-math.inf_f64, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powidf2(-math.inf_f64, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powidf2(-inf_f64, -1, -0.0);
|
|
|
|
|
try test__powidf2(-inf_f64, -2, 0);
|
|
|
|
|
try test__powidf2(-inf_f64, -3, -0.0);
|
|
|
|
|
try test__powidf2(-inf_f64, -4, 0);
|
|
|
|
|
try test__powidf2(-inf_f64, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powidf2(-inf_f64, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powidf2(-inf_f64, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
|
|
|
|
|
try test__powidf2(2, 10, 1024.0);
|
|
|
|
|
try test__powidf2(-2, 10, 1024.0);
|
|
|
|
|
@@ -348,17 +351,18 @@ test "powidf2" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "powitf2" {
|
|
|
|
|
const inf_f128 = math.inf(f128);
|
|
|
|
|
try test__powitf2(0, 0, 1);
|
|
|
|
|
try test__powitf2(1, 0, 1);
|
|
|
|
|
try test__powitf2(1.5, 0, 1);
|
|
|
|
|
try test__powitf2(2, 0, 1);
|
|
|
|
|
try test__powitf2(math.inf_f128, 0, 1);
|
|
|
|
|
try test__powitf2(inf_f128, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(-0.0, 0, 1);
|
|
|
|
|
try test__powitf2(-1, 0, 1);
|
|
|
|
|
try test__powitf2(-1.5, 0, 1);
|
|
|
|
|
try test__powitf2(-2, 0, 1);
|
|
|
|
|
try test__powitf2(-math.inf_f128, 0, 1);
|
|
|
|
|
try test__powitf2(-inf_f128, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(0, 1, 0);
|
|
|
|
|
try test__powitf2(0, 2, 0);
|
|
|
|
|
@@ -381,35 +385,35 @@ test "powitf2" {
|
|
|
|
|
try test__powitf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFE)), 1);
|
|
|
|
|
try test__powitf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFF)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(math.inf_f128, 1, math.inf_f128);
|
|
|
|
|
try test__powitf2(math.inf_f128, 2, math.inf_f128);
|
|
|
|
|
try test__powitf2(math.inf_f128, 3, math.inf_f128);
|
|
|
|
|
try test__powitf2(math.inf_f128, 4, math.inf_f128);
|
|
|
|
|
try test__powitf2(math.inf_f128, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f128);
|
|
|
|
|
try test__powitf2(math.inf_f128, @bitCast(i32, @as(u32, 0x7FFFFFFF)), math.inf_f128);
|
|
|
|
|
try test__powitf2(inf_f128, 1, inf_f128);
|
|
|
|
|
try test__powitf2(inf_f128, 2, inf_f128);
|
|
|
|
|
try test__powitf2(inf_f128, 3, inf_f128);
|
|
|
|
|
try test__powitf2(inf_f128, 4, inf_f128);
|
|
|
|
|
try test__powitf2(inf_f128, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f128);
|
|
|
|
|
try test__powitf2(inf_f128, @bitCast(i32, @as(u32, 0x7FFFFFFF)), inf_f128);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(-math.inf_f128, 1, -math.inf_f128);
|
|
|
|
|
try test__powitf2(-math.inf_f128, 2, math.inf_f128);
|
|
|
|
|
try test__powitf2(-math.inf_f128, 3, -math.inf_f128);
|
|
|
|
|
try test__powitf2(-math.inf_f128, 4, math.inf_f128);
|
|
|
|
|
try test__powitf2(-math.inf_f128, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f128);
|
|
|
|
|
try test__powitf2(-math.inf_f128, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -math.inf_f128);
|
|
|
|
|
try test__powitf2(-inf_f128, 1, -inf_f128);
|
|
|
|
|
try test__powitf2(-inf_f128, 2, inf_f128);
|
|
|
|
|
try test__powitf2(-inf_f128, 3, -inf_f128);
|
|
|
|
|
try test__powitf2(-inf_f128, 4, inf_f128);
|
|
|
|
|
try test__powitf2(-inf_f128, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f128);
|
|
|
|
|
try test__powitf2(-inf_f128, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -inf_f128);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(0, -1, math.inf_f128);
|
|
|
|
|
try test__powitf2(0, -2, math.inf_f128);
|
|
|
|
|
try test__powitf2(0, -3, math.inf_f128);
|
|
|
|
|
try test__powitf2(0, -4, math.inf_f128);
|
|
|
|
|
try test__powitf2(0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f128);
|
|
|
|
|
try test__powitf2(0, @bitCast(i32, @as(u32, 0x80000001)), math.inf_f128);
|
|
|
|
|
try test__powitf2(0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f128);
|
|
|
|
|
try test__powitf2(0, -1, inf_f128);
|
|
|
|
|
try test__powitf2(0, -2, inf_f128);
|
|
|
|
|
try test__powitf2(0, -3, inf_f128);
|
|
|
|
|
try test__powitf2(0, -4, inf_f128);
|
|
|
|
|
try test__powitf2(0, @bitCast(i32, @as(u32, 0x80000002)), inf_f128);
|
|
|
|
|
try test__powitf2(0, @bitCast(i32, @as(u32, 0x80000001)), inf_f128);
|
|
|
|
|
try test__powitf2(0, @bitCast(i32, @as(u32, 0x80000000)), inf_f128);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(-0.0, -1, -math.inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, -2, math.inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, -3, -math.inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, -4, math.inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -math.inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, -1, -inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, -2, inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, -3, -inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, -4, inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -inf_f128);
|
|
|
|
|
try test__powitf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), inf_f128);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(1, -1, 1);
|
|
|
|
|
try test__powitf2(1, -2, 1);
|
|
|
|
|
@@ -419,21 +423,21 @@ test "powitf2" {
|
|
|
|
|
try test__powitf2(1, @bitCast(i32, @as(u32, 0x80000001)), 1);
|
|
|
|
|
try test__powitf2(1, @bitCast(i32, @as(u32, 0x80000000)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(math.inf_f128, -1, 0);
|
|
|
|
|
try test__powitf2(math.inf_f128, -2, 0);
|
|
|
|
|
try test__powitf2(math.inf_f128, -3, 0);
|
|
|
|
|
try test__powitf2(math.inf_f128, -4, 0);
|
|
|
|
|
try test__powitf2(math.inf_f128, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powitf2(math.inf_f128, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powitf2(math.inf_f128, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powitf2(inf_f128, -1, 0);
|
|
|
|
|
try test__powitf2(inf_f128, -2, 0);
|
|
|
|
|
try test__powitf2(inf_f128, -3, 0);
|
|
|
|
|
try test__powitf2(inf_f128, -4, 0);
|
|
|
|
|
try test__powitf2(inf_f128, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powitf2(inf_f128, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powitf2(inf_f128, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(-math.inf_f128, -1, -0.0);
|
|
|
|
|
try test__powitf2(-math.inf_f128, -2, 0);
|
|
|
|
|
try test__powitf2(-math.inf_f128, -3, -0.0);
|
|
|
|
|
try test__powitf2(-math.inf_f128, -4, 0);
|
|
|
|
|
try test__powitf2(-math.inf_f128, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powitf2(-math.inf_f128, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powitf2(-math.inf_f128, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powitf2(-inf_f128, -1, -0.0);
|
|
|
|
|
try test__powitf2(-inf_f128, -2, 0);
|
|
|
|
|
try test__powitf2(-inf_f128, -3, -0.0);
|
|
|
|
|
try test__powitf2(-inf_f128, -4, 0);
|
|
|
|
|
try test__powitf2(-inf_f128, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powitf2(-inf_f128, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powitf2(-inf_f128, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
|
|
|
|
|
try test__powitf2(2, 10, 1024.0);
|
|
|
|
|
try test__powitf2(-2, 10, 1024.0);
|
|
|
|
|
@@ -452,17 +456,18 @@ test "powitf2" {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
test "powixf2" {
|
|
|
|
|
const inf_f80 = math.inf(f80);
|
|
|
|
|
try test__powixf2(0, 0, 1);
|
|
|
|
|
try test__powixf2(1, 0, 1);
|
|
|
|
|
try test__powixf2(1.5, 0, 1);
|
|
|
|
|
try test__powixf2(2, 0, 1);
|
|
|
|
|
try test__powixf2(math.inf_f80, 0, 1);
|
|
|
|
|
try test__powixf2(inf_f80, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(-0.0, 0, 1);
|
|
|
|
|
try test__powixf2(-1, 0, 1);
|
|
|
|
|
try test__powixf2(-1.5, 0, 1);
|
|
|
|
|
try test__powixf2(-2, 0, 1);
|
|
|
|
|
try test__powixf2(-math.inf_f80, 0, 1);
|
|
|
|
|
try test__powixf2(-inf_f80, 0, 1);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(0, 1, 0);
|
|
|
|
|
try test__powixf2(0, 2, 0);
|
|
|
|
|
@@ -485,35 +490,35 @@ test "powixf2" {
|
|
|
|
|
try test__powixf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFE)), 1);
|
|
|
|
|
try test__powixf2(1, @bitCast(i32, @as(u32, 0x7FFFFFFF)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(math.inf_f80, 1, math.inf_f80);
|
|
|
|
|
try test__powixf2(math.inf_f80, 2, math.inf_f80);
|
|
|
|
|
try test__powixf2(math.inf_f80, 3, math.inf_f80);
|
|
|
|
|
try test__powixf2(math.inf_f80, 4, math.inf_f80);
|
|
|
|
|
try test__powixf2(math.inf_f80, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f80);
|
|
|
|
|
try test__powixf2(math.inf_f80, @bitCast(i32, @as(u32, 0x7FFFFFFF)), math.inf_f80);
|
|
|
|
|
try test__powixf2(inf_f80, 1, inf_f80);
|
|
|
|
|
try test__powixf2(inf_f80, 2, inf_f80);
|
|
|
|
|
try test__powixf2(inf_f80, 3, inf_f80);
|
|
|
|
|
try test__powixf2(inf_f80, 4, inf_f80);
|
|
|
|
|
try test__powixf2(inf_f80, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f80);
|
|
|
|
|
try test__powixf2(inf_f80, @bitCast(i32, @as(u32, 0x7FFFFFFF)), inf_f80);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(-math.inf_f80, 1, -math.inf_f80);
|
|
|
|
|
try test__powixf2(-math.inf_f80, 2, math.inf_f80);
|
|
|
|
|
try test__powixf2(-math.inf_f80, 3, -math.inf_f80);
|
|
|
|
|
try test__powixf2(-math.inf_f80, 4, math.inf_f80);
|
|
|
|
|
try test__powixf2(-math.inf_f80, @bitCast(i32, @as(u32, 0x7FFFFFFE)), math.inf_f80);
|
|
|
|
|
try test__powixf2(-math.inf_f80, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -math.inf_f80);
|
|
|
|
|
try test__powixf2(-inf_f80, 1, -inf_f80);
|
|
|
|
|
try test__powixf2(-inf_f80, 2, inf_f80);
|
|
|
|
|
try test__powixf2(-inf_f80, 3, -inf_f80);
|
|
|
|
|
try test__powixf2(-inf_f80, 4, inf_f80);
|
|
|
|
|
try test__powixf2(-inf_f80, @bitCast(i32, @as(u32, 0x7FFFFFFE)), inf_f80);
|
|
|
|
|
try test__powixf2(-inf_f80, @bitCast(i32, @as(u32, 0x7FFFFFFF)), -inf_f80);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(0, -1, math.inf_f80);
|
|
|
|
|
try test__powixf2(0, -2, math.inf_f80);
|
|
|
|
|
try test__powixf2(0, -3, math.inf_f80);
|
|
|
|
|
try test__powixf2(0, -4, math.inf_f80);
|
|
|
|
|
try test__powixf2(0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f80);
|
|
|
|
|
try test__powixf2(0, @bitCast(i32, @as(u32, 0x80000001)), math.inf_f80);
|
|
|
|
|
try test__powixf2(0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f80);
|
|
|
|
|
try test__powixf2(0, -1, inf_f80);
|
|
|
|
|
try test__powixf2(0, -2, inf_f80);
|
|
|
|
|
try test__powixf2(0, -3, inf_f80);
|
|
|
|
|
try test__powixf2(0, -4, inf_f80);
|
|
|
|
|
try test__powixf2(0, @bitCast(i32, @as(u32, 0x80000002)), inf_f80);
|
|
|
|
|
try test__powixf2(0, @bitCast(i32, @as(u32, 0x80000001)), inf_f80);
|
|
|
|
|
try test__powixf2(0, @bitCast(i32, @as(u32, 0x80000000)), inf_f80);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(-0.0, -1, -math.inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, -2, math.inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, -3, -math.inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, -4, math.inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), math.inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -math.inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), math.inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, -1, -inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, -2, inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, -3, -inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, -4, inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, @bitCast(i32, @as(u32, 0x80000002)), inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, @bitCast(i32, @as(u32, 0x80000001)), -inf_f80);
|
|
|
|
|
try test__powixf2(-0.0, @bitCast(i32, @as(u32, 0x80000000)), inf_f80);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(1, -1, 1);
|
|
|
|
|
try test__powixf2(1, -2, 1);
|
|
|
|
|
@@ -523,21 +528,21 @@ test "powixf2" {
|
|
|
|
|
try test__powixf2(1, @bitCast(i32, @as(u32, 0x80000001)), 1);
|
|
|
|
|
try test__powixf2(1, @bitCast(i32, @as(u32, 0x80000000)), 1);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(math.inf_f80, -1, 0);
|
|
|
|
|
try test__powixf2(math.inf_f80, -2, 0);
|
|
|
|
|
try test__powixf2(math.inf_f80, -3, 0);
|
|
|
|
|
try test__powixf2(math.inf_f80, -4, 0);
|
|
|
|
|
try test__powixf2(math.inf_f80, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powixf2(math.inf_f80, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powixf2(math.inf_f80, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powixf2(inf_f80, -1, 0);
|
|
|
|
|
try test__powixf2(inf_f80, -2, 0);
|
|
|
|
|
try test__powixf2(inf_f80, -3, 0);
|
|
|
|
|
try test__powixf2(inf_f80, -4, 0);
|
|
|
|
|
try test__powixf2(inf_f80, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powixf2(inf_f80, @bitCast(i32, @as(u32, 0x80000001)), 0);
|
|
|
|
|
try test__powixf2(inf_f80, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(-math.inf_f80, -1, -0.0);
|
|
|
|
|
try test__powixf2(-math.inf_f80, -2, 0);
|
|
|
|
|
try test__powixf2(-math.inf_f80, -3, -0.0);
|
|
|
|
|
try test__powixf2(-math.inf_f80, -4, 0);
|
|
|
|
|
try test__powixf2(-math.inf_f80, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powixf2(-math.inf_f80, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powixf2(-math.inf_f80, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
try test__powixf2(-inf_f80, -1, -0.0);
|
|
|
|
|
try test__powixf2(-inf_f80, -2, 0);
|
|
|
|
|
try test__powixf2(-inf_f80, -3, -0.0);
|
|
|
|
|
try test__powixf2(-inf_f80, -4, 0);
|
|
|
|
|
try test__powixf2(-inf_f80, @bitCast(i32, @as(u32, 0x80000002)), 0);
|
|
|
|
|
try test__powixf2(-inf_f80, @bitCast(i32, @as(u32, 0x80000001)), -0.0);
|
|
|
|
|
try test__powixf2(-inf_f80, @bitCast(i32, @as(u32, 0x80000000)), 0);
|
|
|
|
|
|
|
|
|
|
try test__powixf2(2, 10, 1024.0);
|
|
|
|
|
try test__powixf2(-2, 10, 1024.0);
|
|
|
|
|
|