Combines series of adjacent one- and two-qubit, non-parametrized gates

Inherits From: MergeInteractionsAbc, PointOptimizer

operating on a pair of qubits and replaces each series with the minimum number of SQRT_ISWAP gates.

See also: two_qubit_matrix_to_sqrt_iswap_operations

tolerance A limit on the amount of absolute error introduced by the construction.
required_sqrt_iswap_count When specified, each merged group of two-qubit gates will be decomposed into exactly this many sqrt-iSWAP gates even if fewer is possible (maximum 3). Circuit optimization will raise a ValueError if this number is 2 or lower and synthesis of any set of merged interactions requires more.
use_sqrt_iswap_inv If True, optimizes circuits using SQRT_ISWAP_INV gates instead of SQRT_ISWAP.
post_clean_up This function is called on each set of optimized operations before they are put into the circuit to replace the old operations.

ValueError If required_sqrt_iswap_count is not one of the supported values 0, 1, 2, or 3.



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.