From db87a4c3abf99af95d5dfe27f77b6815ec27a4f4 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Mon, 12 Nov 2012 20:49:27 +0100 Subject: [PATCH] math/gen: fix fma fenv flags on nan --- src/math/gen/mp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/math/gen/mp.c b/src/math/gen/mp.c index 48492c1..172b454 100644 --- a/src/math/gen/mp.c +++ b/src/math/gen/mp.c @@ -123,7 +123,7 @@ static void genf(struct t *p, mpfr_t my, int t, int r) t = adjust(mr, my, t, r); p->y = mpfr_get_flt(mr, r); - p->e = eflags(isnan(p->x) || isnan(p->x2)); + p->e = eflags(isnan(p->x) || isnan(p->x2) || isnan(p->x3)); i = eulpf(p->y); if (!isfinite(p->y)) { p->dy = 0; @@ -193,7 +193,7 @@ static void gend(struct t *p, mpfr_t my, int t, int r) t = adjust(mr, my, t, r); p->y = mpfr_get_d(mr, r); - p->e = eflags(isnan(p->x) || isnan(p->x2)); + p->e = eflags(isnan(p->x) || isnan(p->x2) || isnan(p->x3)); i = eulp(p->y); if (!isfinite(p->y)) { p->dy = 0; @@ -268,7 +268,7 @@ static void genl(struct t *p, mpfr_t my, int t, int r) t = adjust(mr, my, t, r); p->y = mpfr_get_ld(mr, r); - p->e = eflags(isnan(p->x) || isnan(p->x2)); + p->e = eflags(isnan(p->x) || isnan(p->x2) || isnan(p->x3)); i = eulpl(p->y); if (!isfinite(p->y)) { p->dy = 0; -- 2.20.1