Computes 2^x
pub fn exp2(x: f128) callconv(.c) f128
pub fn exp2(x: f128) callconv(.c) f128 {
if (!math.isFinite(x)) {
if (math.isNan(x)) {
if (math.isSignalNan(x)) math.raiseInvalid();
return math.nan(f128);
}
return if (math.signbit(x)) 0 else x;
}
if (@abs(x) > 17000) {
if (math.signbit(x)) {
math.raiseUnderflow();
return 0;
} else {
math.raiseOverflow();
return math.inf(f128);
}
}
if (@abs(x) < 0x1p-114 * math.log2e)
return 1 + x;
return proc1(cfg_2, x);
}