00001
00002
00003
00004
00005
00006
00007 #ifndef _Lattice_h_
00008 #define _Lattice_h_
00009 #if __STDC__
00010
00011 extern void AffineHermite ( Lattice *A, Lattice **H, Matrix **U );
00012 extern void AffineSmith ( Lattice *A, Lattice **U, Lattice **V, Lattice
00013 **Diag );
00014 extern Lattice *ChangeLatticeDimension ( Lattice *A, int dimension );
00015 extern Lattice *EmptyLattice ( int dimension );
00016 extern Lattice *ExtractLinearPart ( Lattice *A );
00017 extern int FindHermiteBasisofDomain ( Polyhedron *A, Matrix **B );
00018 extern Lattice *Homogenise ( Lattice *A, Bool Forward );
00019 extern int intcompare ( const void *a, const void *b );
00020 extern Bool isEmptyLattice ( Lattice *A );
00021 extern Bool isfulldim ( Matrix *m );
00022 extern Bool IsLattice ( Matrix *m );
00023 extern Bool isLinear ( Lattice *A );
00024 extern LatticeUnion *LatticeDifference ( Lattice *A, Lattice *B );
00025 extern Lattice *LatticeImage ( Lattice *A, Matrix *M );
00026 extern Bool LatticeIncludes ( Lattice *A, Lattice *B );
00027 extern Lattice *LatticeIntersection ( Lattice *X, Lattice *Y );
00028 extern Lattice *LatticePreimage ( Lattice *L, Matrix *G );
00029 extern LatticeUnion *LatticeSimplify ( LatticeUnion *latlist );
00030 extern LatticeUnion *LatticeUnion_Alloc ( void );
00031 extern void LatticeUnion_Free ( LatticeUnion *Head );
00032 extern void PrintLatticeUnion ( FILE *fp, char *format, LatticeUnion
00033 *Head );
00034 extern Bool sameAffinepart ( Lattice *A, Lattice *B );
00035 extern Bool sameLattice ( Lattice *A, Lattice *B );
00036 extern LatticeUnion *Lattice2LatticeUnion();
00037
00038 #else
00039
00040 extern void AffineHermite ();
00041 extern void AffineSmith (
00042 );
00043 extern Lattice *ChangeLatticeDimension ();
00044 extern Lattice *EmptyLattice ();
00045 extern Lattice *ExtractLinearPart ();
00046 extern int FindHermiteBasisofDomain ();
00047 extern Lattice *Homogenise ();
00048 extern int intcompare ();
00049 extern Bool isEmptyLattice ();
00050 extern Bool isfulldim ();
00051 extern Bool IsLattice ();
00052 extern Bool isLinear ();
00053 extern LatticeUnion *LatticeDifference ();
00054 extern Lattice *LatticeImage ();
00055 extern Bool LatticeIncludes ();
00056 extern Lattice *LatticeIntersection ();
00057 extern Lattice *LatticePreimage ();
00058 extern LatticeUnion *LatticeSimplify ();
00059 extern LatticeUnion *LatticeUnion_Alloc ();
00060 extern void LatticeUnion_Free ();
00061 extern void PrintLatticeUnion (
00062 );
00063 extern Bool sameAffinepart ();
00064 extern Bool sameLattice ();
00065 extern LatticeUnion *Lattice2LatticeUnion();
00066
00067 #endif
00068 #endif