polylib: Lattice.h Source File

- Main Page
- Classes
- Files

- File List
- File Members

# Lattice.h

Go to the documentation of this file.

    00001 /*
    00002     This file is part of PolyLib.
    00003
    00004     PolyLib is free software: you can redistribute it and/or modify
    00005     it under the terms of the GNU General Public License as published by
    00006     the Free Software Foundation, either version 3 of the License, or
    00007     (at your option) any later version.
    00008
    00009     PolyLib is distributed in the hope that it will be useful,
    00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00012     GNU General Public License for more details.
    00013
    00014     You should have received a copy of the GNU General Public License
    00015     along with PolyLib.  If not, see <http://www.gnu.org/licenses/>.
    00016 */
    00017
    00018 #ifndef _Lattice_h_
    00019 #define _Lattice_h_
    00020
    00021 #if defined(__cplusplus)
    00022 extern "C" {
    00023 #endif
    00024
    00025 extern void AffineHermite ( Lattice *A, Lattice **H, Matrix **U );
    00026 extern void AffineSmith ( Lattice *A, Lattice **U, Lattice **V, Lattice
    00027                           **Diag );
    00028 extern Lattice *ChangeLatticeDimension ( Lattice *A, int dimension );
    00029 extern Lattice *EmptyLattice ( int dimension );
    00030 extern Lattice *ExtractLinearPart ( Lattice *A );
    00031 extern int FindHermiteBasisofDomain ( Polyhedron *A, Matrix **B );
    00032 extern Lattice *Homogenise ( Lattice *A, Bool Forward );
    00033 extern int intcompare ( const void *a, const void *b );
    00034 extern Bool isEmptyLattice ( Lattice *A );
    00035 extern Bool isfulldim ( Matrix *m );
    00036 extern Bool IsLattice ( Matrix *m );
    00037 extern Bool isLinear ( Lattice *A );
    00038 extern LatticeUnion *LatticeDifference ( Lattice *A, Lattice *B );
    00039 extern Lattice *LatticeImage ( Lattice *A, Matrix *M );
    00040 extern Bool LatticeIncludes ( Lattice *A, Lattice *B );
    00041 extern Lattice *LatticeIntersection ( Lattice *X, Lattice *Y );
    00042 extern Lattice *LatticePreimage ( Lattice *L, Matrix *G );
    00043 extern LatticeUnion *LatticeSimplify ( LatticeUnion *latlist );
    00044 extern LatticeUnion *LatticeUnion_Alloc ( void );
    00045 extern void LatticeUnion_Free ( LatticeUnion *Head );
    00046 extern void PrintLatticeUnion ( FILE *fp, char *format, LatticeUnion
    00047                                 *Head );
    00048 extern Bool sameAffinepart ( Lattice *A, Lattice *B );
    00049 extern Bool sameLattice ( Lattice *A, Lattice *B );
    00050 extern LatticeUnion *Lattice2LatticeUnion(Lattice *X,Lattice *Y);
    00051
    00052 #if defined(__cplusplus)
    00053 }
    00054 #endif
    00055
    00056 #endif /* _Lattice_h_ */