From 9f614eb1fb63dec83cf73c787f796c6a634f9fce Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Sat, 6 Apr 2013 14:44:53 +0200 Subject: [PATCH] add isl_term_get_coefficient_val Signed-off-by: Sven Verdoolaege --- doc/user.pod | 2 ++ include/isl/polynomial.h | 2 ++ isl_polynomial.c | 12 ++++++++++++ 3 files changed, 16 insertions(+) diff --git a/doc/user.pod b/doc/user.pod index e76e451b..07b0480f 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -4707,6 +4707,8 @@ these functions isl_int *n); void isl_term_get_den(__isl_keep isl_term *term, isl_int *d); + __isl_give isl_val *isl_term_get_coefficient_val( + __isl_keep isl_term *term); int isl_term_get_exp(__isl_keep isl_term *term, enum isl_dim_type type, unsigned pos); __isl_give isl_aff *isl_term_get_div( diff --git a/include/isl/polynomial.h b/include/isl/polynomial.h index 6354c601..d3556709 100644 --- a/include/isl/polynomial.h +++ b/include/isl/polynomial.h @@ -10,6 +10,7 @@ #include #include #include +#include #if defined(__cplusplus) extern "C" { @@ -106,6 +107,7 @@ void isl_term_free(__isl_take isl_term *term); unsigned isl_term_dim(__isl_keep isl_term *term, enum isl_dim_type type); void isl_term_get_num(__isl_keep isl_term *term, isl_int *n); void isl_term_get_den(__isl_keep isl_term *term, isl_int *d); +__isl_give isl_val *isl_term_get_coefficient_val(__isl_keep isl_term *term); int isl_term_get_exp(__isl_keep isl_term *term, enum isl_dim_type type, unsigned pos); __isl_give isl_aff *isl_term_get_div(__isl_keep isl_term *term, unsigned pos); diff --git a/isl_polynomial.c b/isl_polynomial.c index 2dfdd0f2..bb33ed68 100644 --- a/isl_polynomial.c +++ b/isl_polynomial.c @@ -24,6 +24,7 @@ #include #include #include +#include #include static unsigned pos(__isl_keep isl_space *dim, enum isl_dim_type type) @@ -3563,6 +3564,17 @@ void isl_term_get_den(__isl_keep isl_term *term, isl_int *d) isl_int_set(*d, term->d); } +/* Return the coefficient of the term "term". + */ +__isl_give isl_val *isl_term_get_coefficient_val(__isl_keep isl_term *term) +{ + if (!term) + return NULL; + + return isl_val_rat_from_isl_int(isl_term_get_ctx(term), + term->n, term->d); +} + int isl_term_get_exp(__isl_keep isl_term *term, enum isl_dim_type type, unsigned pos) { -- 2.11.4.GIT