mqt.ionshuttler.linear.config

Settings for Linear hardware timing and schedule search.

Module Contents

SINGLE_QUBIT_GATE_NAMES
TWO_QUBIT_GATE_NAMES
GATE_NAMES
class TransportTiming[source]

Configure how many timesteps ion transport operations take.

shuttle: int = 1
swap: int = 3
__post_init__() → None[source]

Ensure every transport operation takes at least one timestep.

class GateTiming[source]

Configure gate durations and virtual single-ion rotations.

Rx and Ry use physical controls by default. Rz defaults to a zero-duration virtual frame update, as is common on trapped-ion hardware.

rx: int = 1
ry: int = 1
rz: int = 0
rxx: int = 2
ryy: int = 2
rzz: int = 2
virtual_single_qubit_gates: frozenset[str]
__post_init__() → None[source]

Ensure the configured timings describe usable gate implementations.

Raises:

ValueError – If a gate name or duration is invalid.

duration_for(gate_name: str) → int[source]

Return how many timesteps a gate takes.

Raises:
  • TypeError – If the stored duration is not an integer.

  • ValueError – If the hardware does not offer gate_name.

is_virtual(gate_name: str) → bool[source]

Return whether a single-ion rotation is implemented virtually.

Raises:

ValueError – If gate_name is not a supported single-ion rotation.

property gate_durations: dict[str, int]

Duration of each supported gate, keyed by its lowercase name.

class HardwareTiming[source]

Describe the timing and gate implementations offered by the hardware.

transport: TransportTiming
gates: GateTiming
class SearchConfig[source]

Configure how the compiler searches for a schedule.

A finite horizon plans a few gates at a time and commits committed_gates before planning again. Set horizon to None to search the complete circuit at once. heuristic selects the remaining-cost estimate that guides the search: the default None uses a quality-oriented estimate that finds useful schedules faster but may overestimate the remaining time, while zero_heuristic() is admissible and supports exact search when all other limits and shortcuts are also disabled. Any other callable matching HeuristicFn may be supplied instead.

horizon: int | None = 3
committed_gates: int = 2
informed_action_prioritization: bool = False
num_solutions: int = 1
max_frontier_size: int | None = 1000
max_compile_time: float | None = 1800.0
use_dependencies: bool = True
heuristic: HeuristicFn | None = None
pre_partition_config: FineGrainedTabuConfig | None = None
__post_init__() → None[source]

Ensure all search limits are meaningful and mutually consistent.

Raises:
  • TypeError – If a Boolean option is not Boolean.

  • ValueError – If a numeric bound or horizon relationship is invalid.

class LinearCompilerConfig[source]

Group the hardware timing and schedule-search settings.

hardware_timing: HardwareTiming
search: SearchConfig