2 * Copyright 2008-2009 Katholieke Universiteit Leuven
4 * Use of this software is governed by the GNU LGPLv2.1 license
6 * Written by Sven Verdoolaege, K.U.Leuven, Departement
7 * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
12 static void print_constraint_polylib(struct isl_basic_set
*bset
,
14 FILE *out
, int indent
, const char *prefix
, const char *suffix
)
17 unsigned dim
= isl_basic_set_n_dim(bset
);
18 unsigned nparam
= isl_basic_set_n_param(bset
);
19 isl_int
*c
= ineq
? bset
->ineq
[n
] : bset
->eq
[n
];
21 fprintf(out
, "%*s%s", indent
, "", prefix
? prefix
: "");
22 fprintf(out
, "%d", ineq
);
23 for (i
= 0; i
< dim
; ++i
) {
25 isl_int_print(out
, c
[1+nparam
+i
], 5);
27 for (i
= 0; i
< bset
->n_div
; ++i
) {
29 isl_int_print(out
, c
[1+nparam
+dim
+i
], 5);
31 for (i
= 0; i
< nparam
; ++i
) {
33 isl_int_print(out
, c
[1+i
], 5);
36 isl_int_print(out
, c
[0], 5);
37 fprintf(out
, "%s\n", suffix
? suffix
: "");
40 static void print_constraints_polylib(struct isl_basic_set
*bset
,
41 FILE *out
, int indent
, const char *prefix
, const char *suffix
)
45 for (i
= 0; i
< bset
->n_eq
; ++i
)
46 print_constraint_polylib(bset
, 0, i
, out
,
47 indent
, prefix
, suffix
);
48 for (i
= 0; i
< bset
->n_ineq
; ++i
)
49 print_constraint_polylib(bset
, 1, i
, out
,
50 indent
, prefix
, suffix
);
53 static void isl_basic_set_print_polylib(struct isl_basic_set
*bset
, FILE *out
,
54 int indent
, const char *prefix
, const char *suffix
)
56 unsigned total
= isl_basic_set_total_dim(bset
);
57 fprintf(out
, "%*s%s", indent
, "", prefix
? prefix
: "");
58 fprintf(out
, "%d %d", bset
->n_eq
+ bset
->n_ineq
, 1 + total
+ 1);
59 fprintf(out
, "%s\n", suffix
? suffix
: "");
60 print_constraints_polylib(bset
, out
, indent
, prefix
, suffix
);
63 static void isl_set_print_polylib(struct isl_set
*set
, FILE *out
, int indent
)
67 fprintf(out
, "%*s", indent
, "");
68 fprintf(out
, "%d\n", set
->n
);
69 for (i
= 0; i
< set
->n
; ++i
) {
71 isl_basic_set_print_polylib(set
->p
[i
], out
, indent
, NULL
, NULL
);
75 void isl_basic_set_print(struct isl_basic_set
*bset
, FILE *out
, int indent
,
76 const char *prefix
, const char *suffix
, unsigned output_format
)
80 if (output_format
== ISL_FORMAT_POLYLIB
)
81 isl_basic_set_print_polylib(bset
, out
, indent
, prefix
, suffix
);
82 else if (output_format
== ISL_FORMAT_POLYLIB_CONSTRAINTS
)
83 print_constraints_polylib(bset
, out
, indent
, prefix
, suffix
);
85 isl_assert(bset
->ctx
, 0, return);
88 void isl_set_print(struct isl_set
*set
, FILE *out
, int indent
,
89 unsigned output_format
)
93 if (output_format
== ISL_FORMAT_POLYLIB
)
94 isl_set_print_polylib(set
, out
, indent
);
96 isl_assert(set
->ctx
, 0, return);