Skip to content

pure Haskell implementation of reduced ordered binary decision diagrams

License

Notifications You must be signed in to change notification settings

jwaldmann/haskell-obdd

Repository files navigation

A pure Haskell implementation of Reduced Orderded Binary Decision Diagrams.

Build Status

This is mostly educational. The BDDs do not share nodes and this might introduce inefficiencies.

An important (for me, in teaching) feature is that I can immediately draw the BDD to an X11 window (via graphviz). For example, to show the effect of different variable orderings, try this in ghci:

import qualified Prelude as P
import OBDD
let f [] = false; f (x:y:zs) = x && y || f zs
display P.$ f P.$ P.map variable [1,2,3,4,5,6]
display P.$ f P.$ P.map variable [1,4,2,5,3,6]

If you want better performance, use CUDD Haskell bindings (low level, high level).

About

pure Haskell implementation of reduced ordered binary decision diagrams

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published