


#include <isl/ctx.h>
#include <isl/id_type.h>
#include <isl/list.h>
#include <isl/multi.h>
#include <isl/printer_type.h>
#include <isl/stdint.h>





isl_ctx *isl_id_list_get_ctx(__isl_keep isl_id_list *list);	__isl_export									__isl_give isl_id_list *isl_id_to_list(__isl_take isl_id *el);__isl_constructor								__isl_give isl_id_list *isl_id_list_from_id(	__isl_take isl_id *el);					__isl_constructor								__isl_give isl_id_list *isl_id_list_alloc(isl_ctx *ctx, int n);	__isl_give isl_id_list *isl_id_list_copy(	__isl_keep isl_id_list *list);				__isl_null isl_id_list *isl_id_list_free(	__isl_take isl_id_list *list);				__isl_export									__isl_give isl_id_list *isl_id_list_add(	__isl_take isl_id_list *list,	__isl_take isl_id *el);					__isl_export									__isl_give isl_id_list *isl_id_list_insert(	__isl_take isl_id_list *list, unsigned pos,	__isl_take isl_id *el);					__isl_export									__isl_give isl_id_list *isl_id_list_drop(	__isl_take isl_id_list *list, unsigned first, unsigned n);	__isl_export									__isl_give isl_id_list *isl_id_list_clear(	__isl_take isl_id_list *list);				__isl_give isl_id_list *isl_id_list_swap(	__isl_take isl_id_list *list, unsigned pos1,	unsigned pos2);							__isl_give isl_id_list *isl_id_list_reverse(	__isl_take isl_id_list *list);				__isl_export									__isl_give isl_id_list *isl_id_list_concat(	__isl_take isl_id_list *list1,	__isl_take isl_id_list *list2);				__isl_export									isl_size isl_id_list_size(__isl_keep isl_id_list *list);	isl_size isl_id_list_n_id(__isl_keep isl_id_list *list);	__isl_export									__isl_give isl_id *isl_id_list_get_at(	__isl_keep isl_id_list *list, int index);			__isl_give struct isl_id *isl_id_list_get_id(	__isl_keep isl_id_list *list, int index);			__isl_give struct isl_id_list *isl_id_list_set_id(	__isl_take struct isl_id_list *list, int index,	__isl_take struct isl_id *el);				__isl_export									isl_stat isl_id_list_foreach(__isl_keep isl_id_list *list,	isl_stat (*fn)(__isl_take isl_id *el, void *user),	void *user);							isl_bool isl_id_list_every(__isl_keep isl_id_list *list,	isl_bool (*test)(__isl_keep isl_id *el, void *user),	void *user);							__isl_give isl_id_list *isl_id_list_map(	__isl_take isl_id_list *list,	__isl_give isl_id * (*fn)(__isl_take isl_id *el,	void *user),	void *user);							__isl_give isl_id_list *isl_id_list_sort(	__isl_take isl_id_list *list,	int (*cmp)(__isl_keep struct isl_id *a,	__isl_keep struct isl_id *b,	void *user), void *user);				__isl_export									isl_stat isl_id_list_foreach_scc(__isl_keep isl_id_list *list,	isl_bool (*follows)(__isl_keep isl_id *a,	__isl_keep isl_id *b, void *user),	void *follows_user,	isl_stat (*fn)(__isl_take isl_id_list *scc, void *user),	void *fn_user);							__isl_give char *isl_id_list_to_str(	__isl_keep isl_id_list *list);				__isl_give isl_printer *isl_printer_print_id_list(	__isl_take isl_printer *p, __isl_keep isl_id_list *list);	void isl_id_list_dump(__isl_keep isl_id_list *list);
__isl_constructor								__isl_give isl_id_list *isl_id_list_read_from_str(	isl_ctx *ctx, const char *str);

isl_ctx *isl_multi_id_get_ctx(	__isl_keep isl_multi_id *multi);				__isl_export								__isl_give isl_space *isl_multi_id_get_space(	__isl_keep isl_multi_id *multi);				__isl_give isl_space *isl_multi_id_get_domain_space(	__isl_keep isl_multi_id *multi);				__isl_export								__isl_give isl_id_list *isl_multi_id_get_list(	__isl_keep isl_multi_id *multi);				__isl_constructor							__isl_give isl_multi_id *isl_multi_id_from_id_list(	__isl_take isl_space *space, __isl_take isl_id_list *list); __isl_export								__isl_give isl_multi_id *isl_space_multi_id(	__isl_take isl_space *space, __isl_take isl_id_list *list); __isl_give isl_multi_id *isl_multi_id_copy(	__isl_keep isl_multi_id *multi);				__isl_null isl_multi_id *isl_multi_id_free(	__isl_take isl_multi_id *multi);				__isl_export								isl_bool isl_multi_id_plain_is_equal(	__isl_keep isl_multi_id *multi1,	__isl_keep isl_multi_id *multi2);				__isl_give isl_multi_id *isl_multi_id_reset_user(	__isl_take isl_multi_id *multi);				__isl_export								isl_size isl_multi_id_size(__isl_keep isl_multi_id *multi);	__isl_export								__isl_give isl_id *isl_multi_id_get_at(	__isl_keep isl_multi_id *multi, int pos);			__isl_give isl_id *isl_multi_id_get_id(	__isl_keep isl_multi_id *multi, int pos);			__isl_export								__isl_give isl_multi_id *isl_multi_id_set_at(	__isl_take isl_multi_id *multi, int pos,	__isl_take isl_id *el);					__isl_give isl_multi_id *isl_multi_id_set_id(	__isl_take isl_multi_id *multi, int pos,	__isl_take isl_id *el);					__isl_give isl_multi_id *isl_multi_id_range_splice(	__isl_take isl_multi_id *multi1, unsigned pos,	__isl_take isl_multi_id *multi2);				__isl_give isl_multi_id *isl_multi_id_flatten_range(	__isl_take isl_multi_id *multi);				__isl_export								__isl_give isl_multi_id *isl_multi_id_flat_range_product(	__isl_take isl_multi_id *multi1,	__isl_take isl_multi_id *multi2);				__isl_export								__isl_give isl_multi_id *isl_multi_id_range_product(	__isl_take isl_multi_id *multi1,	__isl_take isl_multi_id *multi2);				__isl_give isl_multi_id *isl_multi_id_factor_range(	__isl_take isl_multi_id *multi);				isl_bool isl_multi_id_range_is_wrapping(	__isl_keep isl_multi_id *multi);				__isl_give isl_multi_id *isl_multi_id_range_factor_domain(	__isl_take isl_multi_id *multi);				__isl_give isl_multi_id *isl_multi_id_range_factor_range(	__isl_take isl_multi_id *multi);				__isl_give isl_multi_id *isl_multi_id_align_params(	__isl_take isl_multi_id *multi,	__isl_take isl_space *model);					__isl_give isl_multi_id *isl_multi_id_from_range(	__isl_take isl_multi_id *multi);

isl_ctx *isl_id_get_ctx(__isl_keep isl_id *id);
uint32_t isl_id_get_hash(__isl_keep isl_id *id);

__isl_give isl_id *isl_id_alloc(isl_ctx *ctx,
	__isl_keep const char *name, void *user);
__isl_give isl_id *isl_id_copy(isl_id *id);
__isl_null isl_id *isl_id_free(__isl_take isl_id *id);

void *isl_id_get_user(__isl_keep isl_id *id);
__isl_export
__isl_keep const char *isl_id_get_name(__isl_keep isl_id *id);

__isl_give isl_id *isl_id_set_free_user(__isl_take isl_id *id,
	void (*free_user)(void *user));
void (*isl_id_get_free_user(__isl_keep isl_id *id))(void *user);

__isl_constructor
__isl_give isl_id *isl_id_read_from_str(isl_ctx *ctx, const char *str);
__isl_give char *isl_id_to_str(__isl_keep isl_id *id);
__isl_give isl_printer *isl_printer_print_id(__isl_take isl_printer *p,
	__isl_keep isl_id *id);
void isl_id_dump(__isl_keep isl_id *id);

__isl_constructor
__isl_give isl_multi_id *isl_multi_id_read_from_str(isl_ctx *ctx,
	const char *str);
__isl_give isl_printer *isl_printer_print_multi_id(__isl_take isl_printer *p,
	__isl_keep isl_multi_id *mi);
void isl_multi_id_dump(__isl_keep isl_multi_id *mi);
__isl_give char *isl_multi_id_to_str(__isl_keep isl_multi_id *mi);
