|View source on GitHub|
An optimizer that expands composite operations via
cirq.optimizers.ExpandComposite( no_decomp: Callable[[
cirq.ops.Operation], bool] = (lambda _: False) ) -> None
For each operation in the circuit, this pass examines if the operation can be decomposed. If it can be, the operation is cleared out and and replaced with its decomposition using a fixed insertion strategy.
||A predicate that determines whether an operation should be decomposed or not. Defaults to decomposing everything.|
optimization_at( circuit: "cirq.Circuit", index: int, op: "cirq.Operation" ) -> Optional['cirq.PointOptimizationSummary']
Describes how to change operations near the given location.
For example, this method could realize that the given operation is an X gate and that in the very next moment there is a Z gate. It would indicate that they should be combined into a Y gate by returning PointOptimizationSummary(clear_span=2, clear_qubits=op.qubits, new_operations=cirq.Y(op.qubits))
||The circuit to improve.|
||The index of the moment with the operation to focus on.|
||The operation to focus improvements upon.|
|A description of the optimization to perform, or else None if no change should be made.|
Call self as a function.