Open SSoelvsten opened 3 years ago
Hey, just curious: the main readme file says that CUDD support BDDs as (✓) -- in parenthesis -- and not simply ✓. What does it mean?
another question: readme says that sylvan supports reordering -- the entry is the checkmark in parenthesis (✓) -- does it mean automatic reordering or manual reordering? As far as I know, sylvan does not currently have automatic reordering. Thanks.
by the way, you can find a great list of BDD libraries here: https://github.com/johnyf/tool_lists/blob/main/bdd.md (he is the original author of that list)
Hey, just curious: the main readme file says that CUDD support BDDs as (✓) -- in parenthesis -- and not simply ✓. What does it mean?
It means that BDDs (i.e., without complement edges) are supported via MTBDDs (or ADDs, as CUDD calls them). This is not of practical relevance, but for meaningful performance comparisons it is important to take into account whether complement edges are used or not.
another question: readme says that sylvan supports reordering -- the entry is the checkmark in parenthesis (✓) -- does it mean automatic reordering or manual reordering? As far as I know, sylvan does not currently have automatic reordering. Thanks.
There is a master’s thesis on implementing reordering in Sylvan, see https://github.com/trolando/sylvan/pull/43.
The following is a non-exhaustive list of relevant BDD packages to be included. Please, add comments with others to be added to this list.
C / C++
Rust
One can compile a Rust-to-C FFI which then can be reexposed in the adapter's interface.
Java
A C++ program can start a Java VM and call methods on its classes. This can be nicely hidden away in the adapter's interface.