From 7620089901827aa2df6108d7d1d7b16af4dae024 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Mon, 4 Dec 2023 13:03:59 -0800 Subject: [PATCH] Improved Float8ToHalf [skip ci] --- src/half.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/half.c b/src/half.c index 622ee5c..9392d9a 100644 --- a/src/half.c +++ b/src/half.c @@ -305,7 +305,15 @@ static half Float8ToHalf(double num) { /* TODO Convert directly for greater accuracy */ - return Float4ToHalf((float) num); + half result = Float4ToHalfUnchecked((float) num); + + /* TODO Perform checks without HalfToFloat4 */ + if (unlikely(isinf(HalfToFloat4(result))) && !isinf(num)) + float_overflow_error(); + if (unlikely(HalfToFloat4(result) == 0.0f) && num != 0.0) + float_underflow_error(); + + return result; } /*