chocoteam / chocoteam/choco-solver
Do not define unnecessary auxiliary variables
- Dominant language
- Java
- Stars
- 779
- Forks
- 159
- Avg merge
- 6d 9h
- Merged PRs (30d)
- 10
Description
**Is your feature request related to a problem? Please describe.**
Some auxiliary variables are introduced when building arithmetic and relational expressions.
This are very useful allowing to easily define complex expressions.
However, they are defined when not required.
```java
Model m = new Model();
IntVar[] x = m.intVarArray("x", 3, 0, 1000);
model.times(x[0], x[1], x[2]).post();
x[1].mul(x[1]).eq(x[2]).post(); // Introduce an unnecessary auxiliary variable.
System.out.println(m);
```
**Describe the solution you'd like**
Not creating the auxiliary variable `mul_exp_1`.
**Describe alternatives you've considered**
The user can post a `times` constraint instead of defining an expression.
Contributor guide
Assessment
This issue has not been assessed yet.