![]() |
THIS CLASS IS DEPRECATED.
Inherits From: PointOptimizer
cirq.ConvertToCzAndSingleGates(
ignore_failures: bool = False, allow_partial_czs: bool = False
) -> None
IT WILL BE REMOVED IN cirq v1.0
.
Use cirq.optimize_for_target_gateset and cirq.CZTargetGateset instead.
Attempts to convert strange multi-qubit gates into CZ and single qubit gates.
First, checks if the operation has a unitary effect. If so, and the gate is
a 1-qubit or 2-qubit gate, then performs circuit synthesis of the
operation.
Second, attempts to <a href="../cirq/decompose"><code>cirq.decompose</code></a> to the operation.
Third, if ignore_failures is set, gives up and returns the gate unchanged.
Otherwise raises a TypeError.
Methods
optimization_at
optimization_at(
circuit: cirq.Circuit
,
index: int,
op: cirq.Operation
) -> Optional[cirq.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.Circuit'
)
__call__
__call__(
circuit: 'cirq.Circuit'
)
Call self as a function.