Lists are defined over several element types, including
C<isl_basic_set> and C<isl_set>.
Here we take lists of C<isl_set>s as an example.
+Lists can be created, copied and freed using the following functions.
#include <isl/list.h>
__isl_give isl_set_list *isl_set_list_alloc(
C<isl_set_list_alloc> creates an empty list with a capacity for
C<n> elements.
+Lists can be inspected using the following functions.
+
+ #include <isl/list.h>
+ isl_ctx *isl_set_list_get_ctx(__isl_keep isl_set_list *list);
+
=head2 Matrices
Matrices can be created, copied and freed using the following functions.
struct isl_##EL; \
struct isl_##EL##_list; \
typedef struct isl_##EL##_list isl_##EL##_list; \
+isl_ctx *isl_##EL##_list_get_ctx(__isl_keep isl_##EL##_list *list); \
__isl_give isl_##EL##_list *isl_##EL##_list_alloc(isl_ctx *ctx, int n); \
__isl_give isl_##EL##_list *isl_##EL##_list_copy( \
__isl_keep isl_##EL##_list *list); \
#define xLIST(EL) EL ## _list
#define LIST(EL) xLIST(EL)
+isl_ctx *FN(LIST(EL),get_ctx)(__isl_keep LIST(EL) *list)
+{
+ return list ? list->ctx : NULL;
+}
+
__isl_give LIST(EL) *FN(LIST(EL),alloc)(isl_ctx *ctx, int n)
{
LIST(EL) *list;