-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Partial equivalence checking #487
Conversation
Signed-off-by: burgholzer <burgholzer@me.com>
#488) ## Description This PR removes a special case handling for when the functionality of a GRCS circuit is being constructed. As this is a useless and irrelevant task to conduct in general, there is no real need for special case treatment. In addition, this blocks adding optional flags to the `buildFunctionality` method as desired in #487. ## Checklist: <!--- This checklist serves as a reminder of a couple of things that ensure your pull request will be merged swiftly. --> - [x] The pull request only contains commits that are related to it. - [x] I have added appropriate tests and documentation. - [x] I have made sure that all CI jobs on GitHub pass. - [x] The pull request introduces no new warnings and follows the project's style guidelines. Signed-off-by: burgholzer <burgholzer@me.com>
✅ Add benchmarks for Partial Equivalence Checking
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey 👋🏼
Sorry for the long wait on the review.
This is just a first pass through the changes. I haven't really managed to look through the methods themselves in detail. I'll do that in a follow-up review.
However, this should un-stall your progress and give you some pointers on aspects that might still need some improvement.
Let me know if anything is unclear 👍🏼
Ah, and btw., that remaining clang-tidy warning is a frequent false positive that should hopefully be resolved by now if you rebase your changes on the main branch or merge the main branch in. |
…rators and some other requested changes
I noticed that I needed to use |
…ed unique_ptr from the dd parameter of functions and moved partial equivalence tests to dd/
Yeah and it's kind of implied by the different namespace. In the general
Any code that is part of |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #487 +/- ##
=====================================
Coverage 91.1% 91.1%
=====================================
Files 132 132
Lines 13794 13809 +15
Branches 2166 2176 +10
=====================================
+ Hits 12575 12589 +14
- Misses 1219 1220 +1
*This pull request uses carry forward flags. Click here to find out more.
|
Closing this in favor of #563 for now. We can always re-open if necessary. |
Description
Added functionality for partial equivalence checking as described in the paper "Partial Equivalence Checking of Quantum Circuits" by Chen et al. It uses the decision diagram representation of the quantum circuit to check the equivalence conditions as described in the paper.
Some helper functions are in the file
Package.hpp
and the main partial equivalence checking function is inVerification.hpp
.Checklist: