Arch
ArchSpec
ArchSpec(
inner: ArchSpec,
words: tuple[Word, ...],
paths: (
dict[LaneAddress, tuple[tuple[float, float], ...]]
| None
) = None,
)
Architecture specification for a quantum device.
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
42 43 44 45 46 47 48 49 50 51 52 | |
atom_reloading
property
atom_reloading: bool
Whether the device supports reloading atoms after initial fill.
feed_forward
property
feed_forward: bool
Whether the device supports mid-circuit measurement with classical feedback.
max_qubits
property
max_qubits: int
Get the maximum number of qubits supported by this architecture.
check_lane_group
check_lane_group(
lanes: Sequence[LaneAddress],
) -> Sequence[LaneGroupError]
Validate a group of lane addresses via Rust.
Checks individual lane validity, group consistency (direction, bus_id, move_type), bus membership, and AOD geometry constraints. Returns a list of LaneGroupError exceptions (empty if all valid).
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
393 394 395 396 397 398 399 400 401 402 403 | |
check_location_group
check_location_group(
locations: Sequence[LocationAddress],
) -> Sequence[LocationGroupError]
Validate a group of location addresses via Rust.
Returns a list of LocationGroupError exceptions (empty if all valid).
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
383 384 385 386 387 388 389 390 391 | |
compatible_lane_error
compatible_lane_error(
lane1: LaneAddress, lane2: LaneAddress
) -> set[str]
Get error messages if two lanes are not compatible.
Delegates to Rust group validation.
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
405 406 407 408 409 410 411 | |
compatible_lanes
compatible_lanes(
lane1: LaneAddress, lane2: LaneAddress
) -> bool
Check if two lanes are compatible (can be executed in parallel).
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
413 414 415 | |
from_components
classmethod
from_components(
words: tuple[Word, ...],
zones: tuple[tuple[int, ...], ...],
measurement_mode_zones: tuple[int, ...],
entangling_zones: frozenset[int],
has_site_buses: frozenset[int],
has_word_buses: frozenset[int],
site_buses: tuple[Bus, ...],
word_buses: tuple[Bus, ...],
paths: (
dict[LaneAddress, tuple[tuple[float, float], ...]]
| None
) = None,
feed_forward: bool = False,
atom_reloading: bool = False,
) -> ArchSpec
Construct an ArchSpec from Python component types.
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | |
get_blockaded_location
get_blockaded_location(
location: LocationAddress,
) -> LocationAddress | None
Get the blockaded location (CZ pair) for a given location.
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
457 458 459 460 461 | |
get_lane_address
get_lane_address(
src: LocationAddress, dst: LocationAddress
) -> LaneAddress | None
Given an input tuple of locations, gets the lane (w/direction).
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
433 434 435 436 437 | |
get_zone_index
get_zone_index(
loc_addr: LocationAddress, zone_id: ZoneAddress
) -> int | None
Get the index of a location address within a zone address.
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
245 246 247 248 249 250 251 | |
validate_lane
validate_lane(lane_address: LaneAddress) -> set[str]
Check if a lane address is valid in this architecture.
Delegates to Rust validation.
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
425 426 427 428 429 430 431 | |
validate_location
validate_location(
location_address: LocationAddress,
) -> set[str]
Check if a location address is valid in this architecture.
Delegates to Rust validation.
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
417 418 419 420 421 422 423 | |
yield_zone_locations
yield_zone_locations(
zone_address: ZoneAddress,
) -> Iterator[LocationAddress]
Yield all location addresses in a given zone address.
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/layout/arch.py
225 226 227 228 229 230 231 232 233 234 | |