-
-
Notifications
You must be signed in to change notification settings - Fork 491
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add .normal_fan() and .face_fan() methods for rational bounded polyhedra #22498
Comments
comment:1
|
comment:2
Wow! This is great! Thank you for the reply. Okay, perhaps I should have asked how to do this first. Then, I suggest to modify the description of the ticket to make this feature apparent in the documentation of Polyhedron. Perhaps also to add a wrapper method in the base class of polyhedron? Is that reasonable? |
comment:3
I think adding a method would be great (perhaps with
|
comment:4
Yep. Sounds good. Would it make sense to deprecate |
comment:5
|
comment:6
Replying to @novoselt:
Fair enough. At some point I should learn the subtleties between a general Polyhedron object and a LatticePolytope object... I am currently working on a thematic tutorial and I'd like to know about the differences (I will put you in cc in the ticket once I have something).
Well, if these functions would have been methods of polyhedron, I would have known about them a bit earlier. hehe! Are there other interesting functions like these that are not wrapped as methods? |
Branch: u/jipilab/22498 |
This comment has been minimized.
This comment has been minimized.
Author: Jean-Philippe Labbé |
Commit: |
Work Issues: examples |
comment:9
There are no examples!!! Also, is it really necessary to have full-dimensional polytope for the face fan? |
Reviewer: Andrey Novoseltsev |
comment:10
Replying to @jplab:
The main subtlety is history: 10 years ago cdd was use for Polyhedron with float components and LatticePolytope was using PALP for integer components. Also in terms of focus Polyhedron was for everything while PALP is written with reflexive polytopes in mind and has some sensible hardcoded limitations that are not sensible at all in general setting (like no dimension above 6 and no more than 64 vertices). Both used to rely on file input-output for communication which has huge overhead for small cases, then Cone/Fan started using Volker's PPL library interface and eventually Polyhedron got fast backends as well while LatticePolytope was lagging behind. Over the last few years I made incompatible changes (with deprecation periods mostly) to make it close in spirit to Cone and if my recent tickets get merged it will be as fast as Cone apart from point enumeration (which is sort of not a problem fro cones at all, they usually have infinitely many points).
Fair enough and no other interesting functions come to mind ;-) |
comment:12
Replying to @novoselt:
I added examples to both functions and a test for rational coordinates. It seems that there is no direct test for unboundedness in face fan:
That should be treated in a different ticket I guess?
Currently it seems to work:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:16
Great! Thanks! |
Changed branch from u/jipilab/22498 to |
This ticket provides the method constructing the normal fan and face fan of a rational bounded polyhedra via the
sage.geometry.fan.RationalPolyhedralFan
class.The normal fan of a polyhedra consists of a set of polyhedral cones indexed by the faces of the polyhedra.
Given a face F of a polyhedron, the cone associated to F consists of all the normal vectors of the hyperplanes (linear functions) that are maximal on F. The normal fan has the property that intersections of cones correspond to the intersection of faces.
The face fan is the "dual" construction. Taking a point in the interior of the polytope, the cones of the fan are the positive span of the faces.
All that is done right now is to wrap the methods from
sage.geometry.fan.RationalPolyhedralFan
. Eventually, one may consider looking how this could be done using the normaliz backend of polyhedra, if it ever makes sense. This could be done in a separated ticket.CC: @mo271 @mkoeppe @videlec @sagetrac-tmonteil @fchapoton
Component: geometry
Keywords: days84, polytope, fan
Work Issues: examples
Author: Jean-Philippe Labbé
Branch/Commit:
b5c49e6
Reviewer: Andrey Novoseltsev
Issue created by migration from https://trac.sagemath.org/ticket/22498
The text was updated successfully, but these errors were encountered: