add isl_qpolynomial_le_cst
authorSven Verdoolaege <skimo@kotnet.org>
Sun, 9 May 2010 17:25:41 +0000 (19:25 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Thu, 13 May 2010 16:53:54 +0000 (18:53 +0200)
isl_polynomial.c
isl_polynomial_private.h

index 5cbf162..28b9f7e 100644 (file)
@@ -1960,6 +1960,25 @@ int isl_upoly_cmp(__isl_keep struct isl_upoly_cst *cst1,
        return cmp;
 }
 
+int isl_qpolynomial_le_cst(__isl_keep isl_qpolynomial *qp1,
+       __isl_keep isl_qpolynomial *qp2)
+{
+       struct isl_upoly_cst *cst1, *cst2;
+
+       if (!qp1 || !qp2)
+               return -1;
+       isl_assert(qp1->dim->ctx, isl_upoly_is_cst(qp1->upoly), return -1);
+       isl_assert(qp2->dim->ctx, isl_upoly_is_cst(qp2->upoly), return -1);
+       if (isl_qpolynomial_is_nan(qp1))
+               return -1;
+       if (isl_qpolynomial_is_nan(qp2))
+               return -1;
+       cst1 = isl_upoly_as_cst(qp1->upoly);
+       cst2 = isl_upoly_as_cst(qp2->upoly);
+
+       return isl_upoly_cmp(cst1, cst2) <= 0;
+}
+
 __isl_give isl_qpolynomial *isl_qpolynomial_min_cst(
        __isl_take isl_qpolynomial *qp1, __isl_take isl_qpolynomial *qp2)
 {
index be5abe9..f9ddaf3 100644 (file)
@@ -123,6 +123,8 @@ int isl_qpolynomial_is_zero(__isl_keep isl_qpolynomial *qp);
 int isl_qpolynomial_is_one(__isl_keep isl_qpolynomial *qp);
 int isl_qpolynomial_is_affine(__isl_keep isl_qpolynomial *qp);
 
+int isl_qpolynomial_le_cst(__isl_keep isl_qpolynomial *qp1,
+       __isl_keep isl_qpolynomial *qp2);
 __isl_give isl_qpolynomial *isl_qpolynomial_max_cst(
        __isl_take isl_qpolynomial *qp1, __isl_take isl_qpolynomial *qp2);
 __isl_give isl_qpolynomial *isl_qpolynomial_min_cst(