X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_scan.c;h=a7d2b9f4edf1843959be13e4bfb28ee83217ee6a;hb=7bc3560a92635b5dcf7eb9e7329992fc935a1ce2;hp=f32f5e63656921c547183e620750746b8d5cf7ca;hpb=41664cabbbca0d3bb3bec0fb2162c43322b56b13;p=platform%2Fupstream%2Fisl.git diff --git a/isl_scan.c b/isl_scan.c index f32f5e6..a7d2b9f 100644 --- a/isl_scan.c +++ b/isl_scan.c @@ -1,17 +1,19 @@ /* * Copyright 2008-2009 Katholieke Universiteit Leuven * - * Use of this software is governed by the GNU LGPLv2.1 license + * Use of this software is governed by the MIT license * * Written by Sven Verdoolaege, K.U.Leuven, Departement * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include #include "isl_basis_reduction.h" #include "isl_scan.h" #include #include "isl_tab.h" +#include struct isl_counter { struct isl_scan_callback callback; @@ -123,7 +125,7 @@ int isl_basic_set_scan(struct isl_basic_set *bset, if (!min || !max || !snap) goto error; - tab = isl_tab_from_basic_set(bset); + tab = isl_tab_from_basic_set(bset, 0); if (!tab) goto error; if (isl_tab_extend_cons(tab, dim + 1) < 0) @@ -301,3 +303,21 @@ int isl_set_count(__isl_keep isl_set *set, isl_int *count) return -1; return isl_set_count_upto(set, set->ctx->zero, count); } + +/* Count the total number of elements in "set" (in an inefficient way) and + * return the result. + */ +__isl_give isl_val *isl_set_count_val(__isl_keep isl_set *set) +{ + isl_val *v; + + if (!set) + return NULL; + v = isl_val_zero(isl_set_get_ctx(set)); + v = isl_val_cow(v); + if (!v) + return NULL; + if (isl_set_count(set, &v->n) < 0) + v = isl_val_free(v); + return v; +}