Generate adjoint blocks for Conjugate expressions#215
Merged
Conversation
5d40b2f to
3a5c43c
Compare
This change introduces a pass to transform away conjugate expressions by generating the appropriate adjoint blocks. It reuses the code introduced for adjoint generation and adds one extra check regarding use of mutable variables inside the apply-block.
3a5c43c to
10c1485
Compare
kuzminrobin
reviewed
Apr 26, 2023
ScottCarda-MS
approved these changes
Apr 26, 2023
kuzminrobin
reviewed
Apr 26, 2023
kuzminrobin
approved these changes
Apr 26, 2023
Contributor
kuzminrobin
left a comment
There was a problem hiding this comment.
Approving to unblock, but I would recommend at least one more approval.
Contributor
|
I rebased Deutsch-Jozsa branch on top of this (locally) and removed all modifications with manual adjoint/within implementation. I can confirm that it works as expected. |
idavis
approved these changes
Apr 27, 2023
Collaborator
Author
|
Merging as admin in Cesar's absence as co-owner of the libraries and katas. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This change introduces a pass to transform away conjugate expressions by generating the appropriate adjoint blocks. It reuses the code introduced for adjoint generation and adds one extra check regarding use of mutable variables inside the apply-block.
With this change, a conjugate expression like this:
becomes a block expression:
{ { X(q); Z(q); } { X(q); Z(q); } { Adjoint Z(q); Adjoint X(q); } }