Main Page | Class List | File List | Class Members | File Members

Lattice.h File Reference

Go to the source code of this file.

Functions

void AffineHermite (Lattice *A, Lattice **H, Matrix **U)
void AffineSmith (Lattice *A, Lattice **U, Lattice **V, Lattice **Diag)
LatticeChangeLatticeDimension (Lattice *A, int dimension)
LatticeEmptyLattice (int dimension)
LatticeExtractLinearPart (Lattice *A)
int FindHermiteBasisofDomain (Polyhedron *A, Matrix **B)
LatticeHomogenise (Lattice *A, Bool Forward)
int intcompare (const void *a, const void *b)
Bool isEmptyLattice (Lattice *A)
Bool isfulldim (Matrix *m)
Bool IsLattice (Matrix *m)
Bool isLinear (Lattice *A)
LatticeUnionLatticeDifference (Lattice *A, Lattice *B)
 Method :.

LatticeLatticeImage (Lattice *A, Matrix *M)
Bool LatticeIncludes (Lattice *A, Lattice *B)
LatticeLatticeIntersection (Lattice *X, Lattice *Y)
LatticeLatticePreimage (Lattice *L, Matrix *G)
LatticeUnionLatticeSimplify (LatticeUnion *latlist)
LatticeUnionLatticeUnion_Alloc (void)
void LatticeUnion_Free (LatticeUnion *Head)
void PrintLatticeUnion (FILE *fp, char *format, LatticeUnion *Head)
Bool sameAffinepart (Lattice *A, Lattice *B)
Bool sameLattice (Lattice *A, Lattice *B)
LatticeUnionLattice2LatticeUnion (Lattice *X, Lattice *Y)


Function Documentation

void AffineHermite Lattice A,
Lattice **  H,
Matrix **  U
 

Definition at line 159 of file Lattice.c.

References Bool, False, Hermite(), Homogenise(), isLinear(), Lattice, Matrix, Matrix_Copy(), Matrix_Free(), and True.

Referenced by AddLattice(), AddZPolytoZDomain(), CanonicalForm(), LatticeDifference(), LatticeIncludes(), LatticeIntersection(), main(), sameLattice(), and SplitZpolyhedron().

void AffineSmith Lattice A,
Lattice **  U,
Lattice **  V,
Lattice **  Diag
 

Definition at line 204 of file Lattice.c.

References False, Homogenise(), Lattice, Matrix, Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), Matrix_Inverse(), matrix::NbRows, p, matrix::p, Smith(), True, value_addmul, value_addto, value_assign, value_clear, value_decrement, value_division, value_init, value_modulus, value_neg_p, value_print, and value_set_si.

Referenced by main().

Lattice* ChangeLatticeDimension Lattice A,
int  dimension
 

Definition at line 392 of file Lattice.c.

References Lattice, Matrix_Alloc(), matrix::NbRows, matrix::p, value_assign, and value_set_si.

Referenced by CanonicalForm(), FindHermiteBasisofDomain(), and Lattice2LatticeUnion().

Lattice* EmptyLattice int  dimension  ) 
 

Definition at line 78 of file Lattice.c.

References Lattice, Matrix_Alloc(), matrix::p, and value_set_si.

Referenced by EmptyZPolyhedron(), LatticeImage(), LatticeIntersection(), LatticePreimage(), and main().

Lattice* ExtractLinearPart Lattice A  ) 
 

Definition at line 422 of file Lattice.c.

References Lattice, Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, and value_assign.

Referenced by Lattice2LatticeUnion().

int FindHermiteBasisofDomain Polyhedron A,
Matrix **  B
 

Definition at line 973 of file Lattice.c.

References ChangeLatticeDimension(), polyhedron::Constraint, polyhedron::Dimension, Domain_Free(), DomainImage(), emptyQ, findHermiteBasis(), Identity(), Matrix, Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), Matrix_Inverse(), Matrix_Product(), MAXNOOFRAYS, matrix::NbColumns, polyhedron::NbConstraints, polyhedron::NbRays, matrix::NbRows, matrix::p, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, Polyhedron, polyhedron::Ray, RemoveColumn(), value_assign, value_clear, value_division, value_init, value_lcm, value_multiply, value_notzero_p, value_set_si, value_subtract, and value_zero_p.

Referenced by CanonicalForm().

Lattice* Homogenise Lattice A,
Bool  Forward
 

Definition at line 295 of file Lattice.c.

References Lattice, Matrix, Matrix_Copy(), matrix::NbColumns, matrix::NbRows, PutColumnFirst(), PutColumnLast(), PutRowFirst(), PutRowLast(), and True.

Referenced by AffineHermite(), AffineSmith(), and isinHnf().

int intcompare const void *  a,
const void *  b
 

Definition at line 1646 of file Lattice.c.

Referenced by allfactors().

Bool isEmptyLattice Lattice A  ) 
 

Definition at line 101 of file Lattice.c.

References Bool, False, Lattice, matrix::NbColumns, matrix::NbRows, matrix::p, True, value_notzero_p, and value_one_p.

Referenced by IntegraliseLattice(), isEmptyZPolyhedron(), Lattice2LatticeUnion(), LatticeDifference(), LatticeIntersection(), main(), SplitZpolyhedron(), ZPolyhedron_Alloc(), ZPolyhedronImage(), ZPolyhedronIntersection(), and ZPolyhedronPreimage().

Bool isfulldim Matrix m  ) 
 

Definition at line 1250 of file Lattice.c.

References Bool, False, Hermite(), Matrix, Matrix_Free(), matrix::NbRows, matrix::p, True, and value_zero_p.

Referenced by ZPolyhedron_Alloc().

Bool IsLattice Matrix m  ) 
 

Definition at line 1222 of file Lattice.c.

References Bool, False, Matrix, matrix::NbColumns, matrix::NbRows, matrix::p, True, value_notone_p, and value_notzero_p.

Referenced by ZPolyhedron_Alloc().

Bool isLinear Lattice A  ) 
 

Definition at line 128 of file Lattice.c.

References Bool, False, Lattice, matrix::NbColumns, matrix::NbRows, matrix::p, True, and value_notzero_p.

Referenced by AffineHermite().

LatticeUnion* Lattice2LatticeUnion Lattice X,
Lattice Y
 

Definition at line 657 of file Lattice.c.

References ChangeLatticeDimension(), ExtractLinearPart(), isEmptyLattice(), Lattice, LatticeIntersection(), Matrix, Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), Matrix_Inverse(), Matrix_Product(), matrix::NbColumns, matrix::NbRows, matrix::p, Smith(), SplitLattice(), True, value_assign, value_clear, value_division, and value_init.

Referenced by LatticeDifference(), and SplitZpolyhedron().

LatticeUnion* LatticeDifference Lattice A,
Lattice B
 

Method :.

Definition at line 797 of file Lattice.c.

References AffineHermite(), isEmptyLattice(), isinHnf(), Lattice, Lattice2LatticeUnion(), LatticeSimplify(), LatticeUnion::M, Matrix, Matrix_Copy(), Matrix_Free(), matrix::NbColumns, matrix::NbRows, LatticeUnion::next, and True.

Referenced by main(), and ZPolyhedronDifference().

Lattice* LatticeImage Lattice A,
Matrix M
 

Definition at line 1109 of file Lattice.c.

References EmptyLattice(), Lattice, LatticePreimage(), Matrix, Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), Matrix_Inverse(), Matrix_Product(), matrix::NbColumns, matrix::NbRows, matrix::p, and value_one_p.

Referenced by IntegraliseLattice(), main(), and ZPolyhedronImage().

Bool LatticeIncludes Lattice A,
Lattice B
 

Definition at line 323 of file Lattice.c.

References AffineHermite(), Bool, False, Lattice, LatticeIntersection(), Matrix, Matrix_Free(), sameLattice(), and True.

Referenced by main(), and ZPolyhedronIncludes().

Lattice* LatticeIntersection Lattice X,
Lattice Y
 

Definition at line 458 of file Lattice.c.

References AffineHermite(), EmptyLattice(), isEmptyLattice(), isinHnf(), Lattice, MakeDioEqforInter(), Matrix, Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), matrix::NbColumns, matrix::NbRows, Vector::p, matrix::p, SolveDiophantine(), value_assign, value_set_si, and Vector_Free().

Referenced by Lattice2LatticeUnion(), LatticeIncludes(), main(), and ZPolyhedronIntersection().

Lattice* LatticePreimage Lattice L,
Matrix G
 

Definition at line 1148 of file Lattice.c.

References EmptyLattice(), Lattice, Matrix, Matrix_Alloc(), Matrix_Free(), matrix::NbColumns, matrix::NbRows, Vector::p, matrix::p, SolveDiophantine(), value_assign, value_clear, value_init, value_multiply, value_oppose, value_set_si, value_subtract, and Vector_Free().

Referenced by LatticeImage(), main(), and ZPolyhedronPreimage().

LatticeUnion* LatticeSimplify LatticeUnion latlist  ) 
 

Definition at line 1619 of file Lattice.c.

References AffinePartSimplify(), Bool, False, LinearPartSort(), LatticeUnion::next, SameLinearPart(), and True.

Referenced by LatticeDifference(), main(), and ZDomainSimplify().

LatticeUnion* LatticeUnion_Alloc void   ) 
 

Definition at line 43 of file Lattice.c.

References LatticeUnion::M, and LatticeUnion::next.

Referenced by main().

void LatticeUnion_Free LatticeUnion Head  ) 
 

Definition at line 27 of file Lattice.c.

References LatticeUnion::M, Matrix_Free(), and LatticeUnion::next.

Referenced by main(), and ZDomainSimplify().

void PrintLatticeUnion FILE *  fp,
char *  format,
LatticeUnion Head
 

Definition at line 15 of file Lattice.c.

References LatticeUnion::M, Matrix, Matrix_Print(), and LatticeUnion::next.

Referenced by main().

Bool sameAffinepart Lattice A,
Lattice B
 

Definition at line 57 of file Lattice.c.

References Bool, False, Lattice, matrix::NbColumns, matrix::NbRows, matrix::p, True, and value_ne.

Bool sameLattice Lattice A,
Lattice B
 

Definition at line 354 of file Lattice.c.

References AffineHermite(), Bool, False, Lattice, Matrix, Matrix_Free(), matrix::NbColumns, matrix::NbRows, matrix::p, True, and value_ne.

Referenced by AddZPolytoZDomain(), and LatticeIncludes().


Generated on Thu Sep 4 15:28:59 2008 for polylib by doxygen 1.3.5