Trivial strategy for basis
- Dominant language
- Macaulay2
- Stars
- 435
- Forks
- 297
- Avg merge
- 4d 20h
- Merged PRs (30d)
- 11
Description
Here is a strategy for basis which I would have thought engine should already take advantage of:
Suppose $S$ is a multigraded ring with $S_0 = k$ and $M$ is an $R$-module which has some generators in degree 0 and lots of other generators in **higher** degrees. If I asked for `basis(degree 1_S, M)`, I would expect M2 to simply return the generators in degree 0 with no computation, but this doesn't seem to be the case (in fact, the computation can get significantly slower in some examples). The same should be the case for basis of $M(d)$ in degree d of course.
It's easy to patch this at the top level, but I'm wondering if there's something easy that can be fixed in the engine.
More generally, say we want to compute $M_1$ for a module with some generators in degrees 0 and 1 and lots others in larger degrees. I presume the algorithm should _only_ care about generators in degrees 0 and 1, and disregard the others. Right? The example above seems to suggest this isn't the case.
cc: @jkyang92 @mikestillman
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the basis(degree 1_S, M) and M(d) cases described in the issue, then trace the engine path used by basis. Check how generators above the requested degree are handled and use the reported higher-degree-generator example to validate the intended behavior; done means the computation disregards irrelevant generators without changing results.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100