From f5b1ab9837903b40a1259c505c5dcad858af39c1 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Sat, 23 Feb 2013 14:40:22 +0100 Subject: [PATCH] add isl_aff_get_constant_val Signed-off-by: Sven Verdoolaege --- doc/user.pod | 2 ++ include/isl/aff.h | 1 + isl_aff.c | 15 +++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/doc/user.pod b/doc/user.pod index 41350f0..c1145e8 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -3623,6 +3623,8 @@ The expression can be inspected using enum isl_dim_type type); int isl_aff_get_constant(__isl_keep isl_aff *aff, isl_int *v); + __isl_give isl_val *isl_aff_get_constant_val( + __isl_keep isl_aff *aff); int isl_aff_get_coefficient(__isl_keep isl_aff *aff, enum isl_dim_type type, int pos, isl_int *v); int isl_aff_get_denominator(__isl_keep isl_aff *aff, diff --git a/include/isl/aff.h b/include/isl/aff.h index 13a541a..74a5992 100644 --- a/include/isl/aff.h +++ b/include/isl/aff.h @@ -37,6 +37,7 @@ __isl_give isl_local_space *isl_aff_get_local_space(__isl_keep isl_aff *aff); const char *isl_aff_get_dim_name(__isl_keep isl_aff *aff, enum isl_dim_type type, unsigned pos); int isl_aff_get_constant(__isl_keep isl_aff *aff, isl_int *v); +__isl_give isl_val *isl_aff_get_constant_val(__isl_keep isl_aff *aff); int isl_aff_get_coefficient(__isl_keep isl_aff *aff, enum isl_dim_type type, int pos, isl_int *v); int isl_aff_get_denominator(__isl_keep isl_aff *aff, isl_int *v); diff --git a/isl_aff.c b/isl_aff.c index 3210032..a4b9748 100644 --- a/isl_aff.c +++ b/isl_aff.c @@ -417,6 +417,21 @@ int isl_aff_get_constant(__isl_keep isl_aff *aff, isl_int *v) return 0; } +/* Return the constant term of "aff". + */ +__isl_give isl_val *isl_aff_get_constant_val(__isl_keep isl_aff *aff) +{ + isl_ctx *ctx; + isl_val *v; + + if (!aff) + return NULL; + + ctx = isl_aff_get_ctx(aff); + v = isl_val_rat_from_isl_int(ctx, aff->v->el[1], aff->v->el[0]); + return isl_val_normalize(v); +} + int isl_aff_get_coefficient(__isl_keep isl_aff *aff, enum isl_dim_type type, int pos, isl_int *v) { -- 2.7.4