1 /* 2 * Copyright 2013 Ecole Normale Superieure 3 * 4 * Use of this software is governed by the MIT license 5 * 6 * Written by Sven Verdoolaege, 7 * Ecole Normale Superieure, 45 rue d'Ulm, 75230 Paris, France 8 */ 9 10 /* Convert an object defined over a parameter domain 11 * 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