diff options
Diffstat (limited to 'src/math/fmal.c')
-rw-r--r-- | src/math/fmal.c | 8 |
1 files 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); |