![]() |
Attempts to convert gates into ISWAP**-0.5 gates.
Inherits From: PointOptimizer
cirq.google.ConvertToSqrtIswapGates(
ignore_failures=False
) -> None
Since we have Z rotations and arbitrary XY rotations, we can rely on cirq decomposition for one qubit gates and need to only specify special decompositions for two qubit gates.
Currently natively specified gates are CZPowGate, ISwapPowGate, and FSimGate. This will also support gates that decompose into the above gates.
Methods
convert
convert(
op: "cirq.Operation"
) -> List['cirq.Operation']
optimization_at
optimization_at(
circuit, index, op
)
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.