From d4dfe8aca169685a173537c89842a4a0343b5c4d Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Mon, 24 Feb 2014 17:52:49 +0100 Subject: [PATCH] pet_not: handle NaN input Signed-off-by: Sven Verdoolaege --- aff.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/aff.c b/aff.c index 37eeb7b..45208e1 100644 --- a/aff.c +++ b/aff.c @@ -101,11 +101,22 @@ __isl_give isl_pw_aff *pet_and(__isl_take isl_pw_aff *lhs, } /* Return "!pa", defined on the domain of "pa". + * + * If "pa" involves any NaN, then return NaN. */ __isl_give isl_pw_aff *pet_not(__isl_take isl_pw_aff *pa) { isl_set *cond, *dom; + if (!pa) + return NULL; + if (isl_pw_aff_involves_nan(pa)) { + isl_space *space = isl_pw_aff_get_domain_space(pa); + isl_local_space *ls = isl_local_space_from_space(space); + isl_pw_aff_free(pa); + return isl_pw_aff_nan_on_domain(ls); + } + dom = isl_pw_aff_domain(isl_pw_aff_copy(pa)); cond = isl_pw_aff_zero_set(pa); pa = indicator_function(cond, dom); -- 2.11.4.GIT