Optimizes runs of adjacent unitary 1-qubit operations.

Inherits From: PointOptimizer

rewriter 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 cirq.SingleQubitMatrixGate. If rewriter returns None, that means "do not rewrite the operations".
synthesizer 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 rewriter. If synthesizer returns None, that means "do not rewrite the operations used to make this matrix".



View 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]))

circuit The circuit to improve.
index The index of the moment with the operation to focus on.
op The operation to focus improvements upon.

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


View source


View source

Call self as a function.