00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _Zpolyhedron_h_
00019 #define _Zpolyhedron_h_
00020
00021 #if defined(__cplusplus)
00022 extern "C" {
00023 #endif
00024
00025 extern void CanonicalForm(ZPolyhedron *Zpol, ZPolyhedron **Result,
00026 Matrix **Basis);
00027 extern ZPolyhedron *EmptyZPolyhedron (int dimension);
00028 extern ZPolyhedron *IntegraliseLattice (ZPolyhedron *A);
00029 extern Bool isEmptyZPolyhedron (ZPolyhedron *Zpol);
00030 extern ZPolyhedron *ZDomainDifference (ZPolyhedron *A, ZPolyhedron *B);
00031 extern ZPolyhedron *ZDomainImage ( ZPolyhedron *A, Matrix *Func );
00032 extern Bool ZDomainIncludes ( ZPolyhedron *A, ZPolyhedron *B );
00033 extern ZPolyhedron *ZDomainIntersection ( ZPolyhedron *A, ZPolyhedron *B );
00034 extern ZPolyhedron *ZDomainPreimage ( ZPolyhedron *A, Matrix *Func );
00035 extern void ZDomainPrint(FILE *fp, const char *format, ZPolyhedron *A);
00036 extern ZPolyhedron *ZDomainSimplify ( ZPolyhedron *ZDom );
00037 extern ZPolyhedron *ZDomainUnion ( ZPolyhedron *A, ZPolyhedron *B );
00038 extern ZPolyhedron *ZDomain_Copy ( ZPolyhedron *Head );
00039 extern void ZDomain_Free ( ZPolyhedron *Head );
00040 extern Bool ZPolyhedronIncludes ( ZPolyhedron *A, ZPolyhedron *B );
00041 extern ZPolyhedron *ZPolyhedron_Alloc ( Lattice *Lat, Polyhedron *Poly );
00042 extern ZPolyhedron *SplitZpolyhedron(ZPolyhedron *ZPol, Lattice *B);
00043
00044 #if defined(__cplusplus)
00045 }
00046 #endif
00047
00048 #endif