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