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