From d09a83f613c1d06442ed920ec55a0e5eedacb422 Mon Sep 17 00:00:00 2001 From: nsz Date: Mon, 19 Mar 2012 00:59:16 +0100 Subject: [PATCH] fmal bug fix: nan input should not raise exception --- src/math/fmal.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/math/fmal.c b/src/math/fmal.c index 3944c292..cbaf46eb 100644 --- a/src/math/fmal.c +++ b/src/math/fmal.c @@ -173,14 +173,14 @@ long double fmal(long double x, long double y, long double z) * return values here are crucial in handling special cases involving * infinities, NaNs, overflows, and signed zeroes correctly. */ - if (x == 0.0 || y == 0.0) - return (x * y + z); - if (z == 0.0) - return (x * y); if (!isfinite(x) || !isfinite(y)) return (x * y + z); if (!isfinite(z)) return (z); + if (x == 0.0 || y == 0.0) + return (x * y + z); + if (z == 0.0) + return (x * y); xs = frexpl(x, &ex); ys = frexpl(y, &ey); -- 2.20.1