cirq.MergeSingleQubitGates

THIS CLASS IS DEPRECATED.

Inherits From: PointOptimizer

IT WILL BE REMOVED IN cirq v1.0.

Use cirq.merge_k_qubit_unitaries instead.

Optimizes runs of adjacent unitary 1-qubit operations.

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

ValueError If both a rewriter and synthesizer were specified.

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.