13 unsigned NbRows, NbColumns;
14 char s[1025], param[1025];
24 if( fgets(
s, 1024, stdin) == 0 )
27 while ( (*
s==
'#' || *
s==
'\n') && f );
29 if( f && sscanf(
s,
"%d %d", &NbRows, &NbColumns)==2 )
33 if( pm->
NbColumns != ((*P)->Dimension)+2 )
36 "Polyhedra must be in the same dimension space !\n");
59 char **pp = (
char **)malloc((*C)->Dimension*
sizeof(
char *));
60 *param_name = (
const char **)pp;
63 for( i=0 ; i<(*C)->Dimension ; ++i )
68 if(
s[c]==
' ' ||
s[c]==
'\n' ||
s[c]==0 ) {
81 pp[i] = (
char *)malloc(j);
84 if( i != (*C)->Dimension )
96 Value *pmin, Value *pmax, Value *p,
int l )
102 fprintf(stdout,
"EP( ");
108 fprintf(stdout,
" ) = ");
112 fprintf(stdout,
"\n");
119 recurse ( C, param_name, e, pmin, pmax, p, l+1 );
127int main(
int argc,
char **argv)
130 const char **param_name;
132 Value *pmin, *pmax, *p;
int i, k;
char str[256], *
s;
136 fprintf( stderr,
" Usage : %s [< file]\n", argv[0] );
144 for( en=e ; en ; en=en->
next )
148 printf(
"\n-----------------------------------\n" );
153 printf(
"Evaluation of the Ehrhart polynomial :\n");
154 pmin = (Value *)malloc(
sizeof(Value) * (C->
Dimension));
155 pmax = (Value *)malloc(
sizeof(Value) * (C->
Dimension));
156 p = (Value *)malloc(
sizeof(Value) * (C->
Dimension));
165 printf(
"Enter %d parameters (or intervals, comma separated) : ",C->
Dimension);
169 if( (
s=strpbrk(str,
",")) )
180 recurse( C, param_name, e, pmin, pmax, p, 0 );
#define value_assign(v1, v2)
#define value_increment(ref, val)
#define value_read(val, str)
#define value_print(Dst, fmt, val)
void print_evalue(FILE *DST, evalue *e, const char **pname)
int main(int argc, char **argv)
void Union_Read(Polyhedron **P, Polyhedron **C, const char ***param_name)
void recurse(Polyhedron *C, const char **param_name, Enumeration *e, Value *pmin, Value *pmax, Value *p, int l)
Value * compute_poly(Enumeration *en, Value *list_args)
Enumeration * Domain_Enumerate(Polyhedron *D, Polyhedron *C, unsigned MAXRAYS, const char **pn)
Matrix * Matrix_Alloc(unsigned NbRows, unsigned NbColumns)
Matrix * Matrix_Read_Input(Matrix *Mat)
Matrix * Matrix_Read(void)
void Matrix_Free(Matrix *Mat)
const char ** Read_ParamNames(FILE *in, int m)
Polyhedron * Constraints2Polyhedron(Matrix *Constraints, unsigned NbMaxRays)
Given a matrix of constraints ('Constraints'), construct and return a polyhedron.
void Print_Domain(FILE *DST, Polyhedron *D, const char **pname)
Polyhedron * ValidityDomain
struct _enumeration * next