HasCacBDD: Haskell bindings for CacBDD

[ data, gpl, library ] [ Propose Tags ] [ Report a vulnerability ]

Haskell bindings for CacBDD, a Binary Decision Diagram (BDD) package with dynamic cache management. Original C++ code from http://kailesu.net/CacBDD and a C wrapper are included.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.2.0.0
Change log CHANGELOG.md
Dependencies base (>=4.8 && <5), process (>=1.1 && <1.7), QuickCheck (>=2.4 && <2.15) [details]
License GPL-2.0-only
Author Malvin Gattinger
Maintainer malvin@w4eg.de
Category Data
Home page https://github.com/m4lvin/HasCacBDD
Source repo head: git clone git://github.com/m4lvin/HasCacBDD.git
Uploaded by m4lvin at 2023-11-23T09:00:28Z
Distributions
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 2500 total (20 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-11-23 [all 1 reports]

Readme for HasCacBDD-0.2.0.0

[back to package description]

HasCacBDD

Release Hackage GitLab CI Test Coverage

Haskell bindings for CacBDD, a Binary Decision Diagram (BDD) package with dynamic cache management.

Original C++ code from http://kailesu.net/CacBDD and a C wrapper are included.

Getting Started

  1. Install C compilers and stack if necessary:

    apt install build-essential git
    curl -sSL https://get.haskellstack.org/ | sh
    
  2. Download, build and load the lastest version:

    git clone https://github.com/m4lvin/HasCacBDD.git
    cd HasCacBDD
    stack setup
    stack build
    stack exec ghci
    

    Note: stack ghci apparently does not work with the shared library. You really need stack build and then stack exec ghci.

    To use cabal instead of stack: cabal build, then cabal exec ghci and then :set -package HasCacBDD.

  3. Now you can play with Boolean functions :-)

    λ> import Data.HasCacBDD
    λ> var 5
    Var 5 Top Bot
    λ> neg (var 5)
    Var 5 Bot Top
    λ> dis (neg (var 3)) (var 3)
    Top