sybila / biodivine-lib-bdd

A small library for BDD manipulation in Rust. Part of the BioDivine toolset.
MIT License
20 stars 4 forks source link

Faster projection/selection/restriction algorithms. #28

Closed daemontus closed 1 year ago

daemontus commented 3 years ago

At the moment, projection, selection, restriction and picking are implemented using standard logical operations (albeit with minor optimisations using fused flip-ops). However, it should be possible to design specialised algorithms for these problems which should significantly outperform current solutions.

daemontus commented 1 year ago

These specialised algorithms are now part of the implementation as of 0.5.0. The only operation that cannot use them is pick. It would probably be possible to also optimise pick at some point, but considering how rarely it is used, there's probably no reason to do so.