Lattice.c File Reference

#include <stdlib.h>
#include <polylib/polylib.h>

Go to the source code of this file.

Classes

struct  factor

Functions

static factor allfactors (int num)
void PrintLatticeUnion (FILE *fp, char *format, LatticeUnion *Head)
void LatticeUnion_Free (LatticeUnion *Head)
LatticeUnionLatticeUnion_Alloc (void)
Bool sameAffinepart (Lattice *A, Lattice *B)
LatticeEmptyLattice (int dimension)
Bool isEmptyLattice (Lattice *A)
Bool isLinear (Lattice *A)
void AffineHermite (Lattice *A, Lattice **H, Matrix **U)
void AffineSmith (Lattice *A, Lattice **U, Lattice **V, Lattice **Diag)
LatticeHomogenise (Lattice *A, Bool Forward)
Bool LatticeIncludes (Lattice *A, Lattice *B)
Bool sameLattice (Lattice *A, Lattice *B)
LatticeChangeLatticeDimension (Lattice *A, int dimension)
LatticeExtractLinearPart (Lattice *A)
static MatrixMakeDioEqforInter (Matrix *A, Matrix *B)
LatticeLatticeIntersection (Lattice *X, Lattice *Y)
static void AddLattice (LatticeUnion *, Matrix *, Matrix *, int, int)
LatticeUnionSplitLattice (Matrix *, Matrix *, Matrix *)
LatticeUnionLattice2LatticeUnion (Lattice *X, Lattice *Y)
LatticeUnionLatticeDifference (Lattice *A, Lattice *B)
 Method :.
int FindHermiteBasisofDomain (Polyhedron *A, Matrix **B)
LatticeLatticeImage (Lattice *A, Matrix *M)
LatticeLatticePreimage (Lattice *L, Matrix *G)
Bool IsLattice (Matrix *m)
Bool isfulldim (Matrix *m)
static Bool Simplify (LatticeUnion **InputList, LatticeUnion **ResultList, int dim)
static int LinearPartCompare (const void *A, const void *B)
static void LinearPartSort (LatticeUnion *Head)
static int AffinePartCompare (const void *A, const void *B)
static void AffinePartSort (LatticeUnion *List)
static Bool AlmostSameAffinePart (LatticeUnion *A, LatticeUnion *B)
static Bool AffinePartSimplify (LatticeUnion *curlist, LatticeUnion **newlist)
static Bool SameLinearPart (LatticeUnion *A, LatticeUnion *B)
LatticeUnionLatticeSimplify (LatticeUnion *latlist)
int intcompare (const void *a, const void *b)
static int polylib_sqrt (int i)

Function Documentation

static void AddLattice ( LatticeUnion Head,
Matrix B1,
Matrix B2,
int  NumofTimes,
int  Colnumber 
) [static]
void AffineHermite ( Lattice A,
Lattice **  H,
Matrix **  U 
)
static int AffinePartCompare ( const void *  A,
const void *  B 
) [static]

Definition at line 1484 of file Lattice.c.

References matrix::NbRows, p, value_gt, and value_lt.

Referenced by AffinePartSort().

static Bool AffinePartSimplify ( LatticeUnion curlist,
LatticeUnion **  newlist 
) [static]
static void AffinePartSort ( LatticeUnion List  )  [static]

Definition at line 1506 of file Lattice.c.

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

Referenced by AffinePartSimplify().

void AffineSmith ( Lattice A,
Lattice **  U,
Lattice **  V,
Lattice **  Diag 
)
static factor allfactors ( int  num  )  [static]

Definition at line 1677 of file Lattice.c.

References factor::count, factor::fac, intcompare(), and polylib_sqrt().

Referenced by Simplify().

static Bool AlmostSameAffinePart ( LatticeUnion A,
LatticeUnion B 
) [static]

Definition at line 1530 of file Lattice.c.

References False, LatticeUnion::M, matrix::NbColumns, matrix::NbRows, matrix::p, True, and value_ne.

Referenced by AffinePartSimplify().

Lattice* ChangeLatticeDimension ( Lattice A,
int  dimension 
)
Lattice* EmptyLattice ( int  dimension  ) 
Lattice* ExtractLinearPart ( Lattice A  ) 

Definition at line 439 of file Lattice.c.

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

Referenced by Lattice2LatticeUnion().

int FindHermiteBasisofDomain ( Polyhedron A,
Matrix **  B 
)
Lattice* Homogenise ( Lattice A,
Bool  Forward 
)
int intcompare ( const void *  a,
const void *  b 
)

Definition at line 1663 of file Lattice.c.

Referenced by allfactors().

Bool isEmptyLattice ( Lattice A  ) 
Bool isfulldim ( Matrix m  ) 

Definition at line 1267 of file Lattice.c.

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

Referenced by ZPolyhedron_Alloc().

Bool IsLattice ( Matrix m  ) 

Definition at line 1239 of file Lattice.c.

References False, 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 145 of file Lattice.c.

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

Referenced by AffineHermite().

LatticeUnion* Lattice2LatticeUnion ( Lattice X,
Lattice Y 
)
LatticeUnion* LatticeDifference ( Lattice A,
Lattice B 
)
Lattice* LatticeImage ( Lattice A,
Matrix M 
)
Bool LatticeIncludes ( Lattice A,
Lattice B 
)

Definition at line 340 of file Lattice.c.

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

Referenced by main(), and ZPolyhedronIncludes().

Lattice* LatticeIntersection ( Lattice X,
Lattice Y 
)
Lattice* LatticePreimage ( Lattice L,
Matrix G 
)
LatticeUnion* LatticeSimplify ( LatticeUnion latlist  ) 
LatticeUnion* LatticeUnion_Alloc ( void   ) 

Definition at line 60 of file Lattice.c.

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

Referenced by main().

void LatticeUnion_Free ( LatticeUnion Head  ) 

Definition at line 44 of file Lattice.c.

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

Referenced by main(), and ZDomainSimplify().

static int LinearPartCompare ( const void *  A,
const void *  B 
) [static]

Definition at line 1429 of file Lattice.c.

References matrix::NbRows, p, value_gt, and value_lt.

Referenced by LinearPartSort().

static void LinearPartSort ( LatticeUnion Head  )  [static]

Definition at line 1452 of file Lattice.c.

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

Referenced by LatticeSimplify().

static Matrix * MakeDioEqforInter ( Matrix A,
Matrix B 
) [static]

Definition at line 569 of file Lattice.c.

References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, value_oppose, and value_set_si.

Referenced by LatticeIntersection().

static int polylib_sqrt ( int  i  )  [static]

Definition at line 1739 of file Lattice.c.

Referenced by allfactors().

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

Definition at line 32 of file Lattice.c.

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

Referenced by main().

Bool sameAffinepart ( Lattice A,
Lattice B 
)

Definition at line 74 of file Lattice.c.

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

Bool sameLattice ( Lattice A,
Lattice B 
)
static Bool SameLinearPart ( LatticeUnion A,
LatticeUnion B 
) [static]

Definition at line 1620 of file Lattice.c.

References False, LatticeUnion::M, matrix::NbRows, matrix::p, True, and value_ne.

Referenced by LatticeSimplify().

static Bool Simplify ( LatticeUnion **  InputList,
LatticeUnion **  ResultList,
int  dim 
) [static]
LatticeUnion * SplitLattice ( Matrix B1,
Matrix B2,
Matrix C 
)

Definition at line 901 of file Lattice.c.

References AddLattice(), LatticeUnion::M, matrix::NbRows, LatticeUnion::next, and matrix::p.

Referenced by Lattice2LatticeUnion().


Generated on Wed Nov 25 17:45:27 2009 for polylib by  doxygen 1.6.1