diff --git a/extra/f16_decompress.py b/extra/f16_decompress.py index 26bad9b844..93759ce8c0 100644 --- a/extra/f16_decompress.py +++ b/extra/f16_decompress.py @@ -5,10 +5,10 @@ def bit_extract(x: Tensor, e: int, s: int) -> Tensor: return (x >> s) & mask def u16_to_f16(x: Tensor) -> Tensor: - sign = bit_extract(x, 15, 15).float() + sign = bit_extract(x, 15, 15).bool() exponent = bit_extract(x, 14, 10).float() fraction = bit_extract(x, 9, 0).float() - return sign.where(-1, 1) * exponent.where((exponent - 15.0).exp2() * (1 + fraction / 1024.0), 6.103515625e-5 * (fraction / 1024.0)) + return sign.where(-1, 1) * exponent.bool().where((exponent - 15.0).exp2() * (1 + fraction / 1024.0), 6.103515625e-5 * (fraction / 1024.0)) def u32_to_f16(oo: Tensor) -> Tensor: f1 = u16_to_f16(oo>>16)