#include <polylib/polylib.h>
Go to the source code of this file.
Defines | |
#define | HOMOGENIZATTON_H |
homogenization.h -- Bavo Nootaert | |
Functions | |
Polyhedron * | homogenize (Polyhedron *P, unsigned MAXRAYS) |
void | dehomogenize_evalue (evalue *ep, int nb_param) |
dehomogenize an evalue. | |
void | dehomogenize_enode (enode *p, int nb_param) |
dehomogenize all evalues in an enode. | |
void | dehomogenize_enumeration (Enumeration *en, int nb_param, int maxRays) |
dehomogenize an enumeration. | |
Polyhedron * | dehomogenize_polyhedron (Polyhedron *p, int maxRays) |
dehomogenize a polyhedron. |
#define HOMOGENIZATTON_H |
homogenization.h -- Bavo Nootaert
Definition at line 20 of file homogenization.h.
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 77 of file homogenization.c.
References _enode::arr, dehomogenize_evalue(), and _enode::size.
Referenced by dehomogenize_evalue().
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 172 of file homogenization.c.
References dehomogenize_evalue(), dehomogenize_polyhedron(), _enumeration::EP, _enumeration::next, Polyhedron_Free(), and _enumeration::ValidityDomain.
Referenced by main().
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 48 of file homogenization.c.
References _evalue::d, dehomogenize_enode(), dehomogenize_periodic(), dehomogenize_polynomial(), free_evalue_refs(), periodic, and value_zero_p.
Referenced by dehomogenize_enode(), dehomogenize_enumeration(), and Polyhedron_Enumerate().
Polyhedron* dehomogenize_polyhedron | ( | Polyhedron * | p, | |
int | maxRays | |||
) |
dehomogenize a polyhedron.
Assume the polyhedron p is homogenous. Returns a new polyhedron.
Definition at line 155 of file homogenization.c.
References Constraints2Polyhedron(), Matrix_Alloc(), Matrix_Free(), matrix::NbColumns, matrix::NbRows, matrix::p, Polyhedron2Constraints(), and Vector_Copy().
Referenced by dehomogenize_enumeration().
Polyhedron* homogenize | ( | Polyhedron * | P, | |
unsigned | MAXRAYS | |||
) |
Definition at line 31 of file homogenization.c.
References AddANullColumn(), polyhedron::Constraint, Constraints2Polyhedron(), polyhedron::Dimension, Matrix_Free(), matrix::NbColumns, polyhedron::NbConstraints, matrix::NbRows, matrix::p, polyhedron::p_Init, and matrix::p_Init.
Referenced by Polyhedron_Enumerate().