Skip to content

hello. i made a dd wrapper for bex. #98

@tangentstorm

Description

@tangentstorm

Hello, I'm the author of bex, a rust crate for working with Boolean expressions as BDDs, ANF polynomials, or just plain ASTs.

I have an experimental python wrapper here:

https://github.com/tangentstorm/bex/tree/main/py

It includes both a bare-bones python wrapper and from bex.dd import BDD, which passes all your tests from common.py and common_bdd.py (with a few tests slightly modified because bex breaks from convention and numbers variables from the bottom up).

Bex does BDD operations in parallel, like sylvan, and it also has support for collecting complicated expressions into an AST structure and then converting them to BDDs from the "top down", which allows it to work backwards and avoid work that would later be cancelled out (for example, by an AND 0 at the end). (This feature is not yet exposed to the python bindings...)

Anyway, I don't know if any of this would be interesting to you. I mostly work on bex for fun and (AFAIK) don't currently have any users. I made the dd wrapper so I can start benchmarking what I've done against other packages, but if you think this might be useful to your user base, I'm happy to collaborate.

Sorry for writing this as an issue. I didn't know where else to post it. :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions