Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recursive implementation of zdd_eval #35

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

marek-zeleny
Copy link

I have re-implemented the zdd_eval() operator to work also in the general case, i.e. for variables that are not in the root of the evaluated ZDD. The algorithm is taken from the following paper, where it's called subset0, resp. subset1:

Shin-ichi Minato. 1993. Zero-suppressed BDDs for set manipulation in combinatorial problems. In Proceedings of the 30th international Design Automation Conference (DAC '93). Association for Computing Machinery, New York, NY, USA, 272–277. https://doi.org/10.1145/157485.164890

I have also added some test cases for this operation and have since used it as a subroutine in other algorithms, where it seems to be yielding correct results. I hope I have correctly used the library's internals (caching, protection from GC, ...).

@trolando trolando force-pushed the master branch 2 times, most recently from ba13229 to 74578fb Compare October 25, 2023 22:53
@trolando
Copy link
Owner

I'll check this out later, what is the purpose of this version? I.e. use case?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants