Skip to content
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

Add cirq.two_qubit_matrix_to_cz_isometry decomposition for single to two qubit isometry using at-most 2CZs. #5728

Merged
merged 8 commits into from
Jul 13, 2022

Conversation

tanujkhattar
Copy link
Collaborator

  • Given an arbitrary 2-qubit unitary $U$; we can decompose it into at-most 3 CZs + single qubit rotations.
  • However, if we know that one of the 2 input qubits is always in state |0>; we can implement the action of unitary $U$ using at-most 2 CZs + single qubit rotations.
  • cirq.two_qubit_matrix_to_cz_isometry implements this decomposition using https://arxiv.org/abs/1501.06911 as a reference.

@tanujkhattar tanujkhattar requested review from a team, vtomole and cduck as code owners July 11, 2022 23:38
@CirqBot CirqBot added the size: M 50< lines changed <250 label Jul 11, 2022
@95-martin-orion
Copy link
Collaborator

For my own reference: Appendix B of the linked paper describes the one-to-two qubit isometry (i.e. a two-qubit gate which takes a |0) state as one of its inputs).

@tanujkhattar tanujkhattar added automerge Tells CirqBot to sync and merge this PR. (If it's running.) labels Jul 13, 2022
@CirqBot CirqBot added the front_of_queue_automerge CirqBot uses this label to indicate (and remember) what's being merged next. label Jul 13, 2022
@CirqBot CirqBot merged commit fca07ad into master Jul 13, 2022
@CirqBot CirqBot removed the automerge Tells CirqBot to sync and merge this PR. (If it's running.) label Jul 13, 2022
@CirqBot CirqBot deleted the cz_isometry branch July 13, 2022 22:26
@CirqBot CirqBot removed the front_of_queue_automerge CirqBot uses this label to indicate (and remember) what's being merged next. label Jul 13, 2022
rht pushed a commit to rht/Cirq that referenced this pull request May 1, 2023
…o two qubit isometry using at-most 2CZs. (quantumlib#5728)

* Given an arbitrary 2-qubit unitary $U$; we can decompose it into at-most 3 CZs + single qubit rotations. 
* However, if we know that one of the 2 input qubits is always in state |0>; we can implement the action of unitary $U$ using at-most 2 CZs + single qubit rotations. 
* `cirq.two_qubit_matrix_to_cz_isometry` implements this decomposition using `https://arxiv.org/abs/1501.06911` as a reference.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size: M 50< lines changed <250
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants