| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Cudd.Imperative
Description
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 resDocumentation
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