cirq.optimizers.MergeSingleQubitGates

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".

Methods

optimization_at

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

Args
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.

optimize_circuit

View source

__call__

View source

Call self as a function.