From: Sven Verdoolaege Date: Sat, 9 Jul 2011 09:55:23 +0000 (+0200) Subject: add isl_pw_aff_floor X-Git-Tag: isl-0.07~19 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=caca96b320274868d0cfed9d988c5cbb8506206d;p=platform%2Fupstream%2Fisl.git add isl_pw_aff_floor Signed-off-by: Sven Verdoolaege --- diff --git a/doc/user.pod b/doc/user.pod index b3f226a..72662fd 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 4c6e9f7..1f3cdbf 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 ffca874..9acf52c 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; +}