You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using the cofactors function on a bdd which is obtained by the cofactors function, the value of this bdd changes.
The expected behavior is that this bdd value should not change.
That’s concerning 😨 Thank you for reporting. I could reproduce the bug, and it seems to affect the Python bindings only. I added the following debug prints in the implementation of BDDFunction.cofactors():
This change should not happen at all. Note also that the C ABI function oxidd_bdd_cofactors() takes the oxidd_bdd_t (which corresponds to self._func) by value, so it cannot modify it. As expected, the issue does not show when calling the respective functions from C. _lib is the module generated by CFFI, so I suspect the bug to be on the site of CFFI. But before opening an issue there, I’ll need to have a look at the code generated by CFFI (and also my build script).
The bug also affects the Python bindings for BCDDs.
When using the
cofactors
function on a bdd which is obtained by thecofactors
function, the value of this bdd changes.The expected behavior is that this bdd value should not change.
See the following example:
Which prints:
This behavior does not take place when using
cofactor_true
orcofactor_false
instead ofcofactors
in any of the steps.I suspect that the second cofactors call changes the value of
co_true
to the newly obtained true cofactor.The text was updated successfully, but these errors were encountered: