add isl_aff_get_constant_val
authorSven Verdoolaege <skimo@kotnet.org>
Sat, 23 Feb 2013 13:40:22 +0000 (14:40 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Tue, 28 May 2013 16:24:48 +0000 (18:24 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/aff.h
isl_aff.c

index 41350f0..c1145e8 100644 (file)
@@ -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,
index 13a541a..74a5992 100644 (file)
@@ -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);
index 3210032..a4b9748 100644 (file)
--- 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)
 {