Describe the bug
Non-deterministic behavior in ESOP computation in Kitty. Functions esop_from_optimum_pkrm, and esop_from_pprm_slow use an unordered_set data structure to store the cubes. That content is moved to a vector later. Since the order of the cubes in the vector dependents on the compiler, it leads to a non-deterministic behavior.
Environment
- OS: MacOS, Linux, Windows
- Compiler: all the tested ones
- Compilation mode: DEBUG or RELEASE
Check list
Describe the bug
Non-deterministic behavior in ESOP computation in Kitty. Functions
esop_from_optimum_pkrm, andesop_from_pprm_slowuse anunordered_setdata structure to store the cubes. That content is moved to a vector later. Since the order of the cubes in the vector dependents on the compiler, it leads to a non-deterministic behavior.Environment
Check list