-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Improve LinearFunction synthesis #8568
Conversation
Thank you for opening a new pull request. Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient. While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone. One or more of the the following people are requested to review this: |
Pull Request Test Coverage Report for Build 3385868016
💛 - Coveralls |
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.
can you please add a new test that shows #8519 is fixed?
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.
Thanks, @ShellyGarion, LGTM!
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.
This looks great @ShellyGarion ! A few small questions:
- Is there a similar plan to move the AQC code to
qiskit/synthesis
? - What was the decision on renaming
cnot_synth
toPMH_cnot_synth
?
These functions were in a bit of an unusual state in that they were in some ways internal (not exported by default, did not appear in documentation) and in some ways public (docstring commented, name didn't start with leading _
). It'd be nice if they could fall one way or the other. @mtreinish Are there other examples of code in a similar state?
releasenotes/notes/linear_function_synthesis_utils-f2f96924ca45e1fb.yaml
Outdated
Show resolved
Hide resolved
releasenotes/notes/linear_function_synthesis_utils-f2f96924ca45e1fb.yaml
Outdated
Show resolved
Hide resolved
releasenotes/notes/linear_function_synthesis_utils-f2f96924ca45e1fb.yaml
Outdated
Show resolved
Hide resolved
|
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.
Thanks for the updates!
This commit reverts a breaking change made in Qiskit#8568, in that PR the graysynth module was moved to the qiskit.synthesis package and the cnot_synth function was also renamed as part of the move. However, this change would break any existing users of the module without any warning. To fix this for the 0.23.0 release this commit adds back the graysynth module and just exports the contents of the module in its new location. Additionally, a small wrapper function is added so that the legacy cnot_synth function name can continue to be used for the time being. In the 0.24.0 cycle we can deprecate the old module and remove them after we've giving users a warning about the change.
One release note to call out is the release note for Qiskit#8568 has been changed significantly. This is based on Qiskit#9445 which is reverting some breaking changes made as part of Qiskit#8568.
* Add back qiskit.transpiler.passes.synthesis.graysynth module This commit reverts a breaking change made in #8568, in that PR the graysynth module was moved to the qiskit.synthesis package and the cnot_synth function was also renamed as part of the move. However, this change would break any existing users of the module without any warning. To fix this for the 0.23.0 release this commit adds back the graysynth module and just exports the contents of the module in its new location. Additionally, a small wrapper function is added so that the legacy cnot_synth function name can continue to be used for the time being. In the 0.24.0 cycle we can deprecate the old module and remove them after we've giving users a warning about the change. * Restore root qiskit.transpiler.synthesis exports * Fix import issues
* Add back qiskit.transpiler.passes.synthesis.graysynth module This commit reverts a breaking change made in #8568, in that PR the graysynth module was moved to the qiskit.synthesis package and the cnot_synth function was also renamed as part of the move. However, this change would break any existing users of the module without any warning. To fix this for the 0.23.0 release this commit adds back the graysynth module and just exports the contents of the module in its new location. Additionally, a small wrapper function is added so that the legacy cnot_synth function name can continue to be used for the time being. In the 0.24.0 cycle we can deprecate the old module and remove them after we've giving users a warning about the change. * Restore root qiskit.transpiler.synthesis exports * Fix import issues (cherry picked from commit bf8d6fa)
…9446) * Add back qiskit.transpiler.passes.synthesis.graysynth module This commit reverts a breaking change made in #8568, in that PR the graysynth module was moved to the qiskit.synthesis package and the cnot_synth function was also renamed as part of the move. However, this change would break any existing users of the module without any warning. To fix this for the 0.23.0 release this commit adds back the graysynth module and just exports the contents of the module in its new location. Additionally, a small wrapper function is added so that the legacy cnot_synth function name can continue to be used for the time being. In the 0.24.0 cycle we can deprecate the old module and remove them after we've giving users a warning about the change. * Restore root qiskit.transpiler.synthesis exports * Fix import issues (cherry picked from commit bf8d6fa) Co-authored-by: Matthew Treinish <mtreinish@kortar.org>
* Prepare 0.23.0 release This commit prepares the 0.23.0 release, this involves 2 steps first changing all the version numbers to 0.23.0 from 0.23.0rc1 and secondly updating the release notes to prepare them for publishing. One key thing to note is that this PR removes the 0.22.0 release notes. This is because for the 0.22.0rc1 tag we neglected to move the release notes to a separate directory. So when we did that for the 0.22.0 final release we had to forward port this back to main so that any backports to stable/0.22 would be backportable (see #8901). However, this causes reno to detect all the 0.22 release notes are incorrectly as part of the 0.23.0 development series. To fix this the simplest path forward was to remove the 0.22.0 release notes from the 0.23.0 branch (as in this PR). * Remove backported PRs * Start editting release note * More updates * Apply suggestions from code review Co-authored-by: Julien Gacon <gaconju@gmail.com> * Fix docs build errors * More udpates * Update more release notes One release note to call out is the release note for #8568 has been changed significantly. This is based on #9445 which is reverting some breaking changes made as part of #8568. * More updates * Finish feature note first pass * Start upgrade notes * Move and update new release notes * Fix docs build error * Finish first pass at upgrade notes * Finish first pass at deprecation notes * Finish first pass over release notes * Fix import cycle from dagcircuit * Apply suggestions from code review Co-authored-by: Kevin Hartman <kevin@hart.mn> * Apply suggestions from code review Co-authored-by: Jake Lishman <jake@binhbar.com> * Update releasenotes/notes/0.23/prepare-0.23.0-release-0d954c91143cf9a4.yaml * Fix analysis class definition in vf2 release note Co-authored-by: Julien Gacon <gaconju@gmail.com> Co-authored-by: Kevin Hartman <kevin@hart.mn> Co-authored-by: Jake Lishman <jake@binhbar.com>
Summary
close #8519
Details and comments
graysynth.py
fromqiskit.transpiler
toqiskit.synthesis.linear
test_synthesis.py
fromtest/python/transpiler
- where?CNOTDihedral
class)