sylvan icon indicating copy to clipboard operation
sylvan copied to clipboard

Recursive implementation of zdd_eval

Open marek-zeleny opened this issue 1 year ago • 1 comments

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, ...).

marek-zeleny avatar Mar 14 '23 18:03 marek-zeleny

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

trolando avatar Apr 27 '24 11:04 trolando