polylib 5.22.8
homogenization.h File Reference
#include <polylib/polylib.h>

Go to the source code of this file.

Functions

Polyhedronhomogenize (Polyhedron *P, unsigned MAXRAYS)
 homogenization.h – Bavo Nootaert More...
 
void dehomogenize_evalue (evalue *ep, int nb_param)
 dehomogenize an evalue. More...
 
void dehomogenize_enode (enode *p, int nb_param)
 dehomogenize all evalues in an enode. More...
 
void dehomogenize_enumeration (Enumeration *en, int nb_param, int maxRays)
 dehomogenize an enumeration. More...
 
Polyhedrondehomogenize_polyhedron (Polyhedron *p, int maxRays)
 dehomogenize a polyhedron. More...
 

Function Documentation

◆ dehomogenize_enode()

void dehomogenize_enode ( enode p,
int  nb_param 
)

dehomogenize all evalues in an enode.

This function is mutually recursive with dehomogenize_evalue.

Definition at line 56 of file homogenization.c.

References _enode::arr, dehomogenize_evalue(), and _enode::size.

Referenced by dehomogenize_evalue().

◆ dehomogenize_enumeration()

void dehomogenize_enumeration ( Enumeration en,
int  nb_params,
int  maxRays 
)

dehomogenize an enumeration.

Replaces each validity domain and Ehrhart polynomial in the Enumeration en with the dehomogenized form.

Definition at line 158 of file homogenization.c.

References dehomogenize_evalue(), dehomogenize_polyhedron(), _enumeration::EP, maxRays, _enumeration::next, Polyhedron_Free(), and _enumeration::ValidityDomain.

Referenced by main().

◆ dehomogenize_evalue()

void dehomogenize_evalue ( evalue ep,
int  nb_param 
)

dehomogenize an evalue.

The last parameter (nb_param) is replaced by 1. This function is mutually recursive with dehomogenize_enode.

cannot dehomogenize rationals

we need to replace the last parameter

Not the last parameter. Recurse

Definition at line 30 of file homogenization.c.

References _evalue::d, dehomogenize_enode(), dehomogenize_periodic(), dehomogenize_polynomial(), free_evalue_refs(), periodic, value_zero_p, and _evalue::x.

Referenced by dehomogenize_enode(), dehomogenize_enumeration(), and Polyhedron_Enumerate().

◆ dehomogenize_polyhedron()

Polyhedron * dehomogenize_polyhedron ( Polyhedron p,
int  maxRays 
)

dehomogenize a polyhedron.

Assume the polyhedron p is homogenous. Returns a new polyhedron.

Definition at line 140 of file homogenization.c.

References Constraints2Polyhedron(), Matrix_Alloc(), Matrix_Free(), maxRays, matrix::NbColumns, matrix::NbRows, matrix::p, Polyhedron2Constraints(), and Vector_Copy().

Referenced by dehomogenize_enumeration().

◆ homogenize()