From caca96b320274868d0cfed9d988c5cbb8506206d Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Sat, 9 Jul 2011 11:55:23 +0200 Subject: [PATCH] add isl_pw_aff_floor Signed-off-by: Sven Verdoolaege --- doc/user.pod | 2 ++ include/isl/aff.h | 1 + isl_aff.c | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/doc/user.pod b/doc/user.pod index b3f226af..72662fd4 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -2355,6 +2355,8 @@ Operations include __isl_take isl_pw_aff *pwaff); __isl_give isl_aff *isl_aff_ceil(__isl_take isl_aff *aff); __isl_give isl_aff *isl_aff_floor(__isl_take isl_aff *aff); + __isl_give isl_pw_aff *isl_pw_aff_floor( + __isl_take isl_pw_aff *pwaff); __isl_give isl_aff *isl_aff_scale(__isl_take isl_aff *aff, isl_int f); __isl_give isl_aff *isl_aff_scale_down(__isl_take isl_aff *aff, diff --git a/include/isl/aff.h b/include/isl/aff.h index 4c6e9f7a..1f3cdbfe 100644 --- a/include/isl/aff.h +++ b/include/isl/aff.h @@ -110,6 +110,7 @@ __isl_give isl_set *isl_pw_aff_domain(__isl_take isl_pw_aff *pwaff); __isl_give isl_pw_aff *isl_pw_aff_add(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2); __isl_give isl_pw_aff *isl_pw_aff_neg(__isl_take isl_pw_aff *pwaff); +__isl_give isl_pw_aff *isl_pw_aff_floor(__isl_take isl_pw_aff *pwaff); __isl_give isl_pw_aff *isl_pw_aff_scale_down(__isl_take isl_pw_aff *pwaff, isl_int f); diff --git a/isl_aff.c b/isl_aff.c index ffca8748..9acf52c7 100644 --- a/isl_aff.c +++ b/isl_aff.c @@ -1232,3 +1232,22 @@ __isl_give isl_pw_aff *isl_pw_aff_scale_down(__isl_take isl_pw_aff *pwaff, return pwaff; } + +__isl_give isl_pw_aff *isl_pw_aff_floor(__isl_take isl_pw_aff *pwaff) +{ + int i; + + pwaff = isl_pw_aff_cow(pwaff); + if (!pwaff) + return NULL; + if (pwaff->n == 0) + return pwaff; + + for (i = 0; i < pwaff->n; ++i) { + pwaff->p[i].aff = isl_aff_floor(pwaff->p[i].aff); + if (!pwaff->p[i].aff) + return isl_pw_aff_free(pwaff); + } + + return pwaff; +} -- 2.11.4.GIT