-
Notifications
You must be signed in to change notification settings - Fork 126
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
Unifying and streamlining Polytopes interfaces #677
Comments
I checked off some of theses which are already covered within #578 . Functionality is already implemented, I am mostly working on documentation and tests right now. these are points number 1, 2, 3, 5 and 6. Concerning the last point, I do also agree. I would like to apply these changes within #578 because I already interfered with this issue there, and it has a lot to do with the iterators. I am not sure if we should make a submodule. How is the consensus on the split up into submodules within Oscar? EDIT: Also, I noticed that |
On Fri, Sep 10, 2021 at 05:22:55PM -0700, alexej-jordan wrote:
I checked off some of theses which are already covered within #578 . Functionality is already implemented, I am mostly working on documentation and tests right now. these are points number 1, 2, 3, 5 and 6.
I have implemented a different solution for number 2 and 3, where this is replaced by `point_matrix(iter::VectorIterator)` so that you now can for example call `point_matrix(vertices(P))` (analogue for `halfspace_matrix_pair`).
Concerning the last point, I do also agree. I would like to apply these changes within #578 because I already interfered with this issue there, and it has a lot to do with the iterators.
I am not sure if we should make a submodule. How is the consensus on the split up into submodules within Oscar?
There is no consensus about this at all. We've used submodules here and
there to "hide" functions more easily, other than that, we haven't been
able to see any serious advantage nor disadvantage in submodules.
What is you intend for using them?
… --
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#677 (comment)
|
So one of the reasons was the struct Another reason I was thinking about this is the tabcompletion. If you do |
On Wed, Sep 15, 2021 at 07:57:51AM -0700, Lars Kastner wrote:
So one of the reasons was the struct `Point` which also exists in the experimental section, but not in the form that we want to use it. If we made a submodule we would not have to come up with an awkward name.
This we need to sort as I think there should be only one Point type if
possible.
Another reason I was thinking about this is the tabcompletion. If you do `Oscar.` + tab it will get cluttered after a while, but we could at least group the functions in a meaningful way using modules.
agreed - but has to be balanced with guessing module names. Shouldn't
actually be too bad as the same name will have many many
implementations, so way fewer names as in Singular/ Gap/ (polymake)
…
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
#677 (comment)
|
I postpone the submodule question to a different PR. |
This is a list of some issues with the current implementation that need to be straightened out. In particular, the
Cone
andPolyhedron
interfaces need to be unified. Some of these issues might already be solved, @alexej-jordan @benlorenz feel free to check off those (or add issues I missed).facets(C::Cone)
similar tofacets(P::Polyhedron)
facets_as_point_matrix
should be integrated intofacets
using theas
parameterfacets_as_halfspace_matrix_pair
should be integrated intofacets
using theas
parameterf_vector(C::Cone)
PolyhedronRayIterator
,PolyhedralFanRayIterator
, andConeRayIterator
be the same?vertices
,rays
, andfacets
return iterators,lineality_space
should also return an iteratorlinear_hull(C::Cone)
andaffine_hull(P::Polyhedron)
f_vector(F::PolyhedralFan)
n*
functions are available wherever applicable:nrays
,nfacets
,nvertices
as
parameter does not need separate structs, it should just take e.g.Matrix
when returning a matrix,Polyhedron
when returning an iterator over polyhedra, etc.The text was updated successfully, but these errors were encountered: