Ticket #5134 (closed defect: fixed)
Polyhedron: conversion from V-form to H-form fails if no extreme point is given
| Reported by: | sbarthelemy | Owned by: | mhampton |
|---|---|---|---|
| Priority: | major | Milestone: | sage-4.4 |
| Component: | geometry | Keywords: | |
| Cc: | mhampton | Work issues: | |
| Report Upstream: | N/A | Reviewers: | |
| Authors: | Merged in: | ||
| Dependencies: | Stopgaps: |
Description
Let's consider the first diagonal in R^2 as a polyhedron. It has one extreme point (the origin) and one ray. It can be defined in sage in V-form and converted to H-form as shown
sage: p1v1r = Polyhedron([[0,0]],[[1,1]]) sage: p1v1r A Polyhedron with 1 vertex with 1 rays. sage: p1v1r.ieqs() [[1, 0, 0], [0, 1, 0]] sage: p1v1r.linearities() [[0, -1, 1]]
the H-form can be read as
p1v1r = { (x,y) such that
1 + 0*x + 0*y >= 0 and
1 + 1*x + 0*y >= 0 and
1 - 1*x + 1*y >= 0
Sage also allows us to define the polyhedron without the vertex
sage: p0v1r = Polyhedron([], [[1,1]]) sage: p0v1r A Polyhedron with 1 vertex. sage: p0v1r.ieqs() [] sage: p0v1r.linearities() []
However, then
- the _repr_() text is different
- the conversion to H-form failed
problem 2 comes from cdd which requires to be given the extreme point. We could fix it by adding the point before calling cdd.
However, from a theorical point of view, I think that it would also make sense to always require at least one vertex:
One can consider the polyhedron as a region of an euclidean space. In such a case, vertices are *points* and rays are * free vectors*. Then one would always require at least one point.
What do you think?
Change History
comment:2 Changed 4 years ago by mhampton
I think this will be addressed by #7109 once it is done. If a ray is entered without a vertex, the current behavior is to assume that the ray starts at the origin. I think this is reasonable.
comment:3 Changed 3 years ago by novoselt
- Status changed from new to needs_info
- Report Upstream set to N/A
Should this ticket be closed now that #7109 is merged? Current outputs are different from the ones described here and as I understand now both representations are computed during construction and are always correct.

Please remember to assign a milestone for each ticket opened.
Cheers,
Michael