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 transformer primitive to merge connected component of operations in a circuit op #4974

Merged

Conversation

tanujkhattar
Copy link
Collaborator

@tanujkhattar tanujkhattar commented Feb 10, 2022

Adds new primitives to greedily build connected components of merge-able operations and wrap each connected component in a new tagged circuit operation, which can then be operated upon by a later transformer.

Specifically, adds:

  • cirq.merge_operations_to_circuit_op &
  • cirq.merge_k_qubit_unitaries_to_circuit_op

Part of #3237
Important step towards fixing issues mentioned in #4494
Will be used to rewrite existing merge* optimizers as part of #4722

@tanujkhattar tanujkhattar requested review from a team, vtomole and cduck as code owners February 10, 2022 05:16
@tanujkhattar tanujkhattar requested a review from dabacon February 10, 2022 05:16
@CirqBot CirqBot added the size: M 50< lines changed <250 label Feb 10, 2022
Copy link
Collaborator

@MichaelBroughton MichaelBroughton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Synced offline, LGTM. Let's clarify moment preserving behaviors for this function in docstring then we're good to merge.

@tanujkhattar tanujkhattar merged commit aad6c57 into quantumlib:master Feb 11, 2022
@tanujkhattar tanujkhattar deleted the merge_to_circuit_ops_primitive branch February 11, 2022 00:11
95-martin-orion pushed a commit to 95-martin-orion/Cirq that referenced this pull request Mar 2, 2022
…in a circuit op (quantumlib#4974)

* Add transformer primitive to merge connected component of operations in a circuit op

* Add merge_k_qubit_unitaries_to_circuit_op primitive

* Add measurement gate to tests

* Add and improve docstrings
rht pushed a commit to rht/Cirq that referenced this pull request May 1, 2023
…in a circuit op (quantumlib#4974)

* Add transformer primitive to merge connected component of operations in a circuit op

* Add merge_k_qubit_unitaries_to_circuit_op primitive

* Add measurement gate to tests

* Add and improve docstrings
harry-phasecraft pushed a commit to PhaseCraft/Cirq that referenced this pull request Oct 31, 2024
…in a circuit op (quantumlib#4974)

* Add transformer primitive to merge connected component of operations in a circuit op

* Add merge_k_qubit_unitaries_to_circuit_op primitive

* Add measurement gate to tests

* Add and improve docstrings
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.

3 participants