quchip.control.batch¶
Batch / sweep-axis machinery for QuantumSequence.
This module owns everything about turning a scheduled sequence into a
batched solve request: the sweepable BatchAxis /
ZippedBatchAxis descriptors, the per-entry handles
(PulseHandle, DelayHandle) that create them, the axis
expansion into per-point overrides, and the list-like ProblemBatch
view over the resulting SolveBatch.
QuantumSequence (in sequence.py) is the scheduler; it delegates
its vary / zip / build_batch surface here. The split keeps the
scheduler focused on timing semantics and the sweep bookkeeping isolated.
All sweep axes stay JAX-traceable: pulse parameters, delays, and envelope
fields flow into SolveProblem without Python-side concretization.
Classes
|
One batchable axis over a scheduled entry or sequence-level field. |
|
Reference to a scheduled delay entry. |
|
List-like view of a batched solve request with sweep bookkeeping. |
|
Reference to one scheduled pulse entry. |
|
Multiple |
- class quchip.control.batch.BatchAxis(owner, target_kind, field, values, name, entry_index=None, entry=None)[source]¶
Bases:
objectOne batchable axis over a scheduled entry or sequence-level field.
Created by
PulseHandle.vary(),DelayHandle.vary(), orQuantumSequence.vary(), and consumed byQuantumSequence.build_batch().- Parameters:
owner (QuantumSequence)
target_kind (str)
field (str)
values (Any)
name (str)
entry_index (int | None)
entry (Any)
- owner: QuantumSequence¶
- values: Any¶
- entry: Any = None¶
The scheduled entry object this axis references (
Nonefor sequence-level axes).build_batchvalidates it against the sequence by identity, so an axis silently pointing at the wrong entry after the sequence was modified is impossible.
- class quchip.control.batch.ZippedBatchAxis(axes)[source]¶
Bases:
objectMultiple
BatchAxisobjects swept pairwise as one dimension.
- class quchip.control.batch.ProblemBatch(batch, params, shape, axes)[source]¶
Bases:
Sequence[SolveProblem]List-like view of a batched solve request with sweep bookkeeping.
Wraps a
SolveBatch(the structural source of truth); per-elementSolveProblemviews are materialised on demand.- Parameters:
- batch¶
- params¶
- shape¶
- axes¶
- class quchip.control.batch.PulseHandle(sequence, entry_index)[source]¶
Bases:
_BaseEntryHandleReference to one scheduled pulse entry.
Sweepable fields:
freq,phase,start_time, and any public envelope attribute (e.g.amplitude,duration,sigmas).- Parameters:
sequence (QuantumSequence)
entry_index (int)
- class quchip.control.batch.DelayHandle(sequence, entry_index)[source]¶
Bases:
_BaseEntryHandleReference to a scheduled delay entry. Only
durationis sweepable.- Parameters:
sequence (QuantumSequence)
entry_index (int)