Try moving the decomposition of the MiniZinc `gecode_cumulatives` constraint into MiniZinc
- Dominant language
- C++
- Stars
- 335
- Forks
- 88
- Avg merge
- 1h 28m
- Merged PRs (30d)
- 1
Description
The [`gecode_cumulatives`](https://github.com/Gecode/gecode/blob/develop/gecode/flatzinc/mznlib/fzn_cumulative.mzn#L40) MiniZinc constraint is used for implementing `fzn_cumulative`. The [registry post function](https://github.com/Gecode/gecode/blob/87a464b9d7d67616c1b4c6b98600d38a782d014b/gecode/flatzinc/registry.cpp#L1210) does a lot of inspection of the arguments, posting different variants of the constraint.
This requires first fixing #80 so that the relevant Gecode scheduling constraints are available in MiniZinc.
One potential benefit of this, is that the required `start[i] + duration[i] = end[i]` constraints would be available for common subexpression elimination for MiniZinc.
Contributor guide
No contributing guide indexed for this repository
Research direction
First resolve #80 so the relevant Gecode scheduling constraints are available in MiniZinc. Then compare the decomposition in fzn_cumulative.mzn with the argument inspection and variant posting in gecode/flatzinc/registry.cpp; done means the decomposition is moved into MiniZinc and the start-plus-duration constraints are available for common subexpression elimination.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100