=head2 Lists
Lists are defined over several element types, including
-C<isl_id>, C<isl_aff>, C<isl_pw_aff>, C<isl_constraint>,
+C<isl_val>, C<isl_id>, C<isl_aff>, C<isl_pw_aff>, C<isl_constraint>,
C<isl_basic_set>, C<isl_set>, C<isl_ast_expr> and C<isl_ast_node>.
Here we take lists of C<isl_set>s as an example.
Lists can be created, copied, modified and freed using the following functions.
#define ISL_VAL_H
#include <isl/ctx.h>
+#include <isl/list.h>
#include <isl/printer.h>
#if defined(__cplusplus)
struct isl_val;
typedef struct isl_val isl_val;
+ISL_DECLARE_LIST(val)
+
__isl_give isl_val *isl_val_zero(isl_ctx *ctx);
__isl_give isl_val *isl_val_one(isl_ctx *ctx);
__isl_give isl_val *isl_val_nan(isl_ctx *ctx);
#include <isl_ctx_private.h>
#include <isl_val_private.h>
+#undef BASE
+#define BASE val
+
+#include <isl_list_templ.c>
+
/* Allocate an isl_val object with indeterminate value.
*/
__isl_give isl_val *isl_val_alloc(isl_ctx *ctx)
isl_int d;
};
+#undef EL
+#define EL isl_val
+
+#include <isl_list_templ.h>
+
__isl_give isl_val *isl_val_alloc(isl_ctx *ctx);
__isl_give isl_val *isl_val_normalize(__isl_take isl_val *v);
__isl_give isl_val *isl_val_int_from_isl_int(isl_ctx *ctx, isl_int n);