cirq.transform_op_tree(root: Union[cirq.ops.raw_types.Operation, Iterable[Any]], op_transformation: Callable[cirq.ops.raw_types.Operation, Union[cirq.ops.raw_types.Operation, Iterable[Any]]] = <function <lambda>>, iter_transformation: Callable[Iterable[Union[cirq.ops.raw_types.Operation, Iterable[Any]]], Union[cirq.ops.raw_types.Operation, Iterable[Any]]] = <function <lambda>>, preserve_moments: bool = False) → Union[cirq.ops.raw_types.Operation, Iterable[Any]][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.