14 Matrix *a=NULL, *b=NULL, *c=NULL, *d, *e, *g;
18 int nbPol, nbMat, func, rank ;
47 ((sscanf(
s,
"D %d", &nbPol)<1) && (sscanf(
s,
"M %d", &nbMat)<1)) )
73 ((sscanf(
s,
"D %d", &nbPol)<1) && (sscanf(
s,
"M %d", &nbMat)<1)) )
110 fgets(
s, 128, stdin);
111 while ((*
s==
'#') || (sscanf(
s,
"F %d", &func)<1) ) fgets(
s, 128, stdin);
153 fprintf(stdout,
"L1 - L2 :\n");
160 fprintf(stdout,
"Diff2:\n");
166 fprintf(stdout,
"Diff3:\n");
172 fprintf(stdout,
"Diff4:\n");
233 fprintf(stdout,
"the Two zpol are equal? :%d\n",
257 fprintf(stdout,
"A in B :%d \nB in A :%d \n",
319 fprintf(stdout,
" rank: %d \n ",rank);
324 fprintf(stdout,
" rank: %d \n ",rank);
329 fprintf(stdout,
" rank: %d \n ",rank);
351 printf(
"? unknown function\n");
Lattice * EmptyLattice(int dimension)
LatticeUnion * LatticeUnion_Alloc(void)
void AffineHermite(Lattice *A, Lattice **H, Matrix **U)
LatticeUnion * LatticeDifference(Lattice *A, Lattice *B)
Method :
Bool isEmptyLattice(Lattice *A)
Lattice * LatticeIntersection(Lattice *X, Lattice *Y)
Bool LatticeIncludes(Lattice *A, Lattice *B)
LatticeUnion * LatticeSimplify(LatticeUnion *latlist)
void AffineSmith(Lattice *A, Lattice **U, Lattice **V, Lattice **Diag)
Lattice * LatticePreimage(Lattice *L, Matrix *G)
void LatticeUnion_Free(LatticeUnion *Head)
void PrintLatticeUnion(FILE *fp, char *format, LatticeUnion *Head)
Lattice * LatticeImage(Lattice *A, Matrix *M)
Matrix * Matrix_Copy(Matrix const *Src)
int SolveDiophantine(Matrix *M, Matrix **U, Vector **X)
ZPolyhedron * ZDomainIntersection(ZPolyhedron *A, ZPolyhedron *B)
ZPolyhedron * ZDomainSimplify(ZPolyhedron *ZDom)
void ZDomain_Free(ZPolyhedron *Head)
ZPolyhedron * SplitZpolyhedron(ZPolyhedron *ZPol, Lattice *B)
ZPolyhedron * ZDomainDifference(ZPolyhedron *A, ZPolyhedron *B)
void ZDomainPrint(FILE *fp, const char *format, ZPolyhedron *A)
ZPolyhedron * ZPolyhedron_Alloc(Lattice *Lat, Polyhedron *Poly)
Bool isEmptyZPolyhedron(ZPolyhedron *Zpol)
ZPolyhedron * EmptyZPolyhedron(int dimension)
ZPolyhedron * ZDomainImage(ZPolyhedron *A, Matrix *Func)
ZPolyhedron * ZDomainPreimage(ZPolyhedron *A, Matrix *Func)
ZPolyhedron * ZDomainUnion(ZPolyhedron *A, ZPolyhedron *B)
void CanonicalForm(ZPolyhedron *Zpol, ZPolyhedron **Result, Matrix **Basis)
Bool ZPolyhedronIncludes(ZPolyhedron *A, ZPolyhedron *B)
Matrix * Matrix_Read(void)
void Matrix_Print(FILE *Dst, const char *Format, Matrix *Mat)
void Matrix_Free(Matrix *Mat)
Polyhedron * DomainConvex(Polyhedron *Pol, unsigned NbMaxConstrs)
Polyhedron * DomainUnion(Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
Matrix * Polyhedron2Constraints(Polyhedron *Pol)
Polyhedron * Constraints2Polyhedron(Matrix *Constraints, unsigned NbMaxRays)
Given a matrix of constraints ('Constraints'), construct and return a polyhedron.
void Domain_Free(Polyhedron *Pol)
struct LatticeUnion * next
struct ZPolyhedron * next
void Vector_Free(Vector *vector)
void Vector_Print(FILE *Dst, const char *Format, Vector *vector)