Makes circuit improvements focused on a specific location.
cirq.PointOptimizer(
post_clean_up: Callable[[Sequence['cirq.Operation']], 'cirq.OP_TREE'] = (lambda op_list: op_list)
) -> None
Used in the notebooks
Args |
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.
|
Methods
optimization_at
View source
@abc.abstractmethod
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
View source
optimize_circuit(
circuit: 'cirq.Circuit'
)
__call__
View source
__call__(
circuit: 'cirq.Circuit'
)
Call self as a function.