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
CUDD ( Add CUDD package to benchmarks #17 )
A very efficient and the most used BDD package using depth-first recursion, a unique node table and a memoization table. It shows signs of being a long-living/old project, so getting it to run is not trivial, even when one tries to use the CMake enabled repositories here on GitHub.
CAL ( Add CAL to set of BDD packages #48 )
A BDD package using breadth-first manipulation algorithms to make it able to deal with external memory, The algorithms still use a hash table for random-access to each layer. So, if a layer grows larger than the available memory (incl. the space needed for the FIFO queues) then it shows the same I/O issues as other packages.
MTBDD
A BDD package with a fascinating design on its unique node table, mixing breadth-first and depth-first manipulation, and multi-core systems. It is missing some features though, such as satcount, restrict, and quantification. We can probably get around this by always returning -1 for satcount and rewriting all other operations into an ITE or Apply.
BiDDy
A BDD package for academic usage that supports multiple variants of decision diagrams. From its README.md it looks quite simple to set up.
Rust
One can compile a Rust-to-C FFI which then can be reexposed in the adapter's interface.
lib-bdd ( Integrate Biodivine/LibBDD #105 )
A Rust implementation of BDDs, where each BDD owns its own memory. That is, it is a recursive BDD package without a unique node table. This provides quite an interesting "baseline".
OxiDD ( Add OxiDD #110 )
A modern, abstracted, and multi-core implementation of decision diagrams. This already provides BDDs and ZDDs with competitive performance to CUDD and Sylvan.
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.
An extensive list can be found here: https://gist.github.com/genadyp/0f0ee62d43492b7fc155e98716e35124
C / C++
CUDD ( Add CUDD package to benchmarks #17 )
A very efficient and the most used BDD package using depth-first recursion, a unique node table and a memoization table. It shows signs of being a long-living/old project, so getting it to run is not trivial, even when one tries to use the CMake enabled repositories here on GitHub.
CAL ( Add CAL to set of BDD packages #48 )
A BDD package using breadth-first manipulation algorithms to make it able to deal with external memory, The algorithms still use a hash table for random-access to each layer. So, if a layer grows larger than the available memory (incl. the space needed for the FIFO queues) then it shows the same I/O issues as other packages.
MTBDD
A BDD package with a fascinating design on its unique node table, mixing breadth-first and depth-first manipulation, and multi-core systems. It is missing some features though, such as satcount, restrict, and quantification. We can probably get around this by always returning -1 for satcount and rewriting all other operations into an ITE or Apply.
The source code is available here
Meddly
This was requested from peer reviewers.
BiDDy
A BDD package for academic usage that supports multiple variants of decision diagrams. From its README.md it looks quite simple to set up.
Rust
One can compile a Rust-to-C FFI which then can be reexposed in the adapter's interface.
A Rust implementation of BDDs, where each BDD owns its own memory. That is, it is a recursive BDD package without a unique node table. This provides quite an interesting "baseline".
A modern, abstracted, and multi-core implementation of decision diagrams. This already provides BDDs and ZDDs with competitive performance to CUDD and Sylvan.
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.
A thread-safe BDD package
A multi-threaded BDD package
The text was updated successfully, but these errors were encountered: