Merges connected components of operations, acting on <= k qubits, into circuit operations.
cirq.transformers.merge_k_qubit_unitaries_to_circuit_op(
circuit: cirq.circuits.circuit.CIRCUIT_TYPE
,
k: int,
*,
tags_to_ignore: Sequence[Hashable] = (),
merged_circuit_op_tag: Optional[str] = None,
deep: bool = False
) -> cirq.circuits.circuit.CIRCUIT_TYPE
Uses cirq.merge_operations_to_circuit_op
to identify and merge connected components of
unitary operations acting on at-most k-qubits. Moment structure is preserved for operations
that do not participate in merging. For merged operations, the newly created circuit operations
are constructed by inserting operations using EARLIEST strategy.
Args |
circuit
|
Input circuit to apply the transformations on. The input circuit is not mutated.
|
k
|
Merge-able operations acting on <= k qubits are merged into a connected component.
|
tags_to_ignore
|
Tagged operations marked any of tags_to_ignore will not be considered as
potential candidates for any connected component.
|
merged_circuit_op_tag
|
Tag to be applied on circuit operations wrapping valid connected
components. A default tag is applied if left None.
|
deep
|
If true, the transformer primitive will be recursively applied to all circuits
wrapped inside circuit operations.
|
Returns |
Copy of input circuit with valid connected components wrapped in tagged circuit operations.
|