Skip to content

Conversation

@janikapeters
Copy link
Collaborator

No description provided.

end

function reduce_to_vertices(possible_vertices::Vector{PointVector{QQFieldElem}})
return collect(vertices(convex_hull(possible_vertices)))
Copy link
Member

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

Copy link
Collaborator Author

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,
Copy link
Member

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants