From d93eecde09989748350cc1a7f92bea4c6c4e14c3 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Tue, 28 May 2013 14:12:55 +0200 Subject: [PATCH] temporarily add isl_val_get_num_isl_int Signed-off-by: Sven Verdoolaege --- doc/user.pod | 6 ++++-- include/isl/val_int.h | 1 + isl_val.c | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/doc/user.pod b/doc/user.pod index ee8ce0c..1e46faf 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -522,13 +522,15 @@ C values using the following functions. =head3 Conversion from C -The following function is only temporarily available to ease -the transition from C to C. It will be removed +The following functions are only temporarily available to ease +the transition from C to C. They will be removed in the next release. #include __isl_give isl_val *isl_val_int_from_isl_int(isl_ctx *ctx, isl_int n); + int isl_val_get_num_isl_int(__isl_keep isl_val *v, + isl_int *n); =head2 Integers (obsolescent) diff --git a/include/isl/val_int.h b/include/isl/val_int.h index 3f8bc20..521d5a6 100644 --- a/include/isl/val_int.h +++ b/include/isl/val_int.h @@ -5,5 +5,6 @@ #include __isl_give isl_val *isl_val_int_from_isl_int(isl_ctx *ctx, isl_int n); +int isl_val_get_num_isl_int(__isl_keep isl_val *v, isl_int *n); #endif diff --git a/isl_val.c b/isl_val.c index c61b4ad..dca3228 100644 --- a/isl_val.c +++ b/isl_val.c @@ -284,6 +284,21 @@ long isl_val_get_num_si(__isl_keep isl_val *v) return isl_int_get_si(v->n); } +/* Extract the numerator of a rational value "v" as an isl_int. + * + * If "v" is not a rational value, then the result is undefined. + */ +int isl_val_get_num_isl_int(__isl_keep isl_val *v, isl_int *n) +{ + if (!v) + return -1; + if (!isl_val_is_rat(v)) + isl_die(isl_val_get_ctx(v), isl_error_invalid, + "expecting rational value", return -1); + isl_int_set(*n, v->n); + return 0; +} + /* Extract the denominator of a rational value "v" as an integer. * * If "v" is not a rational value, then the result is undefined. -- 2.7.4