20 return vec ? vec->ctx : NULL;
62 if (size <= vec->
size)
74 vec->el = vec->block.data;
88 int *exp,
int expanded)
100 if (
pos < 0 || n < 0 || pos + n > vec->size)
104 old_size = vec->size;
105 extra = expanded -
n;
111 for (i = old_size - 1; i >=
pos +
n; --i)
115 for (i = expanded - 1; i >= 0; --i) {
116 if (j >= 0 && exp[j] == i) {
148 if (size <= vec->
size)
155 extra =
size - vec->size;
174 if (vec2->size == 0) {
179 if (vec1->size == 0) {
188 isl_seq_cpy(vec1->el + vec1->size - vec2->size, vec2->el, vec2->size);
263 if (pos < 0 || pos >= vec->size)
275 if (pos < 0 || pos >= vec->size)
291 if (pos < 0 || pos >= vec->size)
310 "expecting integer value",
goto error);
326 if (pos < 0 || pos >= vec1->size ||
pos >= vec2->size)
328 "position out of range",
return 0);
346 if (vec1->size != vec2->size)
357 if (!printer || !vec)
361 for (i = 0; i < vec->size; ++i) {
416 "expecting integer value",
goto error);
449 isl_seq_cdiv_q(vec->el + 1, vec->el + 1, vec->el[0], vec->size - 1);
504 isl_assert(vec1->ctx, vec1->size == vec2->size,
goto error);
507 vec1->ctx->one, vec2->el, vec1->size);
536 unsigned pos,
unsigned n)
544 if (
pos +
n > vec->size)
546 "range out of bounds",
goto error);
548 if (
pos +
n != vec->size)
550 vec->size -
pos -
n);
561 unsigned pos,
unsigned n)
572 "position out of bounds",
goto error);
599 unsigned pos,
unsigned n)
616 unsigned dst_pos,
unsigned src_pos,
unsigned n)
623 if (src_pos +
n > vec->size)
625 "source range out of bounds",
return isl_vec_free(vec));
626 if (dst_pos +
n > vec->size)
628 "destination range out of bounds",
631 if (
n == 0 || dst_pos == src_pos)
638 if (dst_pos < src_pos) {
642 vec->el + dst_pos, src_pos - dst_pos);
644 vec->el + src_pos +
n,
res->size - src_pos -
n);
648 vec->el + src_pos +
n, dst_pos - src_pos);
651 vec->el + dst_pos +
n,
res->size - dst_pos -
n);
675 for (i = 0; i < r->src_len; ++i)
#define isl_die(ctx, errno, msg, code)
void isl_ctx_deref(struct isl_ctx *ctx)
#define isl_assert(ctx, test, code)
isl_bool isl_bool_ok(int b)
#define isl_alloc_type(ctx, type)
void isl_ctx_ref(struct isl_ctx *ctx)
void GMPZAPI() lcm(mp_int rop, mp_int op1, mp_int op2)
struct isl_blk isl_blk_extend(struct isl_ctx *ctx, struct isl_blk block, size_t new_n)
int isl_blk_is_error(struct isl_blk block)
void isl_blk_free(struct isl_ctx *ctx, struct isl_blk block)
struct isl_blk isl_blk_alloc(struct isl_ctx *ctx, size_t n)
#define isl_int_is_one(i)
__isl_give isl_printer * isl_printer_print_isl_int(__isl_take isl_printer *p, isl_int i)
#define isl_int_cmp(i, j)
#define isl_int_set(r, i)
#define isl_int_set_si(r, i)
#define isl_int_swap(i, j)
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
__isl_null isl_reordering * isl_reordering_free(__isl_take isl_reordering *exp)
void isl_seq_cdiv_q(isl_int *dst, isl_int *src, isl_int m, unsigned len)
void isl_seq_combine(isl_int *dst, isl_int m1, isl_int *src1, isl_int m2, isl_int *src2, unsigned len)
int isl_seq_first_non_zero(isl_int *p, unsigned len)
void isl_seq_lcm(isl_int *p, unsigned len, isl_int *lcm)
void isl_seq_fdiv_r(isl_int *dst, isl_int *src, isl_int m, unsigned len)
void isl_seq_set_si(isl_int *p, int v, unsigned len)
void isl_seq_clr(isl_int *p, unsigned len)
void isl_seq_scale(isl_int *dst, isl_int *src, isl_int m, unsigned len)
void isl_seq_cpy(isl_int *dst, isl_int *src, unsigned len)
uint32_t isl_seq_get_hash(isl_int *p, unsigned len)
int isl_seq_eq(isl_int *p1, isl_int *p2, unsigned len)
void isl_seq_set(isl_int *p, isl_int v, unsigned len)
void isl_seq_normalize(struct isl_ctx *ctx, isl_int *p, unsigned len)
void isl_seq_neg(isl_int *dst, isl_int *src, unsigned len)
__isl_give isl_val * isl_val_int_from_isl_int(isl_ctx *ctx, isl_int n)
__isl_give isl_vec * isl_vec_set_val(__isl_take isl_vec *vec, __isl_take isl_val *v)
__isl_give isl_vec * isl_vec_add(__isl_take isl_vec *vec1, __isl_take isl_vec *vec2)
void isl_vec_lcm(__isl_keep isl_vec *vec, isl_int *lcm)
__isl_give isl_vec * isl_vec_zero(isl_ctx *ctx, unsigned size)
__isl_give isl_val * isl_vec_get_element_val(__isl_keep isl_vec *vec, int pos)
__isl_give isl_vec * isl_vec_set(__isl_take isl_vec *vec, isl_int v)
__isl_give isl_vec * isl_vec_add_els(__isl_take isl_vec *vec, unsigned n)
isl_ctx * isl_vec_get_ctx(__isl_keep isl_vec *vec)
__isl_give isl_vec * isl_vec_zero_extend(__isl_take isl_vec *vec, unsigned size)
isl_size isl_vec_size(__isl_keep isl_vec *vec)
__isl_give isl_vec * isl_vec_expand(__isl_take isl_vec *vec, int pos, int n, int *exp, int expanded)
uint32_t isl_vec_get_hash(__isl_keep isl_vec *vec)
static int qsort_int_cmp(const void *p1, const void *p2)
__isl_null isl_vec * isl_vec_free(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_set_si(__isl_take isl_vec *vec, int v)
__isl_give isl_vec * isl_vec_concat(__isl_take isl_vec *vec1, __isl_take isl_vec *vec2)
__isl_give isl_vec * isl_vec_cow(__isl_take isl_vec *vec)
int isl_vec_cmp_element(__isl_keep isl_vec *vec1, __isl_keep isl_vec *vec2, int pos)
__isl_give isl_vec * isl_vec_insert_els(__isl_take isl_vec *vec, unsigned pos, unsigned n)
__isl_give isl_vec * isl_vec_set_element(__isl_take isl_vec *vec, int pos, isl_int v)
__isl_give isl_vec * isl_vec_copy(__isl_keep isl_vec *vec)
isl_bool isl_vec_is_equal(__isl_keep isl_vec *vec1, __isl_keep isl_vec *vec2)
__isl_give isl_vec * isl_vec_dup(__isl_keep isl_vec *vec)
__isl_give isl_vec * isl_vec_set_element_si(__isl_take isl_vec *vec, int pos, int v)
__isl_give isl_vec * isl_vec_scale(__isl_take isl_vec *vec, isl_int m)
__isl_give isl_vec * isl_vec_drop_els(__isl_take isl_vec *vec, unsigned pos, unsigned n)
isl_bool isl_vec_is_zero(__isl_keep isl_vec *vec)
__isl_give isl_vec * isl_vec_set_element_val(__isl_take isl_vec *vec, int pos, __isl_take isl_val *v)
__isl_give isl_vec * isl_vec_normalize(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_sort(__isl_take isl_vec *vec)
__isl_give isl_printer * isl_printer_print_vec(__isl_take isl_printer *printer, __isl_keep isl_vec *vec)
__isl_give isl_vec * isl_vec_neg(__isl_take isl_vec *vec)
void isl_vec_dump(__isl_keep isl_vec *vec)
__isl_give isl_vec * isl_vec_extend(__isl_take isl_vec *vec, unsigned size)
__isl_give isl_vec * isl_vec_fdiv_r(__isl_take isl_vec *vec, isl_int m)
__isl_give isl_vec * isl_vec_clr(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_alloc(struct isl_ctx *ctx, unsigned size)
__isl_give isl_vec * isl_vec_reorder(__isl_take isl_vec *vec, unsigned offset, __isl_take isl_reordering *r)
__isl_give isl_vec * isl_vec_insert_zero_els(__isl_take isl_vec *vec, unsigned pos, unsigned n)
__isl_give isl_vec * isl_vec_move_els(__isl_take isl_vec *vec, unsigned dst_pos, unsigned src_pos, unsigned n)
__isl_give isl_vec * isl_vec_ceil(__isl_take isl_vec *vec)
__isl_null isl_printer * isl_printer_free(__isl_take isl_printer *printer)
__isl_give isl_printer * isl_printer_to_file(isl_ctx *ctx, FILE *file)
__isl_give isl_printer * isl_printer_print_str(__isl_take isl_printer *p, const char *s)
__isl_give isl_printer * isl_printer_end_line(__isl_take isl_printer *p)
isl_ctx * isl_val_get_ctx(__isl_keep isl_val *val)
__isl_null isl_val * isl_val_free(__isl_take isl_val *v)
__isl_export isl_bool isl_val_is_int(__isl_keep isl_val *v)