test program for pip support
[barvinok.git] / util.h
blob577fbed0556827ae9328a08576b3d928eb990621
1 #ifndef UTIL_H
2 #define UTIL_H
4 #if defined(__cplusplus)
5 extern "C" {
6 #endif
8 #include <polylib/polylibgmp.h>
10 void value_lcm(Value i, Value j, Value* lcm);
11 int random_int(int max);
12 Polyhedron* Polyhedron_Polar(Polyhedron *P, unsigned NbMaxRays);
13 void Polyhedron_Polarize(Polyhedron *P);
14 Polyhedron* supporting_cone(Polyhedron *P, int v);
15 Polyhedron* supporting_cone_p(Polyhedron *P, Param_Vertices *v);
16 Polyhedron* triangularize_cone(Polyhedron *P, unsigned NbMaxCons);
17 void check_triangulization(Polyhedron *P, Polyhedron *T);
18 Polyhedron *remove_equalities(Polyhedron *P);
19 Polyhedron *remove_equalities_p(Polyhedron *P, unsigned nvar, Matrix **factor);
20 void manual_count(Polyhedron *P, Value* result);
21 Polyhedron* Polyhedron_Reduce(Polyhedron *P, Value* factor);
22 Matrix * unimodular_complete(Vector *row);
23 Bool isIdentity(Matrix *M);
24 void Param_Polyhedron_Print(FILE* DST, Param_Polyhedron *PP, char **param_names);
25 void Enumeration_Print(FILE *Dst, Enumeration *en, char **params);
26 void Enumeration_mod2table(Enumeration *en, unsigned nparam);
27 size_t Enumeration_size(Enumeration *en);
28 void Free_ParamNames(char **params, int m);
29 int DomainIncludes(Polyhedron *Pol1, Polyhedron *Pol2);
30 int ConstraintSimplify(Value *old, Value *n, int len, Value* v);
31 Polyhedron *DomainConstraintSimplify(Polyhedron *P, unsigned MaxRays);
32 int line_minmax(Polyhedron *I, Value *min, Value *max);
33 void count_points_e (int pos, Polyhedron *P, int exist, int nparam,
34 Value *context, Value *res);
35 int DomainContains(Polyhedron *P, Value *list_args, int len,
36 unsigned MaxRays, int set);
38 #include "ev_operations.h"
40 Polyhedron* ParamPolyhedron_Reduce(Polyhedron *P, unsigned nvar,
41 evalue* factor);
43 #if defined(__cplusplus)
45 #endif
47 #endif