pub fn signExponent(x: anytype) u16 x22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 pub fn signExponent(x: anytype) u16 {
const bit_width = bitWidth(x);
switch (bit_width) {
80 => {
const bits: U80 = @bitCast(x);
return @intCast(bits >> 64);
},
128 => {
const bits: u128 = @bitCast(x);
return @intCast(bits >> 112);
},
// `c_longdouble` can have <80 bits on some targets, we want to error on that
else => @compileError(std.fmt.comptimePrint("`signExponent` supports floats of only `80` and `128` bit width, got bit width: {d}", .{bit_width})),
}
}
Returns the sign + exponent bits of a
long double.