polylib: polyparam.h File Reference

# polyparam.h File Reference

Go to the source code of this file.

## Functions
void | Compute_PDomains (Param_Domain *PD, int nb_domains, int working_space)
Param_Polyhedron * | GenParamPolyhedron (Polyhedron *Pol, Matrix *Rays)
void | Param_Domain_Free (Param_Domain *PD)
void | Param_Polyhedron_Free (Param_Polyhedron *P)
void | Param_Vertices_Free (Param_Vertices *PV)
void | Param_Vertices_Print (FILE *DST, Param_Vertices *PV, const char **param_names)
Polyhedron * | PDomainDifference (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
Polyhedron * | PDomainIntersection (Polyhedron *Pol1, Polyhedron *Pol2, unsigned NbMaxRays)
Param_Polyhedron * | Polyhedron2Param_Domain (Polyhedron *Din, Polyhedron *Cin, int working_space)
Param_Polyhedron * | Polyhedron2Param_SimplifiedDomain (Polyhedron **Din, Polyhedron *Cin, int working_space, Polyhedron **CEq, Matrix **CT)
Param_Polyhedron * | Polyhedron2Param_Vertices (Polyhedron *Din, Polyhedron *Cin, int working_space)
void | Print_Domain (FILE *DST, Polyhedron *D, const char **param_names)
void | Print_Vertex (FILE *DST, Matrix *V, const char **param_names)
Matrix * | VertexCT (Matrix *V, Matrix *CT)
void | Param_Polyhedron_Scale_Integer (Param_Polyhedron *PP, Polyhedron **P, Value *det, unsigned MaxRays)

## Function Documentation

void Compute_PDomains | ( | Param_Domain * | PD,
|  | int | nb_domains,
|  | int | working_space |
| ) |  |  |

Definition at line 1366 of file polyparam.c.

References _Param_Domain::Domain, Domain_Free(), DomainConvex(), emptyQ, _Param_Domain::F, MSB, polyhedron::NbEq, polyhedron::next, NEXT, _Param_Domain::next, P_VALUE_FMT, PDomainDifference(), PDomainIntersection(), and Polyhedron_Print().

Referenced by Polyhedron2Param_Domain(), and Polyhedron2Param_SimplifiedDomain().

Param_Polyhedron* GenParamPolyhedron | ( | Polyhedron * | Pol,
|  | Matrix * | Rays |
| ) |  |  |

Definition at line 809 of file polyparam.c.

References _Param_Polyhedron::Constraints, _Param_Polyhedron::D, polyhedron::Dimension, _Param_Domain::Domain, _Param_Vertex::Domain, _Param_Domain::F, _Param_Vertex::Facets, Matrix_Alloc(), polyhedron::NbRays, _Param_Polyhedron::nbV, _Param_Domain::next, _Param_Vertex::next, matrix::p, Polyhedron2Constraints(), polyhedron::Ray, _Param_Polyhedron::Rays, size, Universe_Polyhedron(), _Param_Polyhedron::V, value_assign, value_notone_p, value_set_si, value_zero_p, and _Param_Vertex::Vertex.

Referenced by Find_m_faces().

void Param_Domain_Free | ( | Param_Domain * | PD | ) |

Definition at line 1863 of file polyparam.c.

References _Param_Domain::Domain, Domain_Free(), _Param_Domain::F, and _Param_Domain::next.

Referenced by Param_Polyhedron_Free().

void Param_Polyhedron_Free | ( | Param_Polyhedron * | P | ) |

Definition at line 1880 of file polyparam.c.

References _Param_Polyhedron::Constraints, _Param_Polyhedron::D, Matrix_Free(), Param_Domain_Free(), Param_Vertices_Free(), _Param_Polyhedron::Rays, and _Param_Polyhedron::V.

Referenced by main(), and Polyhedron_Enumerate().

void Param_Polyhedron_Scale_Integer | ( | Param_Polyhedron * | PP,
|  | Polyhedron ** | P,
|  | Value * | det,
|  | unsigned | MaxRays |
| ) |  |  |

Definition at line 1896 of file polyparam.c.

References _Param_Polyhedron::D, polyhedron::Dimension, _Param_Domain::Domain, Matrix_Alloc(), Matrix_Free(), matrix::NbRows, _Param_Polyhedron::nbV, _Param_Vertex::next, matrix::p, Vector::p, Polyhedron_Preimage(), _Param_Polyhedron::V, value_assign, value_clear, value_division, value_init, value_lcm, value_multiply, value_set_si, Vector_Alloc(), Vector_Free(), Vector_Normalize(), Vector_Scale(), and _Param_Vertex::Vertex.

Referenced by Ehrhart_Quick_Apx_Full_Dim().

void Param_Vertices_Free | ( | Param_Vertices * | PV | ) |

Definition at line 1577 of file polyparam.c.

References _Param_Vertex::Domain, _Param_Vertex::Facets, Matrix_Free(), _Param_Vertex::next, and _Param_Vertex::Vertex.

Referenced by Param_Polyhedron_Free(), and Polyhedron_Enumerate().

void Param_Vertices_Print | ( | FILE * | DST,
|  | Param_Vertices * | PV,
|  | const char ** | param_names |
| ) |  |  |

Definition at line 1746 of file polyparam.c.

References Constraints2Polyhedron(), _Param_Vertex::Domain, Domain_Free(), _Param_Vertex::next, Print_Domain(), Print_Vertex(), and _Param_Vertex::Vertex.

Referenced by main().

Polyhedron* PDomainDifference | ( | Polyhedron * | Pol1,
|  | Polyhedron * | Pol2,
|  | unsigned | NbMaxRays |
| ) |  |  |

Definition at line 103 of file polyparam.c.

References AddPolyToDomain(), polyhedron::Constraint, polyhedron::Dimension, Domain_Free(), emptyQ, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::next, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, Polyhedron_Free(), and SubConstraint().

Referenced by Compute_PDomains().

Polyhedron* PDomainIntersection | ( | Polyhedron * | Pol1,
|  | Polyhedron * | Pol2,
|  | unsigned | NbMaxRays |
| ) |  |  |

Definition at line 62 of file polyparam.c.

References AddConstraints(), AddPolyToDomain(), polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbConstraints, polyhedron::NbEq, polyhedron::next, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, and Polyhedron_Free().

Referenced by Compute_PDomains().

Param_Polyhedron* Polyhedron2Param_Domain | ( | Polyhedron * | Din,
|  | Polyhedron * | Cin,
|  | int | working_space |
| ) |  |  |

Definition at line 1771 of file polyparam.c.

References Add_CEqualities(), Compute_PDomains(), _Param_Polyhedron::D, polyhedron::Dimension, _Param_Domain::Domain, emptyQ, Find_m_faces(), _Param_Polyhedron::nbV, _Param_Domain::next, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, and Polyhedron_Free().

Referenced by main().

Param_Polyhedron* Polyhedron2Param_SimplifiedDomain | ( | Polyhedron ** | Din,
|  | Polyhedron * | Cin,
|  | int | working_space,
|  | Polyhedron ** | CEq,
|  | Matrix ** | CT |
| ) |  |  |

Definition at line 1816 of file polyparam.c.

References assert, Compute_PDomains(), _Param_Polyhedron::D, polyhedron::Dimension, Find_m_faces(), _Param_Polyhedron::nbV, POL_ENSURE_FACETS, and POL_ENSURE_VERTICES.

Referenced by Ehrhart_Quick_Apx_Full_Dim(), and Polyhedron_Enumerate().

Param_Polyhedron* Polyhedron2Param_Vertices | ( | Polyhedron * | Din,
|  | Polyhedron * | Cin,
|  | int | working_space |
| ) |  |  |

Definition at line 1546 of file polyparam.c.

References Find_m_faces(), _Param_Polyhedron::nbV, POL_ENSURE_FACETS, and POL_ENSURE_VERTICES.

Referenced by main().

void Print_Domain | ( | FILE * | DST,
|  | Polyhedron * | D,
|  | const char ** | param_names |
| ) |  |  |

Definition at line 1693 of file polyparam.c.

References polyhedron::Constraint, polyhedron::Dimension, polyhedron::NbConstraints, polyhedron::next, POL_ENSURE_FACETS, POL_ENSURE_VERTICES, Print_Domain(), value_mone_p, value_notzero_p, value_one_p, value_pos_p, and value_print.

Referenced by compute_poly(), Ehrhart_Quick_Apx_Full_Dim(), Enumerate_NoParameters(), main(), Param_Vertices_Print(), Polyhedron_Enumerate(), and Print_Domain().

void Print_Vertex | ( | FILE * | DST,
|  | Matrix * | V,
|  | const char ** | param_names |
| ) |  |  |

Definition at line 1594 of file polyparam.c.

References matrix::NbColumns, matrix::NbRows, matrix::p, value_clear, value_divexact, value_gcd, value_init, value_mone_p, value_notone_p, value_notzero_p, value_posz_p, and value_print.

Referenced by main(), Param_Vertices_Print(), and Scan_Vertices().

Matrix* VertexCT | ( | Matrix * | V,
|  | Matrix * | CT |
| ) |  |  |

Definition at line 1663 of file polyparam.c.

References Matrix_Alloc(), matrix::NbColumns, matrix::NbRows, matrix::p, value_assign, value_notzero_p, and value_set_si.

Referenced by Scan_Vertices().