-
-
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
Implement the class CombinatorialPolyhedron #26887
Comments
Commit: |
comment:2
the branch is almost empty (no meaningful changes) New commits:
|
Author: Jonathan Kliem |
Changed keywords from polytopes, FindPoly to polytopes, FindPoly, f_vector, face_lattic |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
This comment has been minimized.
This comment has been minimized.
Changed keywords from polytopes, FindPoly, f_vector, face_lattic to polytopes, FindPoly, f_vector, face lattice, flag vector, edge graph, ridge grapg |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:229
Please move any further discussion to new tickets. |
Changed dependencies from #27292 to none |
comment:231
Fails on e.g. Debian 8:
|
comment:232
As far as I know there are two ways of solving this. Either use the macro Use Any opinions? Replying to @vbraun:
|
comment:233
Replying to @kliem:
Add the
|
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
|
comment:235
added compile argument, this should work now (also #27987 fixes already a bug in the unbounded case) Thanks for all the help, btw. |
Changed branch from public/26887 to |
Changed commit from |
comment:239
This triggers a new failing doctest with python3-sage:
|
comment:240
I have made #28153 for the py3 problem, please review. |
comment:241
Some attributes like As they are accessed by other classes, I'm forced to compute e.g. From my understanding, the decorator Any thoughts? |
comment:242
Replying to @kliem:
Please don't post messages waiting for an answer on a closed ticket. Discussion is closed. Open a new ticket and start a discussion there if something is wrong. |
We construct a class CombinatorialPolyhedron, which collects several methods for polyhedra depending only on the combinatorial type. Actually, most of the methods will work for atomic, coatomic Eulerian lattices.
Computations can be much faster when avoiding creating explicitly the face lattice.
Example:
On my machine this takes over 8s, but it should be a matter of ms. For
permutahedron(7)
it takes forever and should also be a matter of ms.Additionally, one can create the face_lattice much faster. The face_lattice of
permutahedron(7)
should only take few seconds. This is done by creating of lists of all faces and then quickly checking inclusions.The crucial speed up is obtained by creating bit-vectors for the faces, each bit corresponding to a vertex. Intersection of faces is then only bitwise-and and subset check is (A & ~B == 0). Both steps only take one CPU step per 64/128/256 bits/vertices (depending on the processor). Otherwise the algorithm is pretty similar to current algorithm to create the
hasse_diagram
, except that it avoids double counting (and hence can calculate thef_vector
) without an explicit list of all faces.The ticket will prepare, but not use, SIMD-instructions. Enabling them will be a subject of #27103.
FOLLOW-UPS:
CC: @stumpc5 @jplab @tscrim
Component: geometry
Keywords: polytopes, FindPoly, f_vector, face lattice, edge graph, ridge graph
Author: Jonathan Kliem
Branch:
39a7099
Reviewer: Jeroen Demeyer, Travis Scrimshaw, Vincent Delecroix
Issue created by migration from https://trac.sagemath.org/ticket/26887
The text was updated successfully, but these errors were encountered: