isl_map_identity: take dimension specification of map as input
[platform/upstream/isl.git] / isl_constraint.c
index 9714842..9a8050c 100644 (file)
  * ZAC des vignes, 4 rue Jacques Monod, 91893 Orsay, France 
  */
 
-#include <isl_constraint.h>
+#include <isl_map_private.h>
+#include <isl/constraint.h>
 #include <isl_dim_private.h>
-#include "isl_seq.h"
-#include "isl_map_private.h"
+#include <isl/seq.h>
 
 static unsigned n(struct isl_constraint *c, enum isl_dim_type type)
 {
@@ -357,6 +357,14 @@ void isl_constraint_set_constant(struct isl_constraint *constraint, isl_int v)
        isl_int_set(constraint->line[0][0], v);
 }
 
+void isl_constraint_set_constant_si(__isl_keep isl_constraint *constraint,
+       int v)
+{
+       if (!constraint)
+               return;
+       isl_int_set_si(constraint->line[0][0], v);
+}
+
 void isl_constraint_set_coefficient(struct isl_constraint *constraint,
        enum isl_dim_type type, int pos, isl_int v)
 {
@@ -367,6 +375,16 @@ void isl_constraint_set_coefficient(struct isl_constraint *constraint,
        isl_int_set(constraint->line[0][offset(constraint, type) + pos], v);
 }
 
+void isl_constraint_set_coefficient_si(__isl_keep isl_constraint *constraint,
+       enum isl_dim_type type, int pos, int v)
+{
+       if (!constraint)
+               return;
+
+       isl_assert(constraint->ctx, pos < n(constraint, type), return);
+       isl_int_set_si(constraint->line[0][offset(constraint, type) + pos], v);
+}
+
 void isl_constraint_clear(struct isl_constraint *constraint)
 {
        unsigned total;
@@ -876,7 +894,7 @@ int isl_basic_set_foreach_bound_pair(__isl_keep isl_basic_set *bset,
                lower = isl_basic_set_constraint(isl_basic_set_copy(bset),
                                                &bset->eq[i]);
                upper = isl_constraint_copy(lower);
-               context = isl_basic_set_remove(isl_basic_set_copy(bset),
+               context = isl_basic_set_remove_dims(isl_basic_set_copy(bset),
                                        type, pos, 1);
                if (!lower || !upper || !context)
                        goto error;