View source on GitHub 
Combines series of adjacent one and twoqubit, nonparametrized gates
Inherits From: MergeInteractionsAbc
, PointOptimizer
cirq.optimizers.MergeInteractionsToSqrtIswap(
tolerance: float = 1e08,
*,
required_sqrt_iswap_count: Optional[int] = None,
use_sqrt_iswap_inv: bool = False,
post_clean_up: Callable[[Sequence[ops.Operation]], ops.OP_TREE] = (lambda op_list: op_list)
) > None
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
Args  

tolerance

A limit on the amount of absolute error introduced by the construction. 
required_sqrt_iswap_count

When specified, each merged group of
twoqubit gates will be decomposed into exactly this many
sqrtiSWAP 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. 
Raises  

ValueError

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

Methods
optimization_at
optimization_at(
circuit: cirq.circuits.Circuit
,
index: int,
op: cirq.ops.Operation
) > Optional[cirq.circuits.PointOptimizationSummary
]
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
optimize_circuit(
circuit: cirq.circuits.Circuit
)
__call__
__call__(
circuit: cirq.circuits.Circuit
)
Call self as a function.