


#include <isl/ctx.h>
#include <isl/list.h>





struct __isl_subclass(isl_map) isl_basic_map;
typedef struct isl_basic_map isl_basic_map;
struct isl_basic_map;							struct isl_basic_map_list;						typedef struct isl_basic_map_list isl_basic_map_list;
struct __isl_subclass(isl_union_map) isl_map;
typedef struct isl_map isl_map;
struct isl_map;							struct isl_map_list;						typedef struct isl_map_list isl_map_list;


struct __isl_subclass(isl_set) isl_basic_set;
typedef struct isl_basic_set isl_basic_set;
struct isl_basic_set;							struct isl_basic_set_list;						typedef struct isl_basic_set_list isl_basic_set_list;



struct __isl_subclass(isl_union_set) isl_set;
typedef struct isl_set isl_set;
struct isl_set;							struct isl_set_list;						typedef struct isl_set_list isl_set_list;


isl_ctx *isl_basic_set_list_get_ctx(__isl_keep isl_basic_set_list *list);								__isl_give isl_basic_set_list *isl_basic_set_list_from_basic_set(				__isl_take isl_basic_set *el);								__isl_give isl_basic_set_list *isl_basic_set_list_alloc(isl_ctx *ctx, int n);	__isl_give isl_basic_set_list *isl_basic_set_list_copy(				__isl_keep isl_basic_set_list *list);				__isl_null isl_basic_set_list *isl_basic_set_list_free(				__isl_take isl_basic_set_list *list);									__isl_give isl_basic_set_list *isl_basic_set_list_add(				__isl_take isl_basic_set_list *list,					__isl_take isl_basic_set *el);									__isl_give isl_basic_set_list *isl_basic_set_list_insert(				__isl_take isl_basic_set_list *list, unsigned pos,				__isl_take isl_basic_set *el);									__isl_give isl_basic_set_list *isl_basic_set_list_drop(				__isl_take isl_basic_set_list *list, unsigned first, unsigned n);									__isl_give isl_basic_set_list *isl_basic_set_list_clear(				__isl_take isl_basic_set_list *list);				__isl_give isl_basic_set_list *isl_basic_set_list_swap(				__isl_take isl_basic_set_list *list, unsigned pos1,			unsigned pos2);							__isl_give isl_basic_set_list *isl_basic_set_list_reverse(				__isl_take isl_basic_set_list *list);									__isl_give isl_basic_set_list *isl_basic_set_list_concat(				__isl_take isl_basic_set_list *list1,					__isl_take isl_basic_set_list *list2);									isl_size isl_basic_set_list_size(__isl_keep isl_basic_set_list *list);	isl_size isl_basic_set_list_n_basic_set(__isl_keep isl_basic_set_list *list);									__isl_give isl_basic_set *isl_basic_set_list_get_at(					__isl_keep isl_basic_set_list *list, int index);			__isl_give struct isl_basic_set *isl_basic_set_list_get_basic_set(				__isl_keep isl_basic_set_list *list, int index);			__isl_give struct isl_basic_set_list *isl_basic_set_list_set_basic_set(			__isl_take struct isl_basic_set_list *list, int index,			__isl_take struct isl_basic_set *el);									isl_stat isl_basic_set_list_foreach(__isl_keep isl_basic_set_list *list,		isl_stat (*fn)(__isl_take isl_basic_set *el, void *user),			void *user);							isl_bool isl_basic_set_list_every(__isl_keep isl_basic_set_list *list,		isl_bool (*test)(__isl_keep isl_basic_set *el, void *user),			void *user);							__isl_give isl_basic_set_list *isl_basic_set_list_map(				__isl_take isl_basic_set_list *list,					__isl_give isl_basic_set * (*fn)(__isl_take isl_basic_set *el,				void *user),							void *user);							__isl_give isl_basic_set_list *isl_basic_set_list_sort(				__isl_take isl_basic_set_list *list,					int (*cmp)(__isl_keep struct isl_basic_set *a,					__isl_keep struct isl_basic_set *b,						void *user), void *user);				isl_stat isl_basic_set_list_foreach_scc(__isl_keep isl_basic_set_list *list,		isl_bool (*follows)(__isl_keep struct isl_basic_set *a,					__isl_keep struct isl_basic_set *b, void *user),		void *follows_user,							isl_stat (*fn)(__isl_take isl_basic_set_list *scc, void *user),		void *fn_user);							__isl_give char *isl_basic_set_list_to_str(					__isl_keep isl_basic_set_list *list);				__isl_give isl_printer *isl_printer_print_basic_set_list(				__isl_take isl_printer *p, __isl_keep isl_basic_set_list *list);	void isl_basic_set_list_dump(__isl_keep isl_basic_set_list *list);
isl_ctx *isl_set_list_get_ctx(__isl_keep isl_set_list *list);								__isl_give isl_set_list *isl_set_list_from_set(				__isl_take isl_set *el);								__isl_give isl_set_list *isl_set_list_alloc(isl_ctx *ctx, int n);	__isl_give isl_set_list *isl_set_list_copy(				__isl_keep isl_set_list *list);				__isl_null isl_set_list *isl_set_list_free(				__isl_take isl_set_list *list);									__isl_give isl_set_list *isl_set_list_add(				__isl_take isl_set_list *list,					__isl_take isl_set *el);									__isl_give isl_set_list *isl_set_list_insert(				__isl_take isl_set_list *list, unsigned pos,				__isl_take isl_set *el);									__isl_give isl_set_list *isl_set_list_drop(				__isl_take isl_set_list *list, unsigned first, unsigned n);									__isl_give isl_set_list *isl_set_list_clear(				__isl_take isl_set_list *list);				__isl_give isl_set_list *isl_set_list_swap(				__isl_take isl_set_list *list, unsigned pos1,			unsigned pos2);							__isl_give isl_set_list *isl_set_list_reverse(				__isl_take isl_set_list *list);									__isl_give isl_set_list *isl_set_list_concat(				__isl_take isl_set_list *list1,					__isl_take isl_set_list *list2);									isl_size isl_set_list_size(__isl_keep isl_set_list *list);	isl_size isl_set_list_n_set(__isl_keep isl_set_list *list);									__isl_give isl_set *isl_set_list_get_at(					__isl_keep isl_set_list *list, int index);			__isl_give struct isl_set *isl_set_list_get_set(				__isl_keep isl_set_list *list, int index);			__isl_give struct isl_set_list *isl_set_list_set_set(			__isl_take struct isl_set_list *list, int index,			__isl_take struct isl_set *el);									isl_stat isl_set_list_foreach(__isl_keep isl_set_list *list,		isl_stat (*fn)(__isl_take isl_set *el, void *user),			void *user);							isl_bool isl_set_list_every(__isl_keep isl_set_list *list,		isl_bool (*test)(__isl_keep isl_set *el, void *user),			void *user);							__isl_give isl_set_list *isl_set_list_map(				__isl_take isl_set_list *list,					__isl_give isl_set * (*fn)(__isl_take isl_set *el,				void *user),							void *user);							__isl_give isl_set_list *isl_set_list_sort(				__isl_take isl_set_list *list,					int (*cmp)(__isl_keep struct isl_set *a,					__isl_keep struct isl_set *b,						void *user), void *user);				isl_stat isl_set_list_foreach_scc(__isl_keep isl_set_list *list,		isl_bool (*follows)(__isl_keep struct isl_set *a,					__isl_keep struct isl_set *b, void *user),		void *follows_user,							isl_stat (*fn)(__isl_take isl_set_list *scc, void *user),		void *fn_user);							__isl_give char *isl_set_list_to_str(					__isl_keep isl_set_list *list);				__isl_give isl_printer *isl_printer_print_set_list(				__isl_take isl_printer *p, __isl_keep isl_set_list *list);	void isl_set_list_dump(__isl_keep isl_set_list *list);
