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

Go to the source code of this file.

Functions

static LBLLBLConcatenate (LBL *A, LBL *B)
 
static LBLsLBLIntersection (LBL *, LBL *)
 
static LBLsLBLCopy (LBL *A)
 
static void sLBLFree (LBL *L)
 
static LBLsLBLComplement (LBL *A)
 
static Bool LBL_simple_inclusion_check (LBL *A, LBL *B)
 
static LBLsLBLImage (LBL *, Matrix *)
 
static LBLsLBLPreimage (LBL *, Matrix *)
 
static void sLBLCanonical (LBL *A)
 
static PolyhedronsLBLCompute_holes (LBL *A, Polyhedron **pExact)
 
static Bool polyhedron_int_solution (Polyhedron *scan, Value *val, int position)
 
static PolyhedronDomain_Remove_Integer_Empty (Polyhedron *D)
 
static Polyhedrondomain_project (Polyhedron *P, int eliminate)
 
static Polyhedrondomain_insert_dim (Polyhedron *D, int move)
 
static void LBL_Remove_Empty (LBL *A)
 
static void sLBLMake_lattice_equal_to (LBL *A, Matrix *ref)
 
Bool isEmptyLBL (LBL *A)
 
LBLLBLAlloc (Matrix *Lat, Polyhedron *Domain)
 
void LBLFree (LBL *L)
 
LBLLBLCopy (LBL *L)
 
LBLEmptyLBL (int dimension)
 
LBLUniverseLBL (int dimension)
 
Bool LBLIncluded (LBL *A, LBL *B)
 
static void sLBLPrint (FILE *fp, const char *format, LBL *A)
 
void LBLPrint (FILE *fp, const char *format, LBL *A)
 
LBLLBLUnion (LBL *A, LBL *B)
 
LBLLBLIntersection (LBL *A, LBL *B)
 
LBLLBLDifference (LBL *A, LBL *B)
 
LBLLBLImage (LBL *A, Matrix *Func)
 
LBLLBLPreimage (LBL *A, Matrix *Func)
 
static LBLsLBLComplement2 (LBL *A)
 
LBLLBLComplement (LBL *A)
 
static Matrixget_equalities (Polyhedron *P)
 
static Bool same_equalities (Matrix *Eq, Polyhedron *P)
 
static MatrixsLBLHomogenize_equalities (LBL *A)
 
static void sLBLSimplify_equalities (LBL *A, Matrix *Equalities)
 
static Polyhedronpolyhedron_dark_source (Polyhedron *P, int dim)
 
static Polyhedrondomain_dark_shadow (Polyhedron *P, int dim)
 
PolyhedronGenPoly (int dim, Value *val)
 
PolyhedronScan_RestAP (Polyhedron *R, Value *val, int position, int dimrest)
 
static Polyhedronbound_polyhedron (Polyhedron *D)
 
static void sLBL_Simplify_Zero_Dimensions (LBL *A)
 
static void sLBL_Lat_Normalize (LBL *A)
 
void CanonicalLBL (LBL *A)
 
static LBLsLBL2ZDomain (LBL *A)
 
LBLLBL2ZDomain (LBL *A)
 
void LBLSimplifyEmpty (LBL *A)
 
void LBLSimplify (LBL *A)
 
LBLLBLDisjointUnion (LBL *A)
 

Function Documentation

◆ bound_polyhedron()

◆ CanonicalLBL()

◆ domain_dark_shadow()

static Polyhedron * domain_dark_shadow ( Polyhedron P,
int  dim 
)
static

◆ domain_insert_dim()

static Polyhedron * domain_insert_dim ( Polyhedron D,
int  move 
)
static

◆ domain_project()

◆ Domain_Remove_Integer_Empty()

◆ EmptyLBL()

LBL * EmptyLBL ( int  dimension)

◆ GenPoly()

Polyhedron * GenPoly ( int  dim,
Value val 
)

◆ get_equalities()

static Matrix * get_equalities ( Polyhedron P)
static

◆ isEmptyLBL()

Bool isEmptyLBL ( LBL A)

◆ LBL2ZDomain()

LBL * LBL2ZDomain ( LBL A)

Definition at line 3213 of file Zpolyhedron.c.

References CanonicalLBL(), LBLConcatenate(), LBLSimplifyEmpty(), lbl::next, and sLBL2ZDomain().

Referenced by main().

◆ LBL_Remove_Empty()

static void LBL_Remove_Empty ( LBL A)
static

Definition at line 2444 of file Zpolyhedron.c.

References Domain_Free(), emptyQ, lbl::Lat, LBLPrint(), Matrix_Free(), lbl::next, lbl::P, and P_VALUE_FMT.

Referenced by CanonicalLBL(), and LBLSimplifyEmpty().

◆ LBL_simple_inclusion_check()

static Bool LBL_simple_inclusion_check ( LBL A,
LBL B 
)
static

◆ LBLAlloc()

◆ LBLComplement()

LBL * LBLComplement ( LBL A)

Definition at line 922 of file Zpolyhedron.c.

References CanonicalLBL(), LBLFree(), LBLIntersection(), lbl::next, and sLBLComplement().

Referenced by main().

◆ LBLConcatenate()

static LBL * LBLConcatenate ( LBL A,
LBL B 
)
static

◆ LBLCopy()

LBL * LBLCopy ( LBL L)

Definition at line 144 of file Zpolyhedron.c.

References LBLCopy(), lbl::next, and sLBLCopy().

Referenced by LBLCopy(), LBLDifference(), and LBLUnion().

◆ LBLDifference()

◆ LBLDisjointUnion()

LBL * LBLDisjointUnion ( LBL A)

Definition at line 3480 of file Zpolyhedron.c.

References CanonicalLBL(), LBLConcatenate(), LBLDifference(), LBLFree(), LBLIntersection(), lbl::next, and sLBLCopy().

Referenced by main().

◆ LBLFree()

void LBLFree ( LBL L)

◆ LBLImage()

LBL * LBLImage ( LBL A,
Matrix Func 
)

Definition at line 475 of file Zpolyhedron.c.

References CanonicalLBL(), EmptyLBL(), lbl::Lat, LBLConcatenate(), matrix::NbRows, lbl::next, and sLBLImage().

Referenced by main().

◆ LBLIncluded()

Bool LBLIncluded ( LBL A,
LBL B 
)

◆ LBLIntersection()

LBL * LBLIntersection ( LBL A,
LBL B 
)

◆ LBLPreimage()

LBL * LBLPreimage ( LBL A,
Matrix Func 
)

Definition at line 497 of file Zpolyhedron.c.

References CanonicalLBL(), EmptyLBL(), LBLConcatenate(), matrix::NbColumns, lbl::next, and sLBLPreimage().

Referenced by main().

◆ LBLPrint()

void LBLPrint ( FILE *  fp,
const char *  format,
LBL A 
)

◆ LBLSimplify()

◆ LBLSimplifyEmpty()

void LBLSimplifyEmpty ( LBL A)

◆ LBLUnion()

LBL * LBLUnion ( LBL A,
LBL B 
)

Definition at line 344 of file Zpolyhedron.c.

References CanonicalLBL(), LBLConcatenate(), and LBLCopy().

Referenced by main().

◆ polyhedron_dark_source()

◆ polyhedron_int_solution()

static Bool polyhedron_int_solution ( Polyhedron scan,
Value val,
int  position 
)
static

◆ same_equalities()

static Bool same_equalities ( Matrix Eq,
Polyhedron P 
)
static

◆ Scan_RestAP()

◆ sLBL2ZDomain()

◆ sLBL_Lat_Normalize()

◆ sLBL_Simplify_Zero_Dimensions()

◆ sLBLCanonical()

◆ sLBLComplement()

◆ sLBLComplement2()

◆ sLBLCompute_holes()

◆ sLBLCopy()

static LBL * sLBLCopy ( LBL A)
static

Definition at line 135 of file Zpolyhedron.c.

References lbl::Lat, LBLAlloc(), and lbl::P.

Referenced by LBLCopy(), LBLDisjointUnion(), sLBL2ZDomain(), and sLBLComplement2().

◆ sLBLFree()

static void sLBLFree ( LBL L)
static

Definition at line 106 of file Zpolyhedron.c.

References Domain_Free(), lbl::Lat, Matrix_Free(), and lbl::P.

Referenced by LBLFree().

◆ sLBLHomogenize_equalities()

static Matrix * sLBLHomogenize_equalities ( LBL A)
static

◆ sLBLImage()

static LBL * sLBLImage ( LBL A,
Matrix Func 
)
static

◆ sLBLIntersection()

◆ sLBLMake_lattice_equal_to()

◆ sLBLPreimage()

◆ sLBLPrint()

static void sLBLPrint ( FILE *  fp,
const char *  format,
LBL A 
)
static

◆ sLBLSimplify_equalities()

◆ UniverseLBL()

LBL * UniverseLBL ( int  dimension)

Definition at line 218 of file Zpolyhedron.c.

References errormsg1(), lbl::Lat, Matrix_identity(), lbl::next, lbl::P, and Universe_Polyhedron().

Referenced by main().