add isl_pw_multi_aff_from_multi_aff
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 20 Mar 2012 12:23:21 +0000 (13:23 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Sun, 6 May 2012 12:33:04 +0000 (14:33 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/aff.h
isl_aff.c

index 593572f..dcc1161 100644 (file)
@@ -3212,7 +3212,8 @@ following function.
 An empty piecewise multiple quasi affine expression (one with no cells),
 the zero piecewise multiple quasi affine expression (with value zero
 for each output dimension) or
 An empty piecewise multiple quasi affine expression (one with no cells),
 the zero piecewise multiple quasi affine expression (with value zero
 for each output dimension) or
-a piecewise multiple quasi affine expression with a single cell can
+a piecewise multiple quasi affine expression with a single cell (with
+either a universe or a specified domain) can
 be created using the following functions.
 
        #include <isl/aff.h>
 be created using the following functions.
 
        #include <isl/aff.h>
@@ -3220,6 +3221,9 @@ be created using the following functions.
                __isl_take isl_space *space);
        __isl_give isl_multi_aff *isl_multi_aff_zero(
                __isl_take isl_space *space);
                __isl_take isl_space *space);
        __isl_give isl_multi_aff *isl_multi_aff_zero(
                __isl_take isl_space *space);
+       __isl_give isl_pw_multi_aff *
+       isl_pw_multi_aff_from_multi_aff(
+               __isl_take isl_multi_aff *ma);
        __isl_give isl_pw_multi_aff *isl_pw_multi_aff_alloc(
                __isl_take isl_set *set,
                __isl_take isl_multi_aff *maff);
        __isl_give isl_pw_multi_aff *isl_pw_multi_aff_alloc(
                __isl_take isl_set *set,
                __isl_take isl_multi_aff *maff);
index 7f142dc..4ef0078 100644 (file)
@@ -286,6 +286,8 @@ __isl_give isl_multi_aff *isl_multi_aff_read_from_str(isl_ctx *ctx,
                const char *str);
 void isl_multi_aff_dump(__isl_keep isl_multi_aff *maff);
 
                const char *str);
 void isl_multi_aff_dump(__isl_keep isl_multi_aff *maff);
 
+__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_multi_aff(
+       __isl_take isl_multi_aff *ma);
 __isl_give isl_pw_multi_aff *isl_pw_multi_aff_alloc(__isl_take isl_set *set,
        __isl_take isl_multi_aff *maff);
 __isl_give isl_pw_multi_aff *isl_pw_multi_aff_copy(
 __isl_give isl_pw_multi_aff *isl_pw_multi_aff_alloc(__isl_take isl_set *set,
        __isl_take isl_multi_aff *maff);
 __isl_give isl_pw_multi_aff *isl_pw_multi_aff_copy(
index 8ddd78c..ae72c2e 100644 (file)
--- a/isl_aff.c
+++ b/isl_aff.c
@@ -2114,6 +2114,16 @@ __isl_give isl_multi_aff *isl_multi_aff_zero(__isl_take isl_space *space)
        return ma;
 }
 
        return ma;
 }
 
+/* Create an isl_pw_multi_aff with the given isl_multi_aff on a universe
+ * domain.
+ */
+__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_multi_aff(
+       __isl_take isl_multi_aff *ma)
+{
+       isl_set *dom = isl_set_universe(isl_multi_aff_get_domain_space(ma));
+       return isl_pw_multi_aff_alloc(dom, ma);
+}
+
 __isl_give isl_multi_aff *isl_multi_aff_add(__isl_take isl_multi_aff *maff1,
        __isl_take isl_multi_aff *maff2)
 {
 __isl_give isl_multi_aff *isl_multi_aff_add(__isl_take isl_multi_aff *maff1,
        __isl_take isl_multi_aff *maff2)
 {