chocoteam / chocoteam/choco-solver

Do not define unnecessary auxiliary variables

Open
#979 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.