cirq.transform_op_tree(root: Union[cirq.ops.raw_types.Operation, cirq.ops.op_tree.OpTree], op_transformation: Callable[cirq.ops.raw_types.Operation, Union[cirq.ops.raw_types.Operation, cirq.ops.op_tree.OpTree]] = <function <lambda>>, iter_transformation: Callable[Iterable[Union[cirq.ops.raw_types.Operation, cirq.ops.op_tree.OpTree]], Union[cirq.ops.raw_types.Operation, cirq.ops.op_tree.OpTree]] = <function <lambda>>, preserve_moments: bool = False) → Union[cirq.ops.raw_types.Operation, cirq.ops.op_tree.OpTree][source]

Maps transformation functions onto the nodes of an OP_TREE.

  • root – The operation or tree of operations to transform.

  • op_transformation – How to transform the operations (i.e. leaves).

  • iter_transformation – How to transform the iterables (i.e. internal nodes).

  • preserve_moments – Whether to leave Moments alone. If True, the transformation functions will not be applied to Moments or the operations within them.


A transformed operation tree.


TypeError – root isn’t a valid OP_TREE.