71 lines · c
1/*2 * Copyright 2011 Sven Verdoolaege3 * Copyright 2013 Ecole Normale Superieure4 *5 * Use of this software is governed by the MIT license6 *7 * Written by Sven Verdoolaege,8 * Ecole Normale Superieure, 45 rue d'Ulm, 75230 Paris, France9 */10 11#include <isl/space.h>12 13#include <isl_multi_macro.h>14 15/* Return the position of the dimension of the given type and name16 * in "multi".17 * Return -1 if no such dimension can be found.18 */19int FN(MULTI(BASE),find_dim_by_name)(__isl_keep MULTI(BASE) *multi,20 enum isl_dim_type type, const char *name)21{22 if (!multi)23 return -1;24 return isl_space_find_dim_by_name(multi->space, type, name);25}26 27/* Return the position of the first dimension of "type" with id "id".28 * Return -1 if there is no such dimension.29 */30int FN(MULTI(BASE),find_dim_by_id)(__isl_keep MULTI(BASE) *multi,31 enum isl_dim_type type, __isl_keep isl_id *id)32{33 if (!multi)34 return -1;35 return isl_space_find_dim_by_id(multi->space, type, id);36}37 38/* Return the id of the given dimension.39 */40__isl_give isl_id *FN(MULTI(BASE),get_dim_id)(__isl_keep MULTI(BASE) *multi,41 enum isl_dim_type type, unsigned pos)42{43 return multi ? isl_space_get_dim_id(multi->space, type, pos) : NULL;44}45 46__isl_give MULTI(BASE) *FN(MULTI(BASE),set_dim_name)(47 __isl_take MULTI(BASE) *multi,48 enum isl_dim_type type, unsigned pos, const char *s)49{50 isl_space *space;51 52 space = FN(MULTI(BASE),get_space)(multi);53 space = isl_space_set_dim_name(space, type, pos, s);54 55 return FN(MULTI(BASE),reset_space)(multi, space);56}57 58/* Set the id of the given dimension of "multi" to "id".59 */60__isl_give MULTI(BASE) *FN(MULTI(BASE),set_dim_id)(61 __isl_take MULTI(BASE) *multi,62 enum isl_dim_type type, unsigned pos, __isl_take isl_id *id)63{64 isl_space *space;65 66 space = FN(MULTI(BASE),get_space)(multi);67 space = isl_space_set_dim_id(space, type, pos, id);68 69 return FN(MULTI(BASE),reset_space)(multi, space);70}71