- class quri_parts.circuit.topology.square_lattice.SquareLattice(xsize: int, ysize: int, qubit_to_coord: Mapping[int, tuple[int, int]] | None = None)#
Represents qubits connected in a rectangular lattice with no missing pieces, and searches for the shortest path between any two qubits.
xsize – Size of lattice in x direction.
ysize – Size of lattice in y direction.
coord_to_qubit – Mapping from coordinates to qubit indices. If omitted, it is automatically assigned from the origin with x changing first.
- get_qubit(coord: tuple[int, int]) int #
Returns qubit index corresponding to the given coordinate.
- get_coord(qubit: int) tuple[int, int] #
Returns coordinate corresponding to the given qubit index.
- is_adjacent(qubit_a: int, qubit_b: int) bool #
Check if the given qubits are directory connected to each other on the lattice.
- qubit_path(qubit_a: int, qubit_b: int) Sequence[int] #
Returns sequence of qubits on the shortest path between the coordinates of two qubits.
qubit_a – Qubit index at the starting point.
qubit_b – Qubit index at the end point.
- class quri_parts.circuit.topology.square_lattice.SquareLatticeSWAPInsertionTranspiler(square_lattice: SquareLattice)#
When the connection of qubits is expressed in
SquareLattice, insert SWAPs as appropriate before and after for gates applied between two qubits that are not connected to each other.
- is_target_gate(gate: QuantumGate) bool #
Determine if a given gate is subject to decomposition.
gate – Gates in the circuit that are scanned from the front.