SSoelvsten / bdd-benchmark

Benchmarking Suite for BDD packages
MIT License
11 stars 2 forks source link

Add more BDD packages #12

Open SSoelvsten opened 3 years ago

SSoelvsten commented 3 years ago

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.

5nizza commented 5 days ago

Hey, just curious: the main readme file says that CUDD support BDDs as (✓) -- in parenthesis -- and not simply ✓. What does it mean?

5nizza commented 5 days ago

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.

5nizza commented 5 days ago

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)

nhusung commented 5 days ago

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.

nhusung commented 5 days ago

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.