-
Notifications
You must be signed in to change notification settings - Fork 16
Level-Agnostic Unique Node Table #722
Copy link
Copy link
Open
Labels
✨ optimisationIt's all about speed / spaceIt's all about speed / space🎓 student projectWork, work... but academic!Work, work... but academic!📁 internalThis is where the ✨magic✨happensThis is where the ✨magic✨happens
Description
Activity
Metadata
Metadata
Assignees
Labels
✨ optimisationIt's all about speed / spaceIt's all about speed / space🎓 student projectWork, work... but academic!Work, work... but academic!📁 internalThis is where the ✨magic✨happensThis is where the ✨magic✨happens
Assuming #444 and #697 use the
ptr_uint64directly instead of computing it, we don't need to include that information inside of the node itself: the parents already have "assigned" it a level! This also opens up for some node reuse, e.g.bdd_ithvar(...)andbdd_nithvar(...)requires merely 2 nodes in the table (which could be placed at indices 3 and 4 upon table construction).We can further increase node reusage, if we think of the level as a (relative) offset. That is, a node at level i will only note down level j for its children but rather i-j. This way, the same set of three nodes can represent the xor of all adjacent variables.