-
Notifications
You must be signed in to change notification settings - Fork 166
BasisLieHighestWeight: Add kwarg compute_polytope to keep track of the vertices of the polytope of the monomial basis
#5597
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
base: master
Are you sure you want to change the base?
BasisLieHighestWeight: Add kwarg compute_polytope to keep track of the vertices of the polytope of the monomial basis
#5597
Conversation
ce06556 to
f5307ea
Compare
| end | ||
|
|
||
| function reduce_to_vertices(possible_vertices::Vector{PointVector{QQFieldElem}}) | ||
| return collect(vertices(convex_hull(possible_vertices))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would guess that most of the additional time is spent in this repeated convex_hull and collect calls.
Could you try to instead of keeping a list of vertices to keep the polytope itself? This would also simplify some operations, as you can use the Minkowski sum directly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tried it out and in smaller cases it is a bit slower if we store the polytope, in a little bigger cases like :C,3,[1,6,0] where this version takes less than 0.5 seconds but if we store the polytope the process dies because it takes too much memory. So I guess we shouldn't do this.
Maybe we can try to not reduce everytime but still store the vertices and not the polytope?
| operators::Vector{RootSpaceElem}, # monomial x_i is corresponds to f_operators[i] | ||
| monomial_ordering_input::Union{AbsGenOrdering,Symbol}, | ||
| monomial_ordering_input::Union{AbsGenOrdering,Symbol}; | ||
| compute_polytope=false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please check if there is a performance difference between this and the use of a Val-type for the flag, see https://docs.julialang.org/en/v1/manual/types/#%22Value-types%22 for details (or ask me)
Co-authored-by: Lars Göttgens <[email protected]>
No description provided.