From 9683bd62414604d3bd56cf6bd7be8f54aa31e7d3 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Thu, 14 Mar 2024 00:57:15 +0100 Subject: math: fix fma(x,y,0) when x*y rounds to -0 if x!=0, y!=0, z==0 then fma(x,y,z) == x*y in all rounding modes, while adding z can ruin the sign of 0 if x*y rounds to -0. --- src/math/fma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/math') diff --git a/src/math/fma.c b/src/math/fma.c index 0c6f90c9..adfadca8 100644 --- a/src/math/fma.c +++ b/src/math/fma.c @@ -53,7 +53,7 @@ double fma(double x, double y, double z) return x*y + z; if (nz.e >= ZEROINFNAN) { if (nz.e > ZEROINFNAN) /* z==0 */ - return x*y + z; + return x*y; return z; } -- cgit v1.2.1