| ... | @@ -61,24 +61,36 @@ pub const f16_toint = 1.0 / f16_epsilon; | ... | @@ -61,24 +61,36 @@ pub const f16_toint = 1.0 / f16_epsilon; |
| 61 | pub const nan_u16 = @as(u16, 0x7C01); | 61 | pub const nan_u16 = @as(u16, 0x7C01); |
| 62 | pub const nan_f16 = @bitCast(f16, nan_u16); | 62 | pub const nan_f16 = @bitCast(f16, nan_u16); |
| 63 | | 63 | |
| | 64 | pub const qnan_u16 = @as(u16, 0x7E00); |
| | 65 | pub const qnan_f16 = @bitCast(f16, qnan_u16); |
| | 66 | |
| 64 | pub const inf_u16 = @as(u16, 0x7C00); | 67 | pub const inf_u16 = @as(u16, 0x7C00); |
| 65 | pub const inf_f16 = @bitCast(f16, inf_u16); | 68 | pub const inf_f16 = @bitCast(f16, inf_u16); |
| 66 | | 69 | |
| 67 | pub const nan_u32 = @as(u32, 0x7F800001); | 70 | pub const nan_u32 = @as(u32, 0x7F800001); |
| 68 | pub const nan_f32 = @bitCast(f32, nan_u32); | 71 | pub const nan_f32 = @bitCast(f32, nan_u32); |
| 69 | | 72 | |
| | 73 | pub const qnan_u32 = @as(u32, 0x7FC00000); |
| | 74 | pub const qnan_f32 = @bitCast(f32, qnan_u32); |
| | 75 | |
| 70 | pub const inf_u32 = @as(u32, 0x7F800000); | 76 | pub const inf_u32 = @as(u32, 0x7F800000); |
| 71 | pub const inf_f32 = @bitCast(f32, inf_u32); | 77 | pub const inf_f32 = @bitCast(f32, inf_u32); |
| 72 | | 78 | |
| 73 | pub const nan_u64 = @as(u64, 0x7FF << 52) | 1; | 79 | pub const nan_u64 = @as(u64, 0x7FF << 52) | 1; |
| 74 | pub const nan_f64 = @bitCast(f64, nan_u64); | 80 | pub const nan_f64 = @bitCast(f64, nan_u64); |
| 75 | | 81 | |
| | 82 | pub const qnan_u64 = @as(u64, 0x7ff8000000000000); |
| | 83 | pub const qnan_f64 = @bitCast(f64, qnan_u64); |
| | 84 | |
| 76 | pub const inf_u64 = @as(u64, 0x7FF << 52); | 85 | pub const inf_u64 = @as(u64, 0x7FF << 52); |
| 77 | pub const inf_f64 = @bitCast(f64, inf_u64); | 86 | pub const inf_f64 = @bitCast(f64, inf_u64); |
| 78 | | 87 | |
| 79 | pub const nan_u128 = @as(u128, 0x7fff0000000000000000000000000001); | 88 | pub const nan_u128 = @as(u128, 0x7fff0000000000000000000000000001); |
| 80 | pub const nan_f128 = @bitCast(f128, nan_u128); | 89 | pub const nan_f128 = @bitCast(f128, nan_u128); |
| 81 | | 90 | |
| | 91 | pub const qnan_u128 = @as(u128, 0x7fff8000000000000000000000000000); |
| | 92 | pub const qnan_f128 = @bitCast(f128, qnan_u128); |
| | 93 | |
| 82 | pub const inf_u128 = @as(u128, 0x7fff0000000000000000000000000000); | 94 | pub const inf_u128 = @as(u128, 0x7fff0000000000000000000000000000); |
| 83 | pub const inf_f128 = @bitCast(f128, inf_u128); | 95 | pub const inf_f128 = @bitCast(f128, inf_u128); |
| 84 | | 96 | |
| ... | @@ -670,13 +682,12 @@ fn testRem() void { | ... | @@ -670,13 +682,12 @@ fn testRem() void { |
| 670 | | 682 | |
| 671 | /// Returns the absolute value of the integer parameter. | 683 | /// Returns the absolute value of the integer parameter. |
| 672 | /// Result is an unsigned integer. | 684 | /// Result is an unsigned integer. |
| 673 | pub fn absCast(x: var) switch(@typeInfo(@TypeOf(x))) { | 685 | pub fn absCast(x: var) switch (@typeInfo(@TypeOf(x))) { |
| 674 | .ComptimeInt => comptime_int, | 686 | .ComptimeInt => comptime_int, |
| 675 | .Int => |intInfo| std.meta.IntType(false, intInfo.bits), | 687 | .Int => |intInfo| std.meta.IntType(false, intInfo.bits), |
| 676 | else => @compileError("absCast only accepts integers"), | 688 | else => @compileError("absCast only accepts integers"), |
| 677 | } | 689 | } { |
| 678 | { | 690 | switch (@typeInfo(@TypeOf(x))) { |
| 679 | switch(@typeInfo(@TypeOf(x))) { | | |
| 680 | .ComptimeInt => { | 691 | .ComptimeInt => { |
| 681 | if (x < 0) { | 692 | if (x < 0) { |
| 682 | return -x; | 693 | return -x; |