Rule on Edge, Complemented, Swapped, Decision Diagram library
This is an open-source library for Binary Decision Diagrams and variants. implemented in C. Long edges may be annotated with different reduction rules, allowing for a single forest to contain BDDs, zero-suppressed BDDs, and other reductions mixed together. Edges may be complemented to invert the output of a function, or swapped to invert the next variable.
- cmake version 3.19 or later
- latest c compiler
- graphviz (optional for BDDs visualization)
This can be built for QBDD, FBDD, ZBDD, QBDD with complement bit (CQBDD), QBDD with complement and swap bit (CSQBDD), FBDD with complement bit (CFBDD), FBDD with complement and swap bit (CSFBDD), ESRBDD, CESRBDD, RexBDD (default).
-
Run
cmake . --preset=debug
and/orcmake . --preset=release
to set up debugging/release build directories for RexBDD (default). -
cd into build-debug or build-release
-
Run
make
-
To run regression tests, run
ctest
Static library file is built by default under ./build-release/src
if set --preset=release
,
use the last line in CMakeLists.txt
in src
, then following the same steps
will create the shared library under the same path.