Safe Haskell | None |
---|---|
Language | Haskell2010 |
An ST Monad based interface to the CUDD BDD library
This is a straightforward wrapper around the C library. See http://vlsi.colorado.edu/~fabio/CUDD/ for documentation.
Exampe usage:
import Control.Monad.ST import Cudd.Imperative main = do res <- stToIO $ withManagerDefaults $ \manager -> do v1 <- ithVar manager 0 v2 <- ithVar manager 1 conj <- bAnd manager v1 v2 implies <- lEq manager conj v1 deref manager conj return implies print res
Documentation
cuddInitDefaults :: ST s (DDManager s u) Source #
withManager :: Int -> Int -> Int -> Int -> Int -> (forall u. DDManager s u -> ST s a) -> ST s a Source #
withManagerIO :: MonadIO m => Int -> Int -> Int -> Int -> Int -> (forall u. DDManager RealWorld u -> m a) -> m a Source #
swapVariables :: DDManager s u -> [DDNode s u] -> [DDNode s u] -> DDNode s u -> ST s (DDNode s u) Source #
andAbstract :: DDManager s u -> DDNode s u -> DDNode s u -> DDNode s u -> ST s (DDNode s u) Source #
xorExistAbstract :: DDManager s u -> DDNode s u -> DDNode s u -> DDNode s u -> ST s (DDNode s u) Source #
firstPrime :: DDManager s u -> DDNode s u -> DDNode s u -> ST s (Maybe ([SatBit], DDGen s u Prime)) Source #
module Cudd.Common