Lines Matching refs:constraint
26 #define EL_BASE constraint
48 isl_constraint *constraint; in isl_constraint_alloc_vec() local
53 constraint = isl_alloc_type(isl_vec_get_ctx(v), isl_constraint); in isl_constraint_alloc_vec()
54 if (!constraint) in isl_constraint_alloc_vec()
57 constraint->ref = 1; in isl_constraint_alloc_vec()
58 constraint->eq = eq; in isl_constraint_alloc_vec()
59 constraint->ls = ls; in isl_constraint_alloc_vec()
60 constraint->v = v; in isl_constraint_alloc_vec()
62 return constraint; in isl_constraint_alloc_vec()
96 isl_constraint *constraint; in isl_basic_map_constraint() local
112 constraint = isl_constraint_alloc_vec(eq, ls, v); in isl_basic_map_constraint()
115 return constraint; in isl_basic_map_constraint()
161 __isl_keep isl_constraint *constraint) in isl_constraint_copy() argument
163 if (!constraint) in isl_constraint_copy()
166 constraint->ref++; in isl_constraint_copy()
167 return constraint; in isl_constraint_copy()
248 static isl_stat collect_constraint(__isl_take isl_constraint *constraint, in collect_constraint() argument
254 is_div = isl_constraint_is_div_constraint(constraint); in collect_constraint()
256 isl_constraint_free(constraint); in collect_constraint()
258 *list = isl_constraint_list_add(*list, constraint); in collect_constraint()
321 __isl_take isl_basic_map *bmap, __isl_take isl_constraint *constraint) in isl_basic_map_add_constraint() argument
327 if (!bmap || !constraint) in isl_basic_map_add_constraint()
330 ctx = isl_constraint_get_ctx(constraint); in isl_basic_map_add_constraint()
331 space = isl_constraint_get_space(constraint); in isl_basic_map_add_constraint()
337 isl_basic_map_from_constraint(constraint)); in isl_basic_map_add_constraint()
341 isl_constraint_free(constraint); in isl_basic_map_add_constraint()
346 __isl_take isl_basic_set *bset, __isl_take isl_constraint *constraint) in isl_basic_set_add_constraint() argument
349 constraint)); in isl_basic_set_add_constraint()
353 __isl_take isl_constraint *constraint) in isl_map_add_constraint() argument
357 bmap = isl_basic_map_from_constraint(constraint); in isl_map_add_constraint()
364 __isl_take isl_constraint *constraint) in isl_set_add_constraint() argument
366 return isl_map_add_constraint(set, constraint); in isl_set_add_constraint()
372 __isl_keep isl_constraint *constraint) in isl_constraint_peek_space() argument
374 return constraint ? isl_local_space_peek_space(constraint->ls) : NULL; in isl_constraint_peek_space()
378 __isl_keep isl_constraint *constraint) in isl_constraint_get_space() argument
380 return constraint ? isl_local_space_get_space(constraint->ls) : NULL; in isl_constraint_get_space()
384 __isl_keep isl_constraint *constraint) in isl_constraint_get_local_space() argument
386 return constraint ? isl_local_space_copy(constraint->ls) : NULL; in isl_constraint_get_local_space()
389 isl_size isl_constraint_dim(__isl_keep isl_constraint *constraint, in isl_constraint_dim() argument
392 if (!constraint) in isl_constraint_dim()
394 return n(constraint, type); in isl_constraint_dim()
402 isl_bool isl_constraint_involves_dims(__isl_keep isl_constraint *constraint, in isl_constraint_involves_dims() argument
409 if (!constraint) in isl_constraint_involves_dims()
414 if (isl_constraint_check_range(constraint, type, first, n) < 0) in isl_constraint_involves_dims()
417 active = isl_local_space_get_active(constraint->ls, in isl_constraint_involves_dims()
418 constraint->v->el + 1); in isl_constraint_involves_dims()
422 first += isl_local_space_offset(constraint->ls, type) - 1; in isl_constraint_involves_dims()
440 isl_bool isl_constraint_is_lower_bound(__isl_keep isl_constraint *constraint, in isl_constraint_is_lower_bound() argument
443 if (isl_constraint_check_range(constraint, type, pos, 1) < 0) in isl_constraint_is_lower_bound()
446 pos += isl_local_space_offset(constraint->ls, type); in isl_constraint_is_lower_bound()
447 return isl_bool_ok(isl_int_is_pos(constraint->v->el[pos])); in isl_constraint_is_lower_bound()
453 isl_bool isl_constraint_is_upper_bound(__isl_keep isl_constraint *constraint, in isl_constraint_is_upper_bound() argument
456 if (isl_constraint_check_range(constraint, type, pos, 1) < 0) in isl_constraint_is_upper_bound()
459 pos += isl_local_space_offset(constraint->ls, type); in isl_constraint_is_upper_bound()
460 return isl_bool_ok(isl_int_is_neg(constraint->v->el[pos])); in isl_constraint_is_upper_bound()
463 const char *isl_constraint_get_dim_name(__isl_keep isl_constraint *constraint, in isl_constraint_get_dim_name() argument
466 return constraint ? in isl_constraint_get_dim_name()
467 isl_local_space_get_dim_name(constraint->ls, type, pos) : NULL; in isl_constraint_get_dim_name()
470 void isl_constraint_get_constant(__isl_keep isl_constraint *constraint, in isl_constraint_get_constant() argument
473 if (!constraint) in isl_constraint_get_constant()
475 isl_int_set(*v, constraint->v->el[0]); in isl_constraint_get_constant()
481 __isl_keep isl_constraint *constraint) in isl_constraint_get_constant_val() argument
485 if (!constraint) in isl_constraint_get_constant_val()
488 ctx = isl_constraint_get_ctx(constraint); in isl_constraint_get_constant_val()
489 return isl_val_int_from_isl_int(ctx, constraint->v->el[0]); in isl_constraint_get_constant_val()
492 void isl_constraint_get_coefficient(__isl_keep isl_constraint *constraint, in isl_constraint_get_coefficient() argument
495 if (isl_constraint_check_range(constraint, type, pos, 1) < 0) in isl_constraint_get_coefficient()
498 pos += isl_local_space_offset(constraint->ls, type); in isl_constraint_get_coefficient()
499 isl_int_set(*v, constraint->v->el[pos]); in isl_constraint_get_coefficient()
506 __isl_keep isl_constraint *constraint, enum isl_dim_type type, int pos) in isl_constraint_get_coefficient_val() argument
510 if (isl_constraint_check_range(constraint, type, pos, 1) < 0) in isl_constraint_get_coefficient_val()
513 ctx = isl_constraint_get_ctx(constraint); in isl_constraint_get_coefficient_val()
514 pos += isl_local_space_offset(constraint->ls, type); in isl_constraint_get_coefficient_val()
515 return isl_val_int_from_isl_int(ctx, constraint->v->el[pos]); in isl_constraint_get_coefficient_val()
518 __isl_give isl_aff *isl_constraint_get_div(__isl_keep isl_constraint *constraint, in isl_constraint_get_div() argument
521 if (!constraint) in isl_constraint_get_div()
524 return isl_local_space_get_div(constraint->ls, pos); in isl_constraint_get_div()
528 __isl_take isl_constraint *constraint, isl_int v) in isl_constraint_set_constant() argument
530 constraint = isl_constraint_cow(constraint); in isl_constraint_set_constant()
531 if (!constraint) in isl_constraint_set_constant()
534 constraint->v = isl_vec_cow(constraint->v); in isl_constraint_set_constant()
535 if (!constraint->v) in isl_constraint_set_constant()
536 return isl_constraint_free(constraint); in isl_constraint_set_constant()
538 isl_int_set(constraint->v->el[0], v); in isl_constraint_set_constant()
539 return constraint; in isl_constraint_set_constant()
545 __isl_take isl_constraint *constraint, __isl_take isl_val *v) in isl_constraint_set_constant_val() argument
547 constraint = isl_constraint_cow(constraint); in isl_constraint_set_constant_val()
548 if (!constraint || !v) in isl_constraint_set_constant_val()
551 isl_die(isl_constraint_get_ctx(constraint), isl_error_invalid, in isl_constraint_set_constant_val()
553 constraint->v = isl_vec_set_element_val(constraint->v, 0, v); in isl_constraint_set_constant_val()
554 if (!constraint->v) in isl_constraint_set_constant_val()
555 constraint = isl_constraint_free(constraint); in isl_constraint_set_constant_val()
556 return constraint; in isl_constraint_set_constant_val()
559 return isl_constraint_free(constraint); in isl_constraint_set_constant_val()
563 __isl_take isl_constraint *constraint, int v) in isl_constraint_set_constant_si() argument
565 constraint = isl_constraint_cow(constraint); in isl_constraint_set_constant_si()
566 if (!constraint) in isl_constraint_set_constant_si()
569 constraint->v = isl_vec_cow(constraint->v); in isl_constraint_set_constant_si()
570 if (!constraint->v) in isl_constraint_set_constant_si()
571 return isl_constraint_free(constraint); in isl_constraint_set_constant_si()
573 isl_int_set_si(constraint->v->el[0], v); in isl_constraint_set_constant_si()
574 return constraint; in isl_constraint_set_constant_si()
581 __isl_take isl_constraint *constraint, in isl_constraint_set_coefficient_val() argument
584 constraint = isl_constraint_cow(constraint); in isl_constraint_set_coefficient_val()
585 if (!constraint || !v) in isl_constraint_set_coefficient_val()
588 isl_die(isl_constraint_get_ctx(constraint), isl_error_invalid, in isl_constraint_set_coefficient_val()
590 if (isl_constraint_check_range(constraint, type, pos, 1) < 0) in isl_constraint_set_coefficient_val()
593 pos += isl_local_space_offset(constraint->ls, type); in isl_constraint_set_coefficient_val()
594 constraint->v = isl_vec_set_element_val(constraint->v, pos, v); in isl_constraint_set_coefficient_val()
595 if (!constraint->v) in isl_constraint_set_coefficient_val()
596 constraint = isl_constraint_free(constraint); in isl_constraint_set_coefficient_val()
597 return constraint; in isl_constraint_set_coefficient_val()
600 return isl_constraint_free(constraint); in isl_constraint_set_coefficient_val()
604 __isl_take isl_constraint *constraint, in isl_constraint_set_coefficient_si() argument
607 constraint = isl_constraint_cow(constraint); in isl_constraint_set_coefficient_si()
608 if (isl_constraint_check_range(constraint, type, pos, 1) < 0) in isl_constraint_set_coefficient_si()
609 return isl_constraint_free(constraint); in isl_constraint_set_coefficient_si()
611 constraint->v = isl_vec_cow(constraint->v); in isl_constraint_set_coefficient_si()
612 if (!constraint->v) in isl_constraint_set_coefficient_si()
613 return isl_constraint_free(constraint); in isl_constraint_set_coefficient_si()
615 pos += isl_local_space_offset(constraint->ls, type); in isl_constraint_set_coefficient_si()
616 isl_int_set_si(constraint->v->el[pos], v); in isl_constraint_set_coefficient_si()
618 return constraint; in isl_constraint_set_coefficient_si()
622 __isl_take isl_constraint *constraint) in isl_constraint_negate() argument
626 constraint = isl_constraint_cow(constraint); in isl_constraint_negate()
627 if (!constraint) in isl_constraint_negate()
630 ctx = isl_constraint_get_ctx(constraint); in isl_constraint_negate()
631 if (isl_constraint_is_equality(constraint)) in isl_constraint_negate()
633 return isl_constraint_free(constraint)); in isl_constraint_negate()
634 constraint->v = isl_vec_neg(constraint->v); in isl_constraint_negate()
635 constraint->v = isl_vec_cow(constraint->v); in isl_constraint_negate()
636 if (!constraint->v) in isl_constraint_negate()
637 return isl_constraint_free(constraint); in isl_constraint_negate()
638 isl_int_sub_ui(constraint->v->el[0], constraint->v->el[0], 1); in isl_constraint_negate()
639 return constraint; in isl_constraint_negate()
642 isl_bool isl_constraint_is_equality(struct isl_constraint *constraint) in isl_constraint_is_equality() argument
644 if (!constraint) in isl_constraint_is_equality()
646 return isl_bool_ok(constraint->eq); in isl_constraint_is_equality()
649 isl_bool isl_constraint_is_div_constraint(__isl_keep isl_constraint *constraint) in isl_constraint_is_div_constraint() argument
654 if (!constraint) in isl_constraint_is_div_constraint()
656 if (isl_constraint_is_equality(constraint)) in isl_constraint_is_div_constraint()
658 n_div = isl_constraint_dim(constraint, isl_dim_div); in isl_constraint_is_div_constraint()
663 is_div = isl_local_space_is_div_constraint(constraint->ls, in isl_constraint_is_div_constraint()
664 constraint->v->el, i); in isl_constraint_is_div_constraint()
686 isl_bool isl_constraint_is_div_equality(__isl_keep isl_constraint *constraint, in isl_constraint_is_div_equality() argument
691 equality = isl_constraint_is_equality(constraint); in isl_constraint_is_div_equality()
694 return isl_local_space_is_div_equality(constraint->ls, in isl_constraint_is_div_equality()
695 constraint->v->el, div); in isl_constraint_is_div_equality()
704 __isl_take isl_constraint *constraint) in isl_basic_map_from_constraint() argument
712 if (!constraint) in isl_basic_map_from_constraint()
715 ls = isl_local_space_copy(constraint->ls); in isl_basic_map_from_constraint()
718 if (isl_constraint_is_equality(constraint)) { in isl_basic_map_from_constraint()
733 isl_seq_cpy(c, constraint->v->el, 1 + total); in isl_basic_map_from_constraint()
734 isl_constraint_free(constraint); in isl_basic_map_from_constraint()
739 isl_constraint_free(constraint); in isl_basic_map_from_constraint()
745 __isl_take isl_constraint *constraint) in isl_basic_set_from_constraint() argument
749 space = isl_constraint_peek_space(constraint); in isl_basic_set_from_constraint()
752 return bset_from_bmap(isl_basic_map_from_constraint(constraint)); in isl_basic_set_from_constraint()
754 isl_constraint_free(constraint); in isl_basic_set_from_constraint()
1207 __isl_keep isl_constraint *constraint, enum isl_dim_type type, int pos) in isl_constraint_get_bound() argument
1213 if (isl_constraint_check_range(constraint, type, pos, 1) < 0) in isl_constraint_get_bound()
1215 space = isl_constraint_peek_space(constraint); in isl_constraint_get_bound()
1219 ctx = isl_constraint_get_ctx(constraint); in isl_constraint_get_bound()
1220 pos += offset(constraint, type); in isl_constraint_get_bound()
1221 if (isl_int_is_zero(constraint->v->el[pos])) in isl_constraint_get_bound()
1226 aff = isl_aff_alloc(isl_local_space_copy(constraint->ls)); in isl_constraint_get_bound()
1230 if (isl_int_is_neg(constraint->v->el[pos])) in isl_constraint_get_bound()
1231 isl_seq_cpy(aff->v->el + 1, constraint->v->el, aff->v->size - 1); in isl_constraint_get_bound()
1233 isl_seq_neg(aff->v->el + 1, constraint->v->el, aff->v->size - 1); in isl_constraint_get_bound()
1235 isl_int_abs(aff->v->el[0], constraint->v->el[pos]); in isl_constraint_get_bound()
1252 __isl_keep isl_constraint *constraint) in isl_constraint_get_aff() argument
1256 if (!constraint) in isl_constraint_get_aff()
1259 aff = isl_aff_alloc(isl_local_space_copy(constraint->ls)); in isl_constraint_get_aff()
1263 isl_seq_cpy(aff->v->el + 1, constraint->v->el, aff->v->size - 1); in isl_constraint_get_aff()