sybila / biodivine-lib-bdd

A small library for BDD manipulation in Rust. Part of the BioDivine toolset.
MIT License
20 stars 4 forks source link

Specialized algorithms for CNF/DNF construction and conversion #42

Closed daemontus closed 1 year ago

daemontus commented 1 year ago

This PR adds new functions for conversions between CNF/DNF and BDD. The algorithms may not be completely optimal, but they are definitely an improvement over what we had previously.

daemontus commented 1 year ago

Just a small note for future generations: Right now, I believe that the CNF/DNF methods construct the BDD nodes in the right order due to how the recursion works (it is actually following the DFS post order). However, I might be mistaken, in which case I apologise to future me.