1 #include <barvinok/options.h>
2 #include <barvinok/evalue.h>
3 #include <barvinok/util.h>
4 #include "config.h"
5
dump_polytope(Polyhedron * P)6 void dump_polytope(Polyhedron *P)
7 {
8 int i, j;
9 unsigned nr, nc;
10
11 fprintf(stdout, "%d %d\n", nr=P->NbConstraints, nc=P->Dimension+2);
12 for (i=0; i < nr; i++) {
13 for (j=0; j < nc; j++) {
14 value_print(stdout," "P_VALUE_FMT" ", P->Constraint[i][j]);
15 }
16 fprintf(stdout, "\n");
17 }
18 }
19
main(int argc,char ** argv)20 int main(int argc, char **argv)
21 {
22 Polyhedron *A, *C;
23 Matrix *M;
24 const char **param_name;
25 int i;
26 struct barvinok_options *options = barvinok_options_new_with_defaults();
27
28 M = Matrix_Read();
29 A = Constraints2Polyhedron(M, options->MaxRays);
30 Matrix_Free(M);
31 M = Matrix_Read();
32 C = Constraints2Polyhedron(M, options->MaxRays);
33 Matrix_Free(M);
34 param_name = Read_ParamNames(stdin, C->Dimension);
35 A = remove_equalities_p(A, A->Dimension-C->Dimension, 0, options->MaxRays);
36 dump_polytope(A);
37 puts("");
38 dump_polytope(C);
39 puts("");
40 for (i = 0; i < C->Dimension; ++i)
41 printf("%s ", param_name[i]);
42 puts("");
43 Free_ParamNames(param_name, C->Dimension);
44 Polyhedron_Free(A);
45 Polyhedron_Free(C);
46 barvinok_options_free(options);
47 return 0;
48 }
49