add isl_pw_*_gist_params
authorSven Verdoolaege <skimo@kotnet.org>
Wed, 2 Nov 2011 11:39:50 +0000 (12:39 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 2 Nov 2011 15:35:37 +0000 (16:35 +0100)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/aff.h
include/isl/polynomial.h
isl_pw_templ.c

index b7cf661..096ac80 100644 (file)
@@ -2856,6 +2856,9 @@ Operations include
                __isl_take isl_set *context);
        __isl_give isl_aff *isl_aff_gist(__isl_take isl_aff *aff,
                __isl_take isl_set *context);
+       __isl_give isl_pw_aff *isl_pw_aff_gist_params(
+               __isl_take isl_pw_aff *pwaff,
+               __isl_take isl_set *context);
        __isl_give isl_pw_aff *isl_pw_aff_gist(
                __isl_take isl_pw_aff *pwaff,
                __isl_take isl_set *context);
@@ -3122,6 +3125,9 @@ Operations include
        __isl_give isl_multi_aff *isl_multi_aff_gist(
                __isl_take isl_multi_aff *maff,
                __isl_take isl_set *context);
+       __isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist_params(
+               __isl_take isl_pw_multi_aff *pma,
+               __isl_take isl_set *set);
        __isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist(
                __isl_take isl_pw_multi_aff *pma,
                __isl_take isl_set *set);
@@ -3552,6 +3558,9 @@ obviously equal, use
                __isl_take isl_qpolynomial *qp,
                __isl_take isl_set *context);
 
+       __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist_params(
+               __isl_take isl_pw_qpolynomial *pwqp,
+               __isl_take isl_set *context);
        __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist(
                __isl_take isl_pw_qpolynomial *pwqp,
                __isl_take isl_set *context);
@@ -3749,6 +3758,9 @@ obviously equal, use
        __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist(
                __isl_take isl_pw_qpolynomial_fold *pwf,
                __isl_take isl_set *context);
+       __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist_params(
+               __isl_take isl_pw_qpolynomial_fold *pwf,
+               __isl_take isl_set *context);
 
        __isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_gist(
                __isl_take isl_union_pw_qpolynomial_fold *upwf,
index 63418df..dfa8d22 100644 (file)
@@ -182,6 +182,8 @@ __isl_give isl_pw_aff *isl_pw_aff_drop_dims(__isl_take isl_pw_aff *pwaff,
 __isl_give isl_pw_aff *isl_pw_aff_coalesce(__isl_take isl_pw_aff *pwqp);
 __isl_give isl_pw_aff *isl_pw_aff_gist(__isl_take isl_pw_aff *pwaff,
        __isl_take isl_set *context);
+__isl_give isl_pw_aff *isl_pw_aff_gist_params(__isl_take isl_pw_aff *pwaff,
+       __isl_take isl_set *context);
 
 int isl_pw_aff_foreach_piece(__isl_keep isl_pw_aff *pwaff,
        int (*fn)(__isl_take isl_set *set, __isl_take isl_aff *aff,
@@ -315,6 +317,8 @@ __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_params(
 __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain(
        __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
 
+__isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist_params(
+       __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
 __isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist(
        __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
 
index c4ae666..509f4de 100644 (file)
@@ -249,6 +249,8 @@ __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_coalesce(
        __isl_take isl_pw_qpolynomial *pwqp);
 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist(
        __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context);
+__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist_params(
+       __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context);
 
 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_split_periods(
        __isl_take isl_pw_qpolynomial *pwqp, int max_periods);
@@ -406,6 +408,8 @@ __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_coalesce(
        __isl_take isl_pw_qpolynomial_fold *pwf);
 __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist(
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context);
+__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist_params(
+       __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context);
 
 __isl_give isl_qpolynomial *isl_pw_qpolynomial_fold_max(
        __isl_take isl_pw_qpolynomial_fold *pwf);
index f254b0c..27da2c4 100644 (file)
@@ -724,7 +724,11 @@ __isl_give PW *FN(PW,intersect_params)(__isl_take PW *pw,
 }
 
 static __isl_give PW *FN(PW,gist_aligned)(__isl_take PW *pw,
-       __isl_take isl_set *context)
+       __isl_take isl_set *context,
+       __isl_give EL *(*fn_el)(__isl_take EL *el,
+                                   __isl_take isl_set *set),
+       __isl_give isl_set *(*fn_dom)(__isl_take isl_set *set,
+                                   __isl_take isl_basic_set *bset))
 {
        int i;
        isl_basic_set *hull = NULL;
@@ -755,10 +759,9 @@ static __isl_give PW *FN(PW,gist_aligned)(__isl_take PW *pw,
                                                 isl_set_copy(context));
                if (!pw->p[i].set)
                        goto error;
-               pw->p[i].FIELD = FN(EL,gist)(pw->p[i].FIELD,
+               pw->p[i].FIELD = fn_el(pw->p[i].FIELD,
                                             isl_set_copy(pw->p[i].set));
-               pw->p[i].set = isl_set_gist_basic_set(pw->p[i].set,
-                                               isl_basic_set_copy(hull));
+               pw->p[i].set = fn_dom(pw->p[i].set, isl_basic_set_copy(hull));
                if (!pw->p[i].set)
                        goto error;
                if (isl_set_plain_is_empty(pw->p[i].set)) {
@@ -781,9 +784,31 @@ error:
        return NULL;
 }
 
+static __isl_give PW *FN(PW,gist_domain_aligned)(__isl_take PW *pw,
+       __isl_take isl_set *set)
+{
+       return FN(PW,gist_aligned)(pw, set, &FN(EL,gist),
+                                       &isl_set_gist_basic_set);
+}
+
 __isl_give PW *FN(PW,gist)(__isl_take PW *pw, __isl_take isl_set *context)
 {
-       return FN(PW,align_params_pw_set_and)(pw, context, &FN(PW,gist_aligned));
+       return FN(PW,align_params_pw_set_and)(pw, context,
+                                               &FN(PW,gist_domain_aligned));
+}
+
+static __isl_give PW *FN(PW,gist_params_aligned)(__isl_take PW *pw,
+       __isl_take isl_set *set)
+{
+       return FN(PW,gist_aligned)(pw, set, &FN(EL,gist_params),
+                                       &isl_set_gist_params_basic_set);
+}
+
+__isl_give PW *FN(PW,gist_params)(__isl_take PW *pw,
+       __isl_take isl_set *context)
+{
+       return FN(PW,align_params_pw_set_and)(pw, context,
+                                               &FN(PW,gist_params_aligned));
 }
 
 __isl_give PW *FN(PW,coalesce)(__isl_take PW *pw)