polylib 7.01
OldLattice.c File Reference
#include <polylib/polylib.h>
#include <stdlib.h>

Go to the source code of this file.

Classes

struct  factor
 

Macros

#define LATDIF_DEBUG   1
 

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)
 
Lattice * EmptyLattice (int dimension)
 
Bool isEmptyLattice (Lattice *A)
 
Bool isLinear (Lattice *A)
 
void AffineHermite (Lattice *A, Lattice **H, Matrix **U)
 
Lattice * Homogenise (Lattice *A, Bool Forward)
 
Bool LatticeIncludes (Lattice *A, Lattice *B)
 
Bool sameLattice (Lattice *A, Lattice *B)
 
Lattice * ChangeLatticeDimension (Lattice *A, int dimension)
 
Lattice * ExtractLinearPart (Lattice *A)
 
static void AddLattice (LatticeUnion *, Matrix *, Matrix *, Value, int)
 
LatticeUnionSplitLattice (Matrix *, Matrix *, Matrix *)
 
LatticeUnionLattice2LatticeUnion (Lattice *X, Lattice *Y)
 
LatticeUnionLatticeDifference (Lattice *A, Lattice *B)
 
LatticeUnionSplitLattice (Lattice *B1, Lattice *B2, Matrix *C)
 
Bool IsLattice (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 factor prime_factors (int n)
 
Lattice * LatticeIntersection (Lattice *A, Lattice *B)
 
void Matrix_Move_Homogeneous_Dim_First (Matrix *A)
 
void Matrix_Move_Homogeneous_Dim_Last (Matrix *A)
 

Macro Definition Documentation

◆ LATDIF_DEBUG

#define LATDIF_DEBUG   1

Definition at line 5 of file OldLattice.c.

Function Documentation

◆ AddLattice()

static void AddLattice ( LatticeUnion Head,
Matrix B1,
Matrix B2,
Value  NumofTimes,
int  Colnumber 
)
static

◆ AffineHermite()

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

◆ AffinePartCompare()

static int AffinePartCompare ( const void *  A,
const void *  B 
)
static

Definition at line 1556 of file OldLattice.c.

References value_gt, and value_lt.

Referenced by AffinePartSort().

◆ AffinePartSimplify()

static Bool AffinePartSimplify ( LatticeUnion curlist,
LatticeUnion **  newlist 
)
static

◆ AffinePartSort()

static void AffinePartSort ( LatticeUnion List)
static

Definition at line 1580 of file OldLattice.c.

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

Referenced by AffinePartSimplify().

◆ allfactors()

static factor allfactors ( int  num)
static

Definition at line 1801 of file OldLattice.c.

References factor::count, factor::fac, n, and prime_factors().

Referenced by Simplify().

◆ AlmostSameAffinePart()

static Bool AlmostSameAffinePart ( LatticeUnion A,
LatticeUnion B 
)
static

Definition at line 1605 of file OldLattice.c.

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

Referenced by AffinePartSimplify().

◆ ChangeLatticeDimension()

Lattice * ChangeLatticeDimension ( Lattice *  A,
int  dimension 
)

Definition at line 405 of file OldLattice.c.

References Matrix_Alloc(), value_assign, and value_set_si.

◆ EmptyLattice()

Lattice * EmptyLattice ( int  dimension)

Definition at line 81 of file OldLattice.c.

References Matrix_Alloc(), and value_set_si.

◆ ExtractLinearPart()

Lattice * ExtractLinearPart ( Lattice *  A)

Definition at line 435 of file OldLattice.c.

References Matrix_Alloc(), and value_assign.

Referenced by Lattice2LatticeUnion().

◆ Homogenise()

Lattice * Homogenise ( Lattice *  A,
Bool  Forward 
)

◆ intcompare()

int intcompare ( const void *  a,
const void *  b 
)

Definition at line 1745 of file OldLattice.c.

◆ isEmptyLattice()

Bool isEmptyLattice ( Lattice *  A)

Definition at line 105 of file OldLattice.c.

References False, True, and value_notzero_p.

Referenced by Lattice2LatticeUnion(), and LatticeDifference().

◆ IsLattice()

Bool IsLattice ( Matrix m)

Definition at line 1294 of file OldLattice.c.

References False, m, True, value_notone_p, and value_notzero_p.

◆ isLinear()

Bool isLinear ( Lattice *  A)

Definition at line 125 of file OldLattice.c.

References False, True, and value_notzero_p.

◆ Lattice2LatticeUnion()

◆ LatticeDifference()

◆ LatticeIncludes()

Bool LatticeIncludes ( Lattice *  A,
Lattice *  B 
)

Definition at line 334 of file OldLattice.c.

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

◆ LatticeIntersection()

Lattice * LatticeIntersection ( Lattice *  A,
Lattice *  B 
)

◆ LatticeSimplify()

LatticeUnion * LatticeSimplify ( LatticeUnion latlist)

◆ LatticeUnion_Alloc()

LatticeUnion * LatticeUnion_Alloc ( void  )

Definition at line 46 of file OldLattice.c.

References lattice_union::M, and lattice_union::next.

◆ LatticeUnion_Free()

void LatticeUnion_Free ( LatticeUnion Head)

Definition at line 30 of file OldLattice.c.

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

◆ LinearPartCompare()

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

Definition at line 1501 of file OldLattice.c.

References value_gt, and value_lt.

Referenced by LinearPartSort().

◆ LinearPartSort()

static void LinearPartSort ( LatticeUnion Head)
static

Definition at line 1524 of file OldLattice.c.

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

Referenced by LatticeSimplify().

◆ Matrix_Move_Homogeneous_Dim_First()

void Matrix_Move_Homogeneous_Dim_First ( Matrix A)

Definition at line 2044 of file OldLattice.c.

References matrix::NbColumns, matrix::NbRows, matrix::p, value_assign, value_clear, and value_init.

Referenced by AffineHermite().

◆ Matrix_Move_Homogeneous_Dim_Last()

void Matrix_Move_Homogeneous_Dim_Last ( Matrix A)

◆ prime_factors()

static factor prime_factors ( int  n)
static

Definition at line 1759 of file OldLattice.c.

References factor::count, factor::fac, and n.

Referenced by allfactors().

◆ PrintLatticeUnion()

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

Definition at line 18 of file OldLattice.c.

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

Referenced by LatticeDifference().

◆ sameAffinepart()

Bool sameAffinepart ( Lattice *  A,
Lattice *  B 
)

Definition at line 60 of file OldLattice.c.

References False, True, and value_ne.

◆ sameLattice()

Bool sameLattice ( Lattice *  A,
Lattice *  B 
)

Definition at line 366 of file OldLattice.c.

References AffineHermite(), False, Matrix_Free(), True, and value_ne.

Referenced by LatticeIncludes().

◆ SameLinearPart()

static Bool SameLinearPart ( LatticeUnion A,
LatticeUnion B 
)
static

Definition at line 1702 of file OldLattice.c.

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

Referenced by LatticeSimplify().

◆ Simplify()

◆ SplitLattice() [1/2]

LatticeUnion * SplitLattice ( Lattice *  B1,
Lattice *  B2,
Matrix C 
)

◆ SplitLattice() [2/2]

LatticeUnion * SplitLattice ( Matrix ,
Matrix ,
Matrix  
)

Referenced by Lattice2LatticeUnion().