|View source on GitHub|
Optimizes runs of adjacent unitary 1-qubit operations.
cirq.optimizers.MergeSingleQubitGates( *, rewriter: Optional[Callable[[List[ops.Operation]], Optional[ops.OP_TREE]]] = None, synthesizer: Optional[Callable[[ops.Qid, np.ndarray], Optional[ops.OP_TREE]]] = None )
Specifies how to merge runs of single-qubit operations
into a more desirable form. Takes a list of operations and
produces a list of operations. The default rewriter computes the
matrix of the run and returns a
A special kind of rewriter that operates purely on
the unitary matrix of the intended operation. Takes a qubit
and a unitary matrix and returns a list of operations. Can't
be specified at the same time as
cirq.circuits.Circuit, index: int, op:
cirq.ops.Operation) -> Optional[
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.