30 lines · c
1/*2 * Copyright 2013 Ecole Normale Superieure3 *4 * Use of this software is governed by the MIT license5 *6 * Written by Sven Verdoolaege,7 * Ecole Normale Superieure, 45 rue d'Ulm, 75230 Paris, France8 */9 10/* Convert an object defined over a parameter domain11 * into one that is defined over a zero-dimensional set.12 */13__isl_give TYPE *FN(TYPE,from_range)(__isl_take TYPE *obj)14{15 isl_space *space;16 17 if (!obj)18 return NULL;19 if (!isl_space_is_set(FN(TYPE,peek_space)(obj)))20 isl_die(FN(TYPE,get_ctx)(obj), isl_error_invalid,21 "not living in a set space",22 return FN(TYPE,free)(obj));23 24 space = FN(TYPE,get_space)(obj);25 space = isl_space_from_range(space);26 obj = FN(TYPE,reset_space)(obj, space);27 28 return obj;29}30