basis strategy and order for toric varieties
Nobody has claimed this yet.
- Dominant language
- Macaulay2
- Stars
- 435
- Forks
- 297
- Avg merge
- 4d 20h
- Merged PRs (30d)
- 11
Description
When I added rawHilbertBasis from Normaliz I also changed latticePoints Polyhedron to use it instead, which is in turn used by monomials ToricDivisor. This improved the speed greatly because Normaliz parallelizes this computation.
I realized this means we can also significantly improve multigraded basis in this case. This is kind of already implemented in basis' in the Truncations package without any toric assumptions.
One problem is that the order of monomials found this way may be different than the engine algorithm. @mikestillman is this a problem? I recall running into this https://github.com/Macaulay2/M2/issues/2810 as well.
Also, should this be implemented in the top level, or is it worth changing basis0_multi_graded in matrix-kbasis.cpp to directly use Normaliz via rawHilbertBasis?
cc: @jkyang92
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Compare basis' in the Truncations package with latticePoints Polyhedron, rawHilbertBasis, and monomials ToricDivisor. Then inspect basis0_multi_graded in matrix-kbasis.cpp and issue #2810 to determine whether Normaliz should be used and how monomial ordering affects the result. Done means resolving the implementation location and ordering question.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100