From 20afe7f0251c8b4f871cd6ecbd145688694296dc Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Thu, 23 Aug 2018 15:37:13 +0200 Subject: [PATCH] isl_poly_is_{neg,}one: return isl_bool This clarifies what the possible return values are. Signed-off-by: Sven Verdoolaege --- isl_output.c | 14 +++++++------- isl_polynomial.c | 28 +++++++++++++++++----------- isl_polynomial_private.h | 4 ++-- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/isl_output.c b/isl_output.c index 33dbbe21..4f0238de 100644 --- a/isl_output.c +++ b/isl_output.c @@ -1793,32 +1793,32 @@ static __isl_give isl_printer *poly_print(__isl_keep isl_poly *poly, p = isl_printer_print_str(p, "("); for (i = 0, first = 1; i < rec->n; ++i) { isl_bool is_zero = isl_poly_is_zero(rec->p[i]); + isl_bool is_one = isl_poly_is_one(rec->p[i]); + isl_bool is_negone = isl_poly_is_negone(rec->p[i]); - if (is_zero < 0) + if (is_zero < 0 || is_one < 0 || is_negone < 0) return isl_printer_free(p); if (is_zero) continue; - if (isl_poly_is_negone(rec->p[i])) { + if (is_negone) { if (!i) p = isl_printer_print_str(p, "-1"); else if (first) p = isl_printer_print_str(p, "-"); else p = isl_printer_print_str(p, " - "); - } else if (isl_poly_is_cst(rec->p[i]) && - !isl_poly_is_one(rec->p[i])) + } else if (isl_poly_is_cst(rec->p[i]) && !is_one) p = poly_print_cst(rec->p[i], p, first); else { if (!first) p = isl_printer_print_str(p, " + "); - if (i == 0 || !isl_poly_is_one(rec->p[i])) + if (i == 0 || !is_one) p = poly_print(rec->p[i], space, div, p); } first = 0; if (i == 0) continue; - if (!isl_poly_is_one(rec->p[i]) && - !isl_poly_is_negone(rec->p[i])) + if (!is_one && !is_negone) p = isl_printer_print_str(p, " * "); p = print_pow(p, space, div, rec->poly.var, i); } diff --git a/isl_polynomial.c b/isl_polynomial.c index 586ca428..8ef092ea 100644 --- a/isl_polynomial.c +++ b/isl_polynomial.c @@ -241,34 +241,34 @@ isl_bool isl_poly_is_neginfty(__isl_keep isl_poly *poly) return isl_int_is_neg(cst->n) && isl_int_is_zero(cst->d); } -int isl_poly_is_one(__isl_keep isl_poly *poly) +isl_bool isl_poly_is_one(__isl_keep isl_poly *poly) { isl_poly_cst *cst; if (!poly) - return -1; + return isl_bool_error; if (!isl_poly_is_cst(poly)) - return 0; + return isl_bool_false; cst = isl_poly_as_cst(poly); if (!cst) - return -1; + return isl_bool_error; return isl_int_eq(cst->n, cst->d) && isl_int_is_pos(cst->d); } -int isl_poly_is_negone(__isl_keep isl_poly *poly) +isl_bool isl_poly_is_negone(__isl_keep isl_poly *poly) { isl_poly_cst *cst; if (!poly) - return -1; + return isl_bool_error; if (!isl_poly_is_cst(poly)) - return 0; + return isl_bool_false; cst = isl_poly_as_cst(poly); if (!cst) - return -1; + return isl_bool_error; return isl_int_is_negone(cst->n) && isl_int_is_one(cst->d); } @@ -1084,7 +1084,7 @@ error: __isl_give isl_poly *isl_poly_mul(__isl_take isl_poly *poly1, __isl_take isl_poly *poly2) { - isl_bool is_zero, is_nan; + isl_bool is_zero, is_nan, is_one; if (!poly1 || !poly2) goto error; @@ -1121,12 +1121,18 @@ __isl_give isl_poly *isl_poly_mul(__isl_take isl_poly *poly1, return poly2; } - if (isl_poly_is_one(poly1)) { + is_one = isl_poly_is_one(poly1); + if (is_one < 0) + goto error; + if (is_one) { isl_poly_free(poly1); return poly2; } - if (isl_poly_is_one(poly2)) { + is_one = isl_poly_is_one(poly2); + if (is_one < 0) + goto error; + if (is_one) { isl_poly_free(poly2); return poly1; } diff --git a/isl_polynomial_private.h b/isl_polynomial_private.h index c7ac1cd9..bd0c6ad5 100644 --- a/isl_polynomial_private.h +++ b/isl_polynomial_private.h @@ -131,8 +131,8 @@ __isl_give struct isl_poly *isl_poly_mul(__isl_take struct isl_poly *poly1, int isl_poly_is_cst(__isl_keep isl_poly *poly); isl_bool isl_poly_is_zero(__isl_keep isl_poly *poly); -int isl_poly_is_one(__isl_keep isl_poly *poly); -int isl_poly_is_negone(__isl_keep isl_poly *poly); +isl_bool isl_poly_is_one(__isl_keep isl_poly *poly); +isl_bool isl_poly_is_negone(__isl_keep isl_poly *poly); __isl_keep isl_poly_cst *isl_poly_as_cst(__isl_keep isl_poly *poly); __isl_keep isl_poly_rec *isl_poly_as_rec(__isl_keep isl_poly *poly); -- 2.11.4.GIT