Closed maartenflippo closed 2 years ago
The constraints from the list are now implemented, but has resulted in increased build times (almost double). I kept to the convention of 1 class per file, but perhaps for some nodes it makes sense to merge their implementations into single cpp
files. That should cut down on compilation times at least a bit. Let me know if that is a good idea, if that needs to happen on this branch or if we can live with this for now.
Running a couple of models I have identified I don't register variables with their imposed domains in the propagation engine. This breaks the AllDifferent
implementation. I'll post another comment here when that is fixed (and try to figure out how to test that well).
All seems good now.
This pull request tracks the implementation and identification of all the integer flatzinc constraints listed here: https://www.minizinc.org/doc-2.5.5/en/lib-flatzinc.html#ch-lib-flatzinc (except for
set_in
).array_int_element
array_int_maximum
array_int_minimum
array_var_int_element
int_abs
int_div
int_eq
int_eq_reif
int_le
int_le_reif
int_lin_eq
int_lin_eq_reif
int_lin_le
int_lin_le_reif
int_lin_ne
int_lin_ne_reif
int_lt
int_lt_reif
int_max
int_min
int_mod
int_ne
int_ne_reif
int_plus
int_pow
int_times