浏览代码

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.
Szabolcs Nagy 1 年之前
父节点
当前提交
9683bd6241
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/math/fma.c

+ 1 - 1
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;
 	}