Main Page   Compound List   File List   Compound Members   File Members  

Zpolyhedron.c File Reference

#include <polylib/polylib.h>

Go to the source code of this file.

Compounds

struct  forsimplify

Typedefs

typedef forsimplify ForSimplify

Functions

ZPolyhedronZPolyhedronIntersection (ZPolyhedron *, ZPolyhedron *)
ZPolyhedronZPolyhedron_Copy (ZPolyhedron *A)
void ZPolyhedron_Free (ZPolyhedron *Zpol)
ZPolyhedronZPolyhedronDifference (ZPolyhedron *, ZPolyhedron *)
ZPolyhedronZPolyhedronImage (ZPolyhedron *, Matrix *)
ZPolyhedronZPolyhedronPreimage (ZPolyhedron *, Matrix *)
ZPolyhedronAddZPolytoZDomain (ZPolyhedron *A, ZPolyhedron *Head)
void ZPolyhedronPrint (FILE *fp, char *format, ZPolyhedron *A)
Bool isEmptyZPolyhedron (ZPolyhedron *Zpol)
ZPolyhedronZPolyhedron_Alloc (Lattice *Lat, Polyhedron *Poly)
void ZDomain_Free (ZPolyhedron *Head)
ZPolyhedronZDomain_Copy (ZPolyhedron *Head)
ZPolyhedronAddZPoly2ZDomain (ZPolyhedron *Zpol, ZPolyhedron *Result)
ZPolyhedronEmptyZPolyhedron (int dimension)
Bool ZDomainIncludes (ZPolyhedron *A, ZPolyhedron *B)
Bool ZPolyhedronIncludes (ZPolyhedron *A, ZPolyhedron *B)
void ZDomainPrint (FILE *fp, 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

typedef struct forsimplify ForSimplify
 


Function Documentation

ZPolyhedron* AddZPoly2ZDomain ZPolyhedron   Zpol,
ZPolyhedron   Result
[static]
 

Definition at line 122 of file Zpolyhedron.c.

References isEmptyZPolyhedron(), ZPolyhedron::next, ZDomain_Free(), and ZPolyhedron_Copy().

Referenced by SplitZpolyhedron(), ZDomainDifference(), and ZPolyhedronDifference().

ZPolyhedron * AddZPolytoZDomain ZPolyhedron   A,
ZPolyhedron   Head
[static]
 

Definition at line 149 of file Zpolyhedron.c.

References AffineHermite(), Bool, CanonicalForm(), Domain_Copy(), Domain_Free(), DomainImage(), DomainUnion(), False, isEmptyZPolyhedron(), ZPolyhedron::Lat, Matrix_Alloc(), Matrix_Free(), Matrix_Product(), MAXNOOFRAYS, matrix::NbColumns, matrix::NbRows, ZPolyhedron::next, polyhedron::next, ZPolyhedron::P, sameLattice(), True, ZDomain_Free(), ZPolyhedron_Alloc(), ZPolyhedron_Free(), and ZPolyhedronIncludes().

Referenced by ZDomainDifference(), ZDomainImage(), ZDomainIntersection(), ZDomainPreimage(), ZDomainUnion(), and ZPolyhedronDifference().

void CanonicalForm ZPolyhedron   Zpol,
ZPolyhedron **    Result,
Matrix **    Basis
 

Definition at line 741 of file Zpolyhedron.c.

References AffineHermite(), ChangeLatticeDimension(), DomainImage(), FindHermiteBasisofDomain(), Identity(), isEmptyZPolyhedron(), ZPolyhedron::Lat, Matrix_Alloc(), Matrix_Copy(), Matrix_Free(), Matrix_Inverse(), Matrix_Product(), MAXNOOFRAYS, matrix::NbColumns, matrix::NbRows, matrix::p, ZPolyhedron::P, Polyhedron_Free(), value_assign, value_clear, value_init, ZDomain_Copy(), and ZPolyhedron_Alloc().

ZPolyhedron* EmptyZPolyhedron int    dimension
 

Definition at line 243 of file Zpolyhedron.c.

References Domain_Free(), Empty_Polyhedron(), EmptyLattice(), Matrix_Free(), and ZPolyhedron_Alloc().

ZPolyhedron* IntegraliseLattice ZPolyhedron   A
 

Definition at line 832 of file Zpolyhedron.c.

References Domain_Free(), DomainImage(), DomainPreimage(), EmptyZPolyhedron(), Identity(), isEmptyLattice(), ZPolyhedron::Lat, LatticeImage(), Matrix_Free(), MAXNOOFRAYS, matrix::NbRows, ZPolyhedron::P, and ZPolyhedron_Alloc().

Bool isEmptyZPolyhedron ZPolyhedron   Zpol
 

Definition at line 22 of file Zpolyhedron.c.

References Bool, emptyQ, False, isEmptyLattice(), ZPolyhedron::Lat, ZPolyhedron::P, and True.

ZPolyhedron* SplitZpolyhedron ZPolyhedron   ZPol,
Lattice   B
 

Definition at line 949 of file Zpolyhedron.c.

References AddZPoly2ZDomain(), AffineHermite(), isEmptyLattice(), isinHnf(), ZPolyhedron::Lat, Lattice2LatticeUnion(), LatticeUnion::M, Matrix_Copy(), Matrix_Free(), matrix::NbColumns, matrix::NbRows, LatticeUnion::next, ZPolyhedron::P, True, ZPolyhedron_Alloc(), and ZPolyhedron_Free().

ZPolyhedron* ZDomain_Copy ZPolyhedron   Head
 

Definition at line 97 of file Zpolyhedron.c.

References ZPolyhedron::next, ZDomain_Copy(), and ZPolyhedron_Copy().

void ZDomain_Free ZPolyhedron   Head
 

Definition at line 72 of file Zpolyhedron.c.

References ZPolyhedron::next, ZDomain_Free(), and ZPolyhedron_Free().

ZPolyhedron* ZDomainDifference ZPolyhedron   A,
ZPolyhedron   B
 

Definition at line 412 of file Zpolyhedron.c.

References AddZPoly2ZDomain(), AddZPolytoZDomain(), EmptyZPolyhedron(), ZPolyhedron::Lat, matrix::NbRows, ZPolyhedron::next, ZDomain_Free(), ZPolyhedron_Copy(), and ZPolyhedronDifference().

ZPolyhedron* ZDomainImage ZPolyhedron   A,
Matrix   Func
 

Definition at line 466 of file Zpolyhedron.c.

References AddZPolytoZDomain(), EmptyZPolyhedron(), ZPolyhedron::Lat, matrix::NbRows, ZPolyhedron::next, ZPolyhedron_Free(), and ZPolyhedronImage().

Bool ZDomainIncludes ZPolyhedron   A,
ZPolyhedron   B
 

Definition at line 268 of file Zpolyhedron.c.

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

ZPolyhedron* ZDomainIntersection ZPolyhedron   A,
ZPolyhedron   B
 

Definition at line 375 of file Zpolyhedron.c.

References AddZPolytoZDomain(), EmptyZPolyhedron(), ZPolyhedron::Lat, matrix::NbRows, ZPolyhedron::next, ZPolyhedron_Free(), and ZPolyhedronIntersection().

ZPolyhedron* ZDomainPreimage ZPolyhedron   A,
Matrix   Func
 

Definition at line 494 of file Zpolyhedron.c.

References AddZPolytoZDomain(), EmptyZPolyhedron(), ZPolyhedron::Lat, matrix::NbColumns, matrix::NbRows, ZPolyhedron::next, ZPolyhedron_Free(), and ZPolyhedronPreimage().

void ZDomainPrint FILE *    fp,
char *    format,
ZPolyhedron   A
 

Definition at line 317 of file Zpolyhedron.c.

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

ZPolyhedron* ZDomainSimplify ZPolyhedron   ZDom
 

Definition at line 865 of file Zpolyhedron.c.

References Bool, Domain_Copy(), Domain_Free(), DomainDifference(), DomainImage(), DomainPreimage(), emptyQ, EmptyZPolyhedron(), False, ZPolyhedron::Lat, LatticeSimplify(), LatticeUnion_Free(), forsimplify::LatUni, LatticeUnion::M, Matrix_Copy(), MAXNOOFRAYS, matrix::NbRows, LatticeUnion::next, forsimplify::next, ZPolyhedron::next, ZPolyhedron::P, forsimplify::Pol, True, ZDomainUnion(), ZPolyhedron_Alloc(), ZPolyhedron_Copy(), and ZPolyhedron_Free().

ZPolyhedron* ZDomainUnion ZPolyhedron   A,
ZPolyhedron   B
 

Definition at line 353 of file Zpolyhedron.c.

References AddZPolytoZDomain(), and ZPolyhedron::next.

ZPolyhedron* ZPolyhedron_Alloc Lattice   Lat,
Polyhedron   Poly
 

Definition at line 37 of file Zpolyhedron.c.

References polyhedron::Dimension, Domain_Copy(), False, IntegraliseLattice(), isEmptyLattice(), isfulldim(), IsLattice(), ZPolyhedron::Lat, Matrix_Copy(), matrix::NbRows, ZPolyhedron::next, ZPolyhedron::P, and ZPolyhedron_Free().

ZPolyhedron * ZPolyhedron_Copy ZPolyhedron   A [static]
 

Definition at line 110 of file Zpolyhedron.c.

References ZPolyhedron::Lat, ZPolyhedron::P, and ZPolyhedron_Alloc().

Referenced by AddZPoly2ZDomain(), ZDomain_Copy(), ZDomainDifference(), and ZDomainSimplify().

void ZPolyhedron_Free ZPolyhedron   Zpol [static]
 

Definition at line 84 of file Zpolyhedron.c.

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

Referenced by AddZPolytoZDomain(), SplitZpolyhedron(), ZDomain_Free(), ZDomainImage(), ZDomainIntersection(), ZDomainPreimage(), ZDomainSimplify(), ZPolyhedron_Alloc(), ZPolyhedronDifference(), and ZPolyhedronIntersection().

ZPolyhedron * ZPolyhedronDifference ZPolyhedron  ,
ZPolyhedron  
[static]
 

Definition at line 572 of file Zpolyhedron.c.

References AddZPoly2ZDomain(), AddZPolytoZDomain(), Bool, Domain_Copy(), Domain_Free(), DomainDifference(), DomainImage(), DomainIntersection(), DomainPreimage(), emptyQ, EmptyZPolyhedron(), False, isEmptyZPolyhedron(), ZPolyhedron::Lat, LatticeDifference(), LatticeUnion::M, Matrix_Free(), MAXNOOFRAYS, matrix::NbRows, LatticeUnion::next, ZPolyhedron::P, True, ZDomain_Copy(), ZPolyhedron_Alloc(), and ZPolyhedron_Free().

Referenced by ZDomainDifference().

ZPolyhedron * ZPolyhedronImage ZPolyhedron  ,
Matrix  
[static]
 

Definition at line 649 of file Zpolyhedron.c.

References Domain_Free(), DomainImage(), DomainPreimage(), emptyQ, isEmptyLattice(), ZPolyhedron::Lat, LatticeImage(), Matrix_Free(), MAXNOOFRAYS, matrix::NbColumns, matrix::NbRows, ZPolyhedron::P, and ZPolyhedron_Alloc().

Referenced by ZDomainImage().

Bool ZPolyhedronIncludes ZPolyhedron   A,
ZPolyhedron   B
 

Definition at line 285 of file Zpolyhedron.c.

References Bool, Domain_Free(), DomainDifference(), DomainImage(), emptyQ, False, ZPolyhedron::Lat, LatticeIncludes(), MAXNOOFRAYS, ZPolyhedron::P, and True.

ZPolyhedron * ZPolyhedronIntersection ZPolyhedron  ,
ZPolyhedron  
[static]
 

Definition at line 527 of file Zpolyhedron.c.

References Domain_Free(), DomainImage(), DomainIntersection(), DomainPreimage(), emptyQ, EmptyZPolyhedron(), isEmptyLattice(), ZPolyhedron::Lat, LatticeIntersection(), Matrix_Free(), MAXNOOFRAYS, matrix::NbRows, ZPolyhedron::P, True, ZPolyhedron_Alloc(), and ZPolyhedron_Free().

Referenced by ZDomainIntersection().

ZPolyhedron * ZPolyhedronPreimage ZPolyhedron  ,
Matrix  
[static]
 

Definition at line 699 of file Zpolyhedron.c.

References Domain_Free(), DomainImage(), DomainPreimage(), emptyQ, EmptyZPolyhedron(), isEmptyLattice(), ZPolyhedron::Lat, LatticePreimage(), Matrix_Free(), MAXNOOFRAYS, matrix::NbColumns, matrix::NbRows, ZPolyhedron::P, and ZPolyhedron_Alloc().

Referenced by ZDomainPreimage().

void ZPolyhedronPrint FILE *    fp,
char *    format,
ZPolyhedron   A
[static]
 

Definition at line 337 of file Zpolyhedron.c.

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

Referenced by ZDomainPrint().


Generated on Mon Mar 15 10:59:52 2004 for polylib by doxygen1.2.18