Lines Matching defs:MULTI

22 #define MULTI(BASE) xMULTI(BASE)
27 isl_ctx *FN(MULTI(BASE),get_ctx)(__isl_keep MULTI(BASE) *multi)
32 __isl_give isl_space *FN(MULTI(BASE),get_space)(__isl_keep MULTI(BASE) *multi)
37 __isl_give isl_space *FN(MULTI(BASE),get_domain_space)(
38 __isl_keep MULTI(BASE) *multi)
43 __isl_give MULTI(BASE) *FN(MULTI(BASE),alloc)(__isl_take isl_space *space)
47 MULTI(BASE) *multi;
54 multi = isl_calloc(ctx, MULTI(BASE),
55 sizeof(MULTI(BASE)) + (n - 1) * sizeof(struct EL *));
68 __isl_give MULTI(BASE) *FN(MULTI(BASE),dup)(__isl_keep MULTI(BASE) *multi)
71 MULTI(BASE) *dup;
76 dup = FN(MULTI(BASE),alloc)(isl_space_copy(multi->space));
81 dup = FN(FN(MULTI(BASE),set),BASE)(dup, i,
87 __isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi)
96 return FN(MULTI(BASE),dup)(multi);
99 __isl_give MULTI(BASE) *FN(MULTI(BASE),copy)(__isl_keep MULTI(BASE) *multi)
108 void *FN(MULTI(BASE),free)(__isl_take MULTI(BASE) *multi)
126 __isl_give MULTI(BASE) *FN(MULTI(BASE),insert_dims)(
127 __isl_take MULTI(BASE) *multi,
135 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
137 return FN(MULTI(BASE),free)(multi));
141 multi = FN(MULTI(BASE),cow)(multi);
147 return FN(MULTI(BASE),free)(multi);
152 return FN(MULTI(BASE),free)(multi);
158 __isl_give MULTI(BASE) *FN(MULTI(BASE),add_dims)(__isl_take MULTI(BASE) *multi,
163 pos = FN(MULTI(BASE),dim)(multi, type);
165 return FN(MULTI(BASE),insert_dims)(multi, type, pos, n);
168 unsigned FN(MULTI(BASE),dim)(__isl_keep MULTI(BASE) *multi,
174 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_dim_name)(
175 __isl_take MULTI(BASE) *multi,
180 multi = FN(MULTI(BASE),cow)(multi);
186 return FN(MULTI(BASE),free)(multi);
193 return FN(MULTI(BASE),free)(multi);
199 const char *FN(MULTI(BASE),get_tuple_name)(__isl_keep MULTI(BASE) *multi,
205 __isl_give EL *FN(FN(MULTI(BASE),get),BASE)(__isl_keep MULTI(BASE) *multi,
212 ctx = FN(MULTI(BASE),get_ctx)(multi);
219 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),set),BASE)(
220 __isl_take MULTI(BASE) *multi, int pos, __isl_take EL *el)
225 multi = FN(MULTI(BASE),cow)(multi);
229 multi_space = FN(MULTI(BASE),get_space)(multi);
234 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
245 FN(MULTI(BASE),free)(multi);
258 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_space_and_domain)(
259 __isl_take MULTI(BASE) *multi, __isl_take isl_space *space,
264 multi = FN(MULTI(BASE),cow)(multi);
282 FN(MULTI(BASE),free)(multi);
286 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_domain_space)(
287 __isl_take MULTI(BASE) *multi, __isl_take isl_space *domain)
293 return FN(MULTI(BASE),reset_space_and_domain)(multi, space, domain);
296 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_space)(
297 __isl_take MULTI(BASE) *multi, __isl_take isl_space *space)
302 return FN(MULTI(BASE),reset_space_and_domain)(multi, space, domain);
305 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_name)(
306 __isl_keep MULTI(BASE) *multi, enum isl_dim_type type,
311 multi = FN(MULTI(BASE),cow)(multi);
315 space = FN(MULTI(BASE),get_space)(multi);
318 return FN(MULTI(BASE),reset_space)(multi, space);
321 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_id)(
322 __isl_keep MULTI(BASE) *multi, enum isl_dim_type type,
327 multi = FN(MULTI(BASE),cow)(multi);
331 space = FN(MULTI(BASE),get_space)(multi);
334 return FN(MULTI(BASE),reset_space)(multi, space);
337 __isl_give MULTI(BASE) *FN(MULTI(BASE),realign_domain)(
338 __isl_take MULTI(BASE) *multi, __isl_take isl_reordering *exp)
342 multi = FN(MULTI(BASE),cow)(multi);
353 multi = FN(MULTI(BASE),reset_domain_space)(multi,
360 FN(MULTI(BASE),free)(multi);
366 __isl_give MULTI(BASE) *FN(MULTI(BASE),align_params)(
367 __isl_take MULTI(BASE) *multi, __isl_take isl_space *model)
388 FN(MULTI(BASE),get_domain_space)(multi));
389 multi = FN(MULTI(BASE),realign_domain)(multi, exp);
396 FN(MULTI(BASE),free)(multi);
401 static __isl_give MULTI(BASE) *FN(MULTI(BASE),align_params_multi_set_and)(
402 __isl_take MULTI(BASE) *multi, __isl_take isl_set *set,
403 __isl_give MULTI(BASE) *(*fn)(__isl_take MULTI(BASE) *multi,
413 ctx = FN(MULTI(BASE),get_ctx)(multi);
418 multi = FN(MULTI(BASE),align_params)(multi, isl_set_get_space(set));
419 set = isl_set_align_params(set, FN(MULTI(BASE),get_space)(multi));
422 FN(MULTI(BASE),free)(multi);
427 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist_aligned)(
428 __isl_take MULTI(BASE) *multi, __isl_take isl_set *context)
432 multi = FN(MULTI(BASE),cow)(multi);
446 FN(MULTI(BASE),free)(multi);
450 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist)(__isl_take MULTI(BASE) *multi,
453 return FN(MULTI(BASE),align_params_multi_set_and)(multi, context,
454 &FN(MULTI(BASE),gist_aligned));
457 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist_params)(
458 __isl_take MULTI(BASE) *multi, __isl_take isl_set *context)
460 isl_space *space = FN(MULTI(BASE),get_domain_space)(multi);
463 return FN(MULTI(BASE),gist)(multi, dom_context);
467 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),LIST(BASE))(
473 MULTI(BASE) *multi;
484 multi = FN(MULTI(BASE),alloc)(isl_space_copy(space));
486 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i,
503 __isl_give MULTI(BASE) *FN(MULTI(BASE),identity)(__isl_take isl_space *space)
507 MULTI(BASE) *multi;
522 multi = FN(MULTI(BASE),alloc)(isl_space_copy(space));
536 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i, el);
551 __isl_give MULTI(BASE) *FN(MULTI(BASE),zero)(__isl_take isl_space *space)
554 MULTI(BASE) *multi;
560 multi = FN(MULTI(BASE),alloc)(isl_space_copy(space));
574 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i,
584 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),BASE)(__isl_take EL *el)
586 MULTI(BASE) *multi;
588 multi = FN(MULTI(BASE),alloc)(FN(EL,get_space)(el));
589 multi = FN(FN(MULTI(BASE),set),BASE)(multi, 0, el);
595 __isl_give MULTI(BASE) *FN(MULTI(BASE),drop_dims)(
596 __isl_take MULTI(BASE) *multi,
602 multi = FN(MULTI(BASE),cow)(multi);
606 dim = FN(MULTI(BASE),dim)(multi, type);
608 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
610 return FN(MULTI(BASE),cow)(multi));
614 return FN(MULTI(BASE),cow)(multi);
629 return FN(MULTI(BASE),cow)(multi);
635 /* Given two MULTI(BASE)s A -> B and C -> D,
636 * construct a MULTI(BASE) (A * C) -> (B, D).
638 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_product)(
639 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
644 MULTI(BASE) *res;
649 space = isl_space_range_product(FN(MULTI(BASE),get_space)(multi1),
650 FN(MULTI(BASE),get_space)(multi2));
651 res = FN(MULTI(BASE),alloc)(space);
653 n1 = FN(MULTI(BASE),dim)(multi1, isl_dim_out);
654 n2 = FN(MULTI(BASE),dim)(multi2, isl_dim_out);
657 el = FN(FN(MULTI(BASE),get),BASE)(multi1, i);
658 res = FN(FN(MULTI(BASE),set),BASE)(res, i, el);
662 el = FN(FN(MULTI(BASE),get),BASE)(multi2, i);
663 res = FN(FN(MULTI(BASE),set),BASE)(res, n1 + i, el);
666 FN(MULTI(BASE),free)(multi1);
667 FN(MULTI(BASE),free)(multi2);
670 FN(MULTI(BASE),free)(multi1);
671 FN(MULTI(BASE),free)(multi2);
675 __isl_give MULTI(BASE) *FN(MULTI(BASE),flatten_range)(
676 __isl_take MULTI(BASE) *multi)
684 multi = FN(MULTI(BASE),cow)(multi);
690 return FN(MULTI(BASE),free)(multi);
695 /* Given two MULTI(BASE)s A -> B and C -> D,
696 * construct a MULTI(BASE) (A * C) -> [B -> D].
698 __isl_give MULTI(BASE) *FN(MULTI(BASE),flat_range_product)(
699 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
701 MULTI(BASE) *multi;
703 multi = FN(MULTI(BASE),range_product)(multi1, multi2);
704 multi = FN(MULTI(BASE),flatten_range)(multi);
720 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_splice)(
721 __isl_take MULTI(BASE) *multi1, unsigned pos,
722 __isl_take MULTI(BASE) *multi2)
724 MULTI(BASE) *res;
730 dim = FN(MULTI(BASE),dim)(multi1, isl_dim_out);
732 isl_die(FN(MULTI(BASE),get_ctx)(multi1), isl_error_invalid,
735 res = FN(MULTI(BASE),copy)(multi1);
736 res = FN(MULTI(BASE),drop_dims)(res, isl_dim_out, pos, dim - pos);
737 multi1 = FN(MULTI(BASE),drop_dims)(multi1, isl_dim_out, 0, pos);
739 res = FN(MULTI(BASE),flat_range_product)(res, multi2);
740 res = FN(MULTI(BASE),flat_range_product)(res, multi1);
744 FN(MULTI(BASE),free)(multi1);
745 FN(MULTI(BASE),free)(multi2);
772 __isl_give MULTI(BASE) *FN(MULTI(BASE),splice)(
773 __isl_take MULTI(BASE) *multi1, unsigned in_pos, unsigned out_pos,
774 __isl_take MULTI(BASE) *multi2)
782 n_in1 = FN(MULTI(BASE),dim)(multi1, isl_dim_in);
784 isl_die(FN(MULTI(BASE),get_ctx)(multi1), isl_error_invalid,
787 n_in2 = FN(MULTI(BASE),dim)(multi2, isl_dim_in);
789 multi1 = FN(MULTI(BASE),insert_dims)(multi1, isl_dim_in, in_pos, n_in2);
790 multi2 = FN(MULTI(BASE),insert_dims)(multi2, isl_dim_in, n_in2,
792 multi2 = FN(MULTI(BASE),insert_dims)(multi2, isl_dim_in, 0, in_pos);
794 return FN(MULTI(BASE),range_splice)(multi1, out_pos, multi2);
796 FN(MULTI(BASE),free)(multi1);
797 FN(MULTI(BASE),free)(multi2);
803 static __isl_give MULTI(BASE) *FN(MULTI(BASE),bin_op)(
804 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2,
811 static __isl_give MULTI(BASE) *FN(MULTI(BASE),bin_op)(
812 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2,
818 multi1 = FN(MULTI(BASE),cow)(multi1);
822 ctx = FN(MULTI(BASE),get_ctx)(multi1);
833 FN(MULTI(BASE),free)(multi2);
836 FN(MULTI(BASE),free)(multi1);
837 FN(MULTI(BASE),free)(multi2);
843 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_val)(__isl_take MULTI(BASE) *multi,
860 multi = FN(MULTI(BASE),cow)(multi);
874 return FN(MULTI(BASE),free)(multi);
880 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_multi_val)(
881 __isl_take MULTI(BASE) *multi, __isl_take isl_multi_val *mv)
893 multi = FN(MULTI(BASE),cow)(multi);
910 return FN(MULTI(BASE),free)(multi);