isl_transitive_closure.c: avoid use of an unitialized variable on an error path
[platform/upstream/isl.git] / isl_polynomial_private.h
index 0c41c1b..8f6a7b7 100644 (file)
@@ -1,9 +1,10 @@
 #include <stdio.h>
-#include <isl_div.h>
-#include <isl_map.h>
-#include <isl_mat.h>
+#include <isl/div.h>
+#include <isl/map.h>
+#include <isl/mat.h>
 #include <isl_morph.h>
-#include <isl_polynomial.h>
+#include <isl/polynomial.h>
+#include <isl_reordering.h>
 
 struct isl_upoly {
        int ref;
@@ -23,7 +24,7 @@ struct isl_upoly_rec {
        int n;
 
        size_t size;
-       struct isl_upoly *p[1];
+       struct isl_upoly *p[];
 };
 
 struct isl_qpolynomial {
@@ -82,6 +83,7 @@ struct isl_pw_qpolynomial_fold_piece {
 struct isl_pw_qpolynomial_fold {
        int ref;
 
+       enum isl_fold type;
        struct isl_dim *dim;
 
        int n;
@@ -107,7 +109,8 @@ __isl_keep struct isl_upoly_rec *isl_upoly_as_rec(__isl_keep struct isl_upoly *u
 
 __isl_give struct isl_upoly *isl_upoly_sum(__isl_take struct isl_upoly *up1,
        __isl_take struct isl_upoly *up2);
-__isl_give struct isl_upoly *isl_upoly_neg(__isl_take struct isl_upoly *up);
+__isl_give struct isl_upoly *isl_upoly_mul_isl_int(
+       __isl_take struct isl_upoly *up, isl_int v);
 
 __isl_give isl_qpolynomial *isl_qpolynomial_alloc(__isl_take isl_dim *dim,
        unsigned n_div, __isl_take struct isl_upoly *up);
@@ -116,7 +119,7 @@ __isl_give isl_qpolynomial *isl_qpolynomial_dup(__isl_keep isl_qpolynomial *qp);
 
 __isl_give isl_qpolynomial *isl_qpolynomial_cst(__isl_take isl_dim *dim,
        isl_int v);
-__isl_give isl_qpolynomial *isl_qpolynomial_pow(__isl_take isl_dim *dim,
+__isl_give isl_qpolynomial *isl_qpolynomial_var_pow(__isl_take isl_dim *dim,
        int pos, int power);
 __isl_give isl_qpolynomial *isl_qpolynomial_div_pow(__isl_take isl_div *div,
        int power);
@@ -156,6 +159,8 @@ int isl_pw_qpolynomial_is_one(__isl_keep isl_pw_qpolynomial *pwqp);
 __isl_give isl_qpolynomial *isl_qpolynomial_opt_on_domain(
        __isl_take isl_qpolynomial *qp, __isl_take isl_set *set, int max);
 
+enum isl_fold isl_fold_type_negate(enum isl_fold type);
+
 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_cow(
        __isl_take isl_qpolynomial_fold *fold);
 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_dup(
@@ -197,3 +202,14 @@ __isl_give isl_qpolynomial *isl_qpolynomial_substitute_equalities(
        __isl_take isl_qpolynomial *qp, __isl_take isl_basic_set *eq);
 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_substitute_equalities(
        __isl_take isl_qpolynomial_fold *fold, __isl_take isl_basic_set *eq);
+__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist(
+       __isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context);
+
+__isl_give isl_qpolynomial *isl_qpolynomial_realign(
+       __isl_take isl_qpolynomial *qp, __isl_take isl_reordering *r);
+__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_realign(
+       __isl_take isl_qpolynomial_fold *fold, __isl_take isl_reordering *r);
+__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_realign(
+       __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_reordering *r);
+__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_realign(
+       __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_reordering *r);