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