Applies local transformations, by calling map_func(op, moment_index) for each operation.

Used in the notebooks

Used in the tutorials

By default, the function assumes issubset(qubit_set(map_func(op, moment_index)), op.qubits) is True.

circuit Input circuit to apply the transformations on. The input circuit is not mutated.
map_func Mapping function from (cirq.Operation, moment_index) to a cirq.OP_TREE. If the resulting optree spans more than 1 moment, it's inserted in-place in the same moment as cirq.CircuitOperation(cirq.FrozenCircuit(op_tree)).with_tags(MAPPED_CIRCUIT_OP_TAG) to preserve moment structure. Utility methods like cirq.unroll_circuit_op can subsequently be used to unroll the mapped circuit operation.
deep If true, map_func will be recursively applied to circuits wrapped inside any circuit operations contained within circuit.
raise_if_add_qubits Set to True by default. If True, raises ValueError if map_func(op, idx) adds operations on qubits outside of op.qubits.
tags_to_ignore Sequence of tags which should be ignored while applying map_func on tagged operations -- i.e. map_func(op, idx) will be called only for operations that satisfy set(op.tags).isdisjoint(tags_to_ignore).

ValueError if issubset(qubit_set(map_func(op, idx)), op.qubits) is False and raise_if_add_qubits is True.

Copy of input circuit with mapped operations (wrapped in a tagged CircuitOperation).