packages feed

obdd-0.9.0: obdd.cabal

Cabal-Version:       3.0
Name:                obdd
Version:             0.9.0
Build-type: Simple
Synopsis:            Ordered Reduced Binary Decision Diagrams
Description:
  Construct, combine and query OBDDs;
  an efficient representation for formulas in propositional logic.
  .
  This is mostly educational.
  The BDDs do not share nodes (there is no persistent BDD base) 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 (type 'q' to close the drawing windows).
  .
  > import Prelude hiding (not,(&&),(||),and,or,any,all)
  > import OBDD
  > let f [] = false; f (x:y:zs) = x && y || f zs
  > display $ f $ map variable [1,2,3,4,5,6]
  > display $ f $ map variable [1,4,2,5,3,6]
  .
  'OBDD' implements 'Ersatz.Boolean' which re-defines
  Boolean operations from the Prelude. The recommended way of using this
  is shown in the previous example.
  .
  If you want better performance, use a library with a persistent BDD base,
  e.g., <http://vlsi.colorado.edu/%7Efabio/CUDD/ CUDD>
  <https://hackage.haskell.org/package/cudd Haskell bindings>,
  see <https://gitlab.imn.htwk-leipzig.de/waldmann/min-comp-sort this example>.

category:            Logic
License:             GPL-3.0-only
Author:              Johannes Waldmann
Maintainer:          Johannes Waldmann
Homepage:            https://github.com/jwaldmann/haskell-obdd

tested-with: GHC == 9.10.1, GHC == 9.8.2, GHC == 9.0.1 , GHC == 8.10.4 , GHC == 8.8.4 , GHC == 8.6.5 , GHC == 8.4.4
             , GHC == 8.2.2 , GHC == 8.0.2 , GHC == 7.10.3
                     
Source-Repository head
    Type: git
    Location: git://github.com/jwaldmann/haskell-obdd.git

Library
    Build-Depends:       base==4.*, random, mtl, containers>=0.5, array, process-extras, ersatz, text
    Hs-Source-Dirs:          src
    Exposed-Modules:     OBDD, OBDD.Data, OBDD.Make, OBDD.Operation, OBDD.Property, OBDD.Display, OBDD.Linopt, OBDD.Cube
    Other-Modules:           OBDD.IntIntMap, OBDD.VarIntIntMap
    Default-Language: Haskell2010
    ghc-options: -funbox-strict-fields

test-suite obdd-placement
    Hs-Source-Dirs : examples
    Type: exitcode-stdio-1.0
    Main-Is: Placement.hs
    Build-Depends: base, containers, obdd
    Default-Language: Haskell2010

test-suite obdd-domino
    Hs-Source-Dirs: examples
    Type: exitcode-stdio-1.0
    Main-Is: Domino.hs
    Build-Depends: base, containers, obdd
    Default-Language: Haskell2010

test-suite obdd-cubism
    Hs-Source-Dirs : examples
    Type: exitcode-stdio-1.0
    Main-Is: Cubism.hs
    Build-Depends: base, containers, obdd
    Default-Language: Haskell2010

test-suite obdd-queens
    Hs-Source-Dirs : examples
    Type: exitcode-stdio-1.0
    Main-Is: Queens.hs
    ghc-options: -threaded -rtsopts
    Build-Depends: base, containers, obdd, text
    Default-Language: Haskell2010

test-suite obdd-queens2
    Hs-Source-Dirs : examples
    Type: exitcode-stdio-1.0
    Main-Is: Queens2.hs
    Build-Depends: base, containers, obdd
    Default-Language: Haskell2010

test-suite obdd-weight
    Hs-Source-Dirs : examples
    Type: exitcode-stdio-1.0
    Main-Is: Weight.hs
    Build-Depends: base, containers, obdd
    Default-Language: Haskell2010
    
test-suite obdd-sort
    Hs-Source-Dirs : examples
    Type: exitcode-stdio-1.0
    Main-Is: Sort.hs
    Build-Depends: base, containers, obdd
    Ghc-Options: -rtsopts    
    Default-Language: Haskell2010

test-suite obdd-mm0916
    Hs-Source-Dirs : examples
    Type: exitcode-stdio-1.0
    Main-Is: MM0916.hs
    Build-Depends: base, containers, obdd, array
    Ghc-Options: -rtsopts
    Default-Language: Haskell2010