-
-
Notifications
You must be signed in to change notification settings - Fork 57
✨ Expose DD serialization/deserialization in Python API #1757
Copy link
Copy link
Open
Labels
DDAnything related to the DD packageAnything related to the DD packagec++Anything related to C++ codeAnything related to C++ codeenhancementImprovement of existing featureImprovement of existing featurepythonAnything related to Python codeAnything related to Python code
Milestone
Metadata
Metadata
Assignees
Labels
DDAnything related to the DD packageAnything related to the DD packagec++Anything related to C++ codeAnything related to C++ codeenhancementImprovement of existing featureImprovement of existing featurepythonAnything related to Python codeAnything related to Python code
Type
Fields
Give feedbackNo fields configured for Feature.
Problem Statement
MQT Core exposes a useful Python API for constructing and manipulating DDs, but compressed DD persistence currently appears unavailable from Python. The available
Python paths are either dense (
get_matrix/from_matrix) or visualization-oriented (to_dot), both of which are unsuitable for persisting large compressed DDs.The C++ DD package already supports native serialization/deserialization. Would you be open to exposing that through
mqt.core.dd, ideally as bytes-based APIs?Proposed API shape:
The bytes-based form avoids filesystem policy questions and lets downstream packages manage metadata/versioning themselves. This would let Python users cache verified
DD contracts without materializing exponential dense matrices or maintaining separate pybind shims.
Proposed Solution
Proposed API shape: