CircuitIterator

class CircuitIterator(circuit, start=(0, 0), end=None, qudits_or_region=None, exclude=False, reverse=False, and_cycles=False)[source]

Bases: Iterator[Union[Operation, Tuple[int, Operation]]]

A CircuitIterator iterates through a circuit in a simulation order.

__init__(circuit, start=(0, 0), end=None, qudits_or_region=None, exclude=False, reverse=False, and_cycles=False)[source]

Construct a CircuitIterator.

Parameters:
  • circuit (Circuit) – The circuit to iterate through.

  • start (CircuitPointLike) – Only iterate through points greater than or equal to start. Defaults to start at the beginning of the circuit. (Default: (0, 0))

  • end (CircuitPointLike | None) – Only iterate through points less than or equal to this. If left as None, iterates until the end of the circuit. (Default: None)

  • qudits_or_region (CircuitRegionLike | Sequence[int] | None) – Determines the way the circuit is iterated. If a region is given, then iterate through operations in the region. If a sequence of qudit indices is given, then only iterate the operations touching those qudits. If left as None, then iterate through the entire circuit in simulation order. (Default: None)

  • exclude (bool) – If iterating through a region or only some qudits and exclude is true, then do not yield operations that are only partially in the region or on the desired qudits. This may result in a sequence of operations that does not occur in simulation order in the circuit. (Default: False)

  • reverse (bool) – Reverse the ordering. If true, then end acts as start and vice versa. (Default: False)

  • and_cycles (bool) – If true, in addition to the operation, return the cycle index where it was found. (Default: False)

Methods