-
Notifications
You must be signed in to change notification settings - Fork 32
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
Implement LO cutting of general two-qubit unitaries #186
Labels
Milestone
Comments
11 tasks
5 tasks
5 tasks
garrison
added a commit
that referenced
this issue
Jul 26, 2023
* Add support for `SwapGate` * Reorder terms [ci skip] * Add missing terms * DRY the coefficients * Fix coverage * Add support for `iSwapGate` * Fix black * Add to release note * Fix type hint * Gates without parameters are nicer to work with and can be singletons, one day! * Remove a line * Add comments describing channels * `_copy_unique_sublists` * Add `DCXGate` * Tweak * Implement cutting of general 2-qubit unitaries Builds on #294. Closes #186. * Add tests of additional gates * Fix type annotation * Add explanatory comments * `supported_gates()` -> `explicitly_supported_gates()` * Add to references * Improved error message and test about `to_matrix` conversion failing * Add xref to `QPDBasis` in docstrings * Add `qpdbasis_from_gate` to Sphinx build * Make `explicitly_supported_gates` private and remove its release note It's not clear that this function remains useful now that we support essentially all 2-qubit gates. If we find a use for it in the future, we can re-introduce it (or something like it) as a public interface. * Fix intersphinx link * Release note * Update qpd.py: remove extraneous `from None`
caleb-johnson
pushed a commit
that referenced
this issue
Jul 28, 2023
* Add support for `SwapGate` * Reorder terms [ci skip] * Add missing terms * DRY the coefficients * Fix coverage * Add support for `iSwapGate` * Fix black * Add to release note * Fix type hint * Gates without parameters are nicer to work with and can be singletons, one day! * Remove a line * Add comments describing channels * `_copy_unique_sublists` * Add `DCXGate` * Tweak * Implement cutting of general 2-qubit unitaries Builds on #294. Closes #186. * Add tests of additional gates * Fix type annotation * Add explanatory comments * `supported_gates()` -> `explicitly_supported_gates()` * Add to references * Improved error message and test about `to_matrix` conversion failing * Add xref to `QPDBasis` in docstrings * Add `qpdbasis_from_gate` to Sphinx build * Make `explicitly_supported_gates` private and remove its release note It's not clear that this function remains useful now that we support essentially all 2-qubit gates. If we find a use for it in the future, we can re-introduce it (or something like it) as a public interface. * Fix intersphinx link * Release note * Update qpd.py: remove extraneous `from None`
caleb-johnson
added a commit
that referenced
this issue
Aug 14, 2023
* Don't batch unnecessarily * mypy * black * Missing varname * fix bug * Clean up code * Improve comments * release note * release note * Update batch-by-sampler-c4ae836df9997b1d.yaml * Update batch-by-sampler-c4ae836df9997b1d.yaml * Update batch-by-sampler-c4ae836df9997b1d.yaml * Bump Python version in Dockerfile to 3.11 (#331) Now that CKT supports Python 3.11, we might as well use the latest version in the Dockerfile. * Fix formatting of example in `reduce_bitstrings` docstring (#332) * Implement cutting of general 2-qubit unitaries (#302) * Add support for `SwapGate` * Reorder terms [ci skip] * Add missing terms * DRY the coefficients * Fix coverage * Add support for `iSwapGate` * Fix black * Add to release note * Fix type hint * Gates without parameters are nicer to work with and can be singletons, one day! * Remove a line * Add comments describing channels * `_copy_unique_sublists` * Add `DCXGate` * Tweak * Implement cutting of general 2-qubit unitaries Builds on #294. Closes #186. * Add tests of additional gates * Fix type annotation * Add explanatory comments * `supported_gates()` -> `explicitly_supported_gates()` * Add to references * Improved error message and test about `to_matrix` conversion failing * Add xref to `QPDBasis` in docstrings * Add `qpdbasis_from_gate` to Sphinx build * Make `explicitly_supported_gates` private and remove its release note It's not clear that this function remains useful now that we support essentially all 2-qubit gates. If we find a use for it in the future, we can re-introduce it (or something like it) as a public interface. * Fix intersphinx link * Release note * Update qpd.py: remove extraneous `from None` * Improve the instructions regarding pandoc (#336) I've also tried to make the developer documentation easier to discover * Make the repository link more obvious from the Sphinx build (#338) * Make the repository link more obvious from the Sphinx build * Enable "edit" link in the header * Add comment * Add README badge linking to stable documentation (#339) * Add docs badge to link to stable docs * Add ruff badge * Remove ruff * Update README.md (#340) Making directions on opening the docs a little more succinct. * Change var name * Add SECURITY.md (#337) * Implement wire cutting as a two-qubit instruction (#174) * Implement wire cutting as a two-qubit instruction * Update type annotation * s/gate/instruction/ * Add overhead test for `Move` instruction * Add wire cutting tutorial * Add `Move` to Sphinx build * Doc updates suggested by Caleb * Add release note and link to new tutorial * Clarify wording following #174 (comment) * Improvements to `Move` docstring * Use svg as the plot format This avoids pixelation on high-dpi displays * Remove unnecessary uses of `CircuitInstruction` https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/pull/174/files#r1278067109 * The notebook tests should ignore any files that crop up in `docs/_build` `matplotlib.sphinxext.plot_directive` likes to leave python files there --------- Co-authored-by: Jim Garrison <[email protected]> Co-authored-by: Ibrahim Shehzad <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The method is presented in https://arxiv.org/abs/2006.11174v2.
The class
TwoQubitWeylDecomposition
at https://github.com/Qiskit/qiskit-terra/blob/main/qiskit/quantum_info/synthesis/two_qubit_decompose.py appears to do the decomposition we need, given as Eq. (6) in this paper.The text was updated successfully, but these errors were encountered: