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

Go to the source code of this file.

Classes

struct  forsimplify
 

Typedefs

typedef struct forsimplify ForSimplify
 

Functions

static ZPolyhedronZPolyhedronIntersection (ZPolyhedron *, ZPolyhedron *)
 
static ZPolyhedronZPolyhedron_Copy (ZPolyhedron *A)
 
static void ZPolyhedron_Free (ZPolyhedron *Zpol)
 
static ZPolyhedronZPolyhedronDifference (ZPolyhedron *, ZPolyhedron *)
 
static ZPolyhedronZPolyhedronImage (ZPolyhedron *, Matrix *)
 
static ZPolyhedronZPolyhedronPreimage (ZPolyhedron *, Matrix *)
 
static ZPolyhedronAddZPolytoZDomain (ZPolyhedron *A, ZPolyhedron *Head)
 
static void ZPolyhedronPrint (FILE *fp, const char *format, ZPolyhedron *A)
 
Bool isEmptyZPolyhedron (ZPolyhedron *Zpol)
 
ZPolyhedronZPolyhedron_Alloc (Lattice *Lat, Polyhedron *Poly)
 
void ZDomain_Free (ZPolyhedron *Head)
 
ZPolyhedronZDomain_Copy (ZPolyhedron *Head)
 
static ZPolyhedronAddZPoly2ZDomain (ZPolyhedron *Zpol, ZPolyhedron *Result)
 
ZPolyhedronEmptyZPolyhedron (int dimension)
 
Bool ZDomainIncludes (ZPolyhedron *A, ZPolyhedron *B)
 
Bool ZPolyhedronIncludes (ZPolyhedron *A, ZPolyhedron *B)
 
void ZDomainPrint (FILE *fp, const char *format, ZPolyhedron *A)
 
ZPolyhedronZDomainUnion (ZPolyhedron *A, ZPolyhedron *B)
 
ZPolyhedronZDomainIntersection (ZPolyhedron *A, ZPolyhedron *B)
 
ZPolyhedronZDomainDifference (ZPolyhedron *A, ZPolyhedron *B)
 
ZPolyhedronZDomainImage (ZPolyhedron *A, Matrix *Func)
 
ZPolyhedronZDomainPreimage (ZPolyhedron *A, Matrix *Func)
 
void CanonicalForm (ZPolyhedron *Zpol, ZPolyhedron **Result, Matrix **Basis)
 
ZPolyhedronIntegraliseLattice (ZPolyhedron *A)
 
ZPolyhedronZDomainSimplify (ZPolyhedron *ZDom)
 
ZPolyhedronSplitZpolyhedron (ZPolyhedron *ZPol, Lattice *B)
 

Typedef Documentation

◆ ForSimplify

typedef struct forsimplify ForSimplify

Function Documentation

◆ AddZPoly2ZDomain()

static ZPolyhedron * AddZPoly2ZDomain ( ZPolyhedron Zpol,
ZPolyhedron Result 
)
static

◆ AddZPolytoZDomain()

◆ CanonicalForm()

◆ EmptyZPolyhedron()

◆ IntegraliseLattice()

◆ isEmptyZPolyhedron()

◆ SplitZpolyhedron()

◆ ZDomain_Copy()

ZPolyhedron * ZDomain_Copy ( ZPolyhedron Head)

◆ ZDomain_Free()

void ZDomain_Free ( ZPolyhedron Head)

◆ ZDomainDifference()

◆ ZDomainImage()

ZPolyhedron * ZDomainImage ( ZPolyhedron A,
Matrix Func 
)

◆ ZDomainIncludes()

Bool ZDomainIncludes ( ZPolyhedron A,
ZPolyhedron B 
)

Definition at line 270 of file Zpolyhedron.c.

References False, isEmptyZPolyhedron(), True, ZDomain_Free(), and ZDomainDifference().

◆ ZDomainIntersection()

◆ ZDomainPreimage()

◆ ZDomainPrint()

void ZDomainPrint ( FILE *  fp,
const char *  format,
ZPolyhedron A 
)

Definition at line 319 of file Zpolyhedron.c.

References ZPolyhedron::next, ZDomainPrint(), and ZPolyhedronPrint().

Referenced by main(), and ZDomainPrint().

◆ ZDomainSimplify()

◆ ZDomainUnion()

ZPolyhedron * ZDomainUnion ( ZPolyhedron A,
ZPolyhedron B 
)

Definition at line 353 of file Zpolyhedron.c.

References AddZPolytoZDomain(), and ZPolyhedron::next.

Referenced by main(), and ZDomainSimplify().

◆ ZPolyhedron_Alloc()

◆ ZPolyhedron_Copy()

static ZPolyhedron * ZPolyhedron_Copy ( ZPolyhedron A)
static

◆ ZPolyhedron_Free()

◆ ZPolyhedronDifference()

◆ ZPolyhedronImage()

◆ ZPolyhedronIncludes()

Bool ZPolyhedronIncludes ( ZPolyhedron A,
ZPolyhedron B 
)

◆ ZPolyhedronIntersection()

◆ ZPolyhedronPreimage()

◆ ZPolyhedronPrint()

static void ZPolyhedronPrint ( FILE *  fp,
const char *  format,
ZPolyhedron A 
)
static

Definition at line 338 of file Zpolyhedron.c.

References ZPolyhedron::Lat, Matrix_Print(), matrix::NbRows, ZPolyhedron::P, and Polyhedron_Print().

Referenced by ZDomainPrint().