quchip.control.batch

Sweep axes and entry handles for scheduled sequences.

Axes expand into per-point overrides for SolveBatch. Numerical pulse, delay, and envelope values remain JAX-traceable.

Classes

BatchAxis(owner, target_kind, field, values, ...)

One batchable axis over a scheduled entry or sequence-level field.

DelayHandle(sequence, entry_index)

Reference to a scheduled delay entry.

PulseHandle(sequence, entry_index)

Reference to one scheduled pulse entry.

ZippedBatchAxis(axes)

Multiple BatchAxis objects swept pairwise as one dimension.

class quchip.control.batch.BatchAxis(owner, target_kind, field, values, name, entry_index=None, entry_field=None, entry=None)[source]

Bases: object

One batchable axis over a scheduled entry or sequence-level field.

PulseHandle.vary(), DelayHandle.vary(), or QuantumSequence.vary() creates this axis. QuantumSequence.build_batch() consumes it.

Variables:
  • owner (QuantumSequence) – Sequence that owns the axis.

  • field (str) – Swept field name.

  • values (sequence) – Values evaluated along this axis.

  • name (str) – Display name in result metadata.

  • target_kind ({"entry", "sequence", "parameter"}) – Kind of value the axis overrides.

  • entry_index (int or None) – Scheduled-entry index for entry axes.

  • entry_field (str or None) – Normalized field on the scheduled entry.

  • entry (object or None) – Scheduled entry captured by identity.

owner: QuantumSequence
target_kind: str
field: str
values: Any
name: str
entry_index: int | None = None
entry_field: str | None = None
entry: Any = None

Scheduled entry, checked by identity when building the batch. None for sequence-level axes.

property size: int
property override_key: tuple[int | None, str]

Identify the bound value independently of the display name.

class quchip.control.batch.ZippedBatchAxis(axes)[source]

Bases: object

Multiple BatchAxis objects swept pairwise as one dimension.

Variables:

axes (tuple of BatchAxis) – Equal-length axes evaluated at matching indices.

axes: tuple[BatchAxis, ...]
property size: int
class quchip.control.batch.PulseHandle(sequence, entry_index)[source]

Bases: _BaseEntryHandle

Reference to one scheduled pulse entry.

Sweepable fields: freq, phase, start_time, detuning, and declared envelope parameters (for example amplitude, duration, sigmas).

Parameters:
  • sequence (QuantumSequence) – Sequence that owns the scheduled pulse.

  • entry_index (int) – Pulse entry index in the sequence.

class quchip.control.batch.DelayHandle(sequence, entry_index)[source]

Bases: _BaseEntryHandle

Reference to a scheduled delay entry.

Only duration is sweepable.

Parameters:
  • sequence (QuantumSequence) – Sequence that owns the scheduled delay.

  • entry_index (int) – Delay entry index in the sequence.