3 static void print_constraint_polylib(struct isl_basic_set *bset,
5 FILE *out, int indent, const char *prefix, const char *suffix)
8 isl_int *c = ineq ? bset->ineq[n] : bset->eq[n];
10 fprintf(out, "%*s%s", indent, "", prefix ? prefix : "");
11 fprintf(out, "%d", ineq);
12 for (i = 0; i < bset->dim; ++i) {
14 isl_int_print(out, c[1+bset->nparam+i], 5);
16 for (i = 0; i < bset->n_div; ++i) {
18 isl_int_print(out, c[1+bset->nparam+bset->dim+i], 5);
20 for (i = 0; i < bset->nparam; ++i) {
22 isl_int_print(out, c[1+i], 5);
25 isl_int_print(out, c[0], 5);
26 fprintf(out, "%s\n", suffix ? suffix : "");
29 static void print_constraints_polylib(struct isl_basic_set *bset,
30 FILE *out, int indent, const char *prefix, const char *suffix)
34 for (i = 0; i < bset->n_eq; ++i)
35 print_constraint_polylib(bset, 0, i, out,
36 indent, prefix, suffix);
37 for (i = 0; i < bset->n_ineq; ++i)
38 print_constraint_polylib(bset, 1, i, out,
39 indent, prefix, suffix);
42 static void isl_basic_set_print_polylib(struct isl_basic_set *bset, FILE *out,
43 int indent, const char *prefix, const char *suffix)
45 unsigned total = bset->nparam + bset->dim + bset->n_div;
46 fprintf(out, "%*s%s", indent, "", prefix ? prefix : "");
47 fprintf(out, "%d %d", bset->n_eq + bset->n_ineq, 1 + total + 1);
48 fprintf(out, "%s\n", suffix ? suffix : "");
49 print_constraints_polylib(bset, out, indent, prefix, suffix);
52 static void isl_set_print_polylib(struct isl_set *set, FILE *out, int indent)
56 fprintf(out, "%*s", indent, "");
57 fprintf(out, "%d\n", set->n);
58 for (i = 0; i < set->n; ++i) {
60 isl_basic_set_print_polylib(set->p[i], out, indent, NULL, NULL);
64 void isl_basic_set_print(struct isl_basic_set *bset, FILE *out, int indent,
65 const char *prefix, const char *suffix, unsigned output_format)
69 if (output_format == ISL_FORMAT_POLYLIB)
70 isl_basic_set_print_polylib(bset, out, indent, prefix, suffix);
71 else if (output_format == ISL_FORMAT_POLYLIB_CONSTRAINTS)
72 print_constraints_polylib(bset, out, indent, prefix, suffix);
74 isl_assert(bset->ctx, 0, return);
77 void isl_set_print(struct isl_set *set, FILE *out, int indent,
78 unsigned output_format)
82 if (output_format == ISL_FORMAT_POLYLIB)
83 isl_set_print_polylib(set, out, indent);
85 isl_assert(set->ctx, 0, return);