Applies local transformations via cirq.map_operations & unrolls intermediate circuit ops.

Used in the notebooks

Used in the tutorials

See cirq.map_operations and cirq.unroll_circuit_op for more details.

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.
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) 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).

Copy of input circuit with mapped operations, unrolled in a moment preserving way.