def optimize_circuit(self, circuit: _circuit.Circuit) -> None: deletions: List[Tuple[int, ops.Operation]] = [] for moment_index, moment in enumerate(circuit): for op in moment.operations: if op is not None and protocols.trace_distance_bound(op) <= self.tolerance: deletions.append((moment_index, op)) circuit.batch_remove(deletions)
def optimize_circuit(self, circuit: _circuit.Circuit) -> None: deletions = [] # type: List[Tuple[int, ops.Operation]] for moment_index, moment in enumerate(circuit): for op in moment.operations: bounded = self.extensions.try_cast(ops.BoundedEffect, op) if (bounded is not None and bounded.trace_distance_bound() <= self.tolerance): deletions.append((moment_index, op)) circuit.batch_remove(deletions)