__isl_give isl_aff *isl_aff_zero(
__isl_take isl_local_space *ls);
+A quasi affine expression can also be initialized from an C<isl_div>:
+
+ #include <isl/div.h>
+ __isl_give isl_aff *isl_aff_from_div(__isl_take isl_div *div);
+
An empty piecewise quasi affine expression (one with no cells)
or a piecewise quasi affine expression with a single cell can
be created using the following functions.
#define ISL_DIV_H
#include <isl/dim.h>
+#include <isl/aff_type.h>
#if defined(__cplusplus)
extern "C" {
unsigned isl_div_dim(__isl_keep isl_div *div, enum isl_dim_type type);
__isl_give isl_div *isl_div_div(__isl_take isl_div *div, int pos);
+__isl_give isl_aff *isl_aff_from_div(__isl_take isl_div *div);
+
#if defined(__cplusplus)
}
#endif
#include <isl/map.h>
#include <isl_dim_private.h>
#include <isl/seq.h>
+#include <isl/aff.h>
isl_ctx *isl_div_get_ctx(__isl_keep isl_div *div)
{
isl_assert(div->ctx, pos < n(div, type), return);
isl_int_set(div->line[0][offset(div, type) + pos], v);
}
+
+__isl_give isl_aff *isl_aff_from_div(__isl_take isl_div *div)
+{
+ isl_aff *aff;
+ int pos;
+
+ if (!div)
+ return NULL;
+
+ pos = div->line - div->bmap->div;
+ aff = isl_aff_zero(isl_basic_map_get_local_space(div->bmap));
+ aff = isl_aff_set_coefficient_si(aff, isl_dim_div, pos, 1);
+
+ isl_div_free(div);
+ return aff;
+}