cirq.MergeInteractions.optimization_at

MergeInteractions.optimization_at(circuit: cirq.circuits.circuit.Circuit, index: int, op: cirq.ops.raw_types.Operation) → Optional[cirq.circuits.optimization_pass.PointOptimizationSummary][source]

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[0]))
Parameters:
  • circuit – The circuit to improve.
  • index – The index of the moment with the operation to focus on.
  • op – The operation to focus improvements upon.
Returns:

A description of the optimization to perform, or else None if no change should be made.