5 #include <polylib/polylibgmp.h>
9 static void time_diff(struct tms
*before
, struct tms
*after
)
11 long ticks
= sysconf(_SC_CLK_TCK
);
12 printf("User: %g; Sys: %g\n",
13 (0.0 + after
->tms_utime
- before
->tms_utime
) / ticks
,
14 (0.0 + after
->tms_stime
- before
->tms_stime
) / ticks
);
19 int i
, nbPol
, nbVec
, func
, j
;
20 Polyhedron
*A
, *B
, *C
, *D
, *E
, *F
, *G
;
26 ((sscanf(s
, "D %d", &nbPol
)<1) && (sscanf(s
, "V %d", &nbVec
)<1)) )
29 for (i
= 0; i
< nbPol
; ++i
) {
30 Matrix
*M
= Matrix_Read();
31 A
= Constraints2Polyhedron(M
, 600);
34 while ((*s
=='#') || (sscanf(s
, "F %d", &func
)<1))
43 while ((*s
=='#') || (value_read(ck
, s
) != 0))
45 barvinok_count(A
, &cb
, 100);
53 Polyhedron_Print(stdout
, P_VALUE_FMT
, A
);
54 B
= Polyhedron_Polar(A
, 600);
55 Polyhedron_Print(stdout
, P_VALUE_FMT
, B
);
56 C
= Polyhedron_Polar(B
, 600);
57 Polyhedron_Print(stdout
, P_VALUE_FMT
, C
);
62 Polyhedron_Print(stdout
, P_VALUE_FMT
, A
);
63 for (j
= 0; j
< A
->NbRays
; ++j
) {
64 B
= supporting_cone(A
, j
);
65 Polyhedron_Print(stdout
, P_VALUE_FMT
, B
);
70 Polyhedron_Print(stdout
, P_VALUE_FMT
, A
);
71 barvinok_decompose(A
,&B
,&C
);
73 Polyhedron_Print(stdout
, P_VALUE_FMT
, B
);
75 Polyhedron_Print(stdout
, P_VALUE_FMT
, C
);
81 struct tms tms_before
, tms_between
, tms_after
;
84 Polyhedron_Print(stdout
, P_VALUE_FMT
, A
);
88 barvinok_count(A
, &cb
, 100);
91 value_print(stdout
, P_VALUE_FMT
, cm
);
93 time_diff(&tms_before
, &tms_between
);
95 value_print(stdout
, P_VALUE_FMT
, cb
);
97 time_diff(&tms_between
, &tms_after
);
103 Polyhedron_Print(stdout
, P_VALUE_FMT
, A
);
104 B
= triangularize_cone(A
, 100);
105 Polyhedron_Print(stdout
, P_VALUE_FMT
, B
);
106 check_triangulization(A
, B
);
110 Polyhedron_Print(stdout
, P_VALUE_FMT
, A
);
111 B
= remove_equalities(A
);
112 Polyhedron_Print(stdout
, P_VALUE_FMT
, B
);
118 Polyhedron_Print(stdout
, P_VALUE_FMT
, A
);
119 B
= Polyhedron_Reduce(A
, &f
);
120 Polyhedron_Print(stdout
, P_VALUE_FMT
, B
);
123 value_print(stdout
, P_VALUE_FMT
, f
);
130 Matrix
*M
= Matrix_Read();
132 C
= Constraints2Polyhedron(M
, 600);
134 Polyhedron_Print(stdout
, P_VALUE_FMT
, A
);
135 Polyhedron_Print(stdout
, P_VALUE_FMT
, C
);
136 en
= barvinok_enumerate(A
, C
, 600);
137 param_name
= Read_ParamNames(stdin
, C
->Dimension
);
138 print_evalue(stdout
, &en
->EP
, param_name
);
139 Enumeration_Free(en
);
145 for (i
= 0; i
< nbVec
; ++i
) {
146 Vector
*V
= Vector_Read();
147 Matrix
*M
= unimodular_complete(V
);
148 Matrix_Print(stdout
, P_VALUE_FMT
, M
);