![]() |
Attempts to convert non-native gates into SycamoreGates.
Inherits From: PointOptimizer
cirq.google.ConvertToSycamoreGates(
tabulation: Optional[cirq.google.GateTabulation
] = None,
ignore_failures=False
) -> None
First, checks if the given operation is already a native sycamore operation.
Second, checks if the operation has a known unitary. If so, and the gate is a 1-qubit or 2-qubit gate, then performs circuit synthesis of the operation.
Third, attempts to cirq.decompose
to the operation.
Fourth, if ignore_failures is set, gives up and returns the gate unchanged. Otherwise raises a TypeError.
Methods
convert
convert(
op: cirq.ops.Operation
) -> List[cirq.ops.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.