cda-tum / mqt-qcec

MQT QCEC - A tool for Quantum Circuit Equivalence Checking
https://mqt.readthedocs.io/projects/qcec
MIT License
87 stars 20 forks source link

✨ Stripping DDs of their identity #377

Closed burgholzer closed 4 months ago

burgholzer commented 4 months ago

Description

This PR pulls in the changes from cda-tum/mqt-core#358, which considerably changes the way matrix decision diagrams are represented. Particularly, any node resembling the identity is now eliminated and only implicitly represented. This further compacts the representation of quantum gates and makes the identity the most compact it can be---a single terminal node. The overall performance improvements are still to be evaluated. Surprisingly few changes were needed to make this work in QCEC.

Checklist:

codecov[bot] commented 4 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 96.3%. Comparing base (da135b9) to head (fb1f97d). Report is 1 commits behind head on main.

Additional details and impacted files [![Impacted file tree graph](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/377/graphs/tree.svg?width=650&height=150&src=pr&token=eKL7Ya7iep&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum)](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/377?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) ```diff @@ Coverage Diff @@ ## main #377 +/- ## ======================================= + Coverage 96.2% 96.3% +0.1% ======================================= Files 34 34 Lines 1766 1765 -1 Branches 217 218 +1 ======================================= + Hits 1700 1701 +1 + Misses 66 64 -2 ``` | [Flag](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/377/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | Coverage Δ | | |---|---|---| | [cpp](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/377/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | `96.1% <100.0%> (+0.1%)` | :arrow_up: | | [python](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/377/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | `97.2% <ø> (ø)` | | | [Files](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/377?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | Coverage Δ | | |---|---|---| | [include/checker/dd/DDConstructionChecker.hpp](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/377?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-aW5jbHVkZS9jaGVja2VyL2RkL0REQ29uc3RydWN0aW9uQ2hlY2tlci5ocHA=) | `83.3% <100.0%> (ø)` | | | [src/checker/dd/DDAlternatingChecker.cpp](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/377?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-c3JjL2NoZWNrZXIvZGQvRERBbHRlcm5hdGluZ0NoZWNrZXIuY3Bw) | `92.0% <100.0%> (+2.5%)` | :arrow_up: |