L5 / L2 桥接接口¶
从 qaiji.core.program_native 显式导入。
bridge_program_native(program, kernels, bindings) 返回 ProgramNativeMap。
kernels 按 kernel_ref``(内核引用)提供电路;``bindings 按从零开始的调用索引提供
NativeBinding(schedule=..., config=...)。即便多个调用使用同一电路,每次调用
也必须有绑定并独立认证;没有声明输出的调用也必须认证。
认证顺序与异常¶
首先调用原有 validate_program,原有 ProgramValidationError 保持原样且优先。
随后检查映射与 Python 内置整数键,结构错误可抛 NativeInputError。逐调用收集缺失绑定
或原生调度认证失败后,一起抛 ProgramNativeValidationError;不会返回部分成功输出。
它继承 QaijiIRError,issues 为按调用顺序排列的 ProgramNativeIssue 元组。
问题项的 code 为 binding_missing、native_input 或 native_invalid。
native_input 记录底层 input_code / input_path;native_invalid
记录 native_report;不适用的诊断字段为 None。只有所有调用通过后才建立输出映射。
绑定键必须为 Python 内置整数(不接受布尔值);额外的整数键不参与调用认证。
输出与字段¶
输出顺序沿用 program.result_outputs。history 按对应调度记录的事件顺序
列出该调用、该寄存器的所有测量;final_bits 按位索引升序选择每位最后一次
测量。不同调用中的同名事件(如 m0)通过 invocation_index 区分。
这些都是引用,没有真实采样值;不执行 shot_count,也不解析校准/设备引用。
所有记录均不可修改、采用 slots、仅接受关键字参数,且不可哈希;序列保存为元组。
类型 |
字段 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
完整示例见 显式配置的原生调度;语义边界见 原生调度的语义与边界。
自动生成的接口说明¶
经过认证的 L5 / L2 调用与测量事件映射。
- class qaiji.core.program_native.FinalBitBinding(*, bit_index: int, event: qaiji.core.program_native.model.InvocationEventRef)[源代码]¶
基类:
object- 参数:
bit_index (int)
event (InvocationEventRef)
- event: InvocationEventRef¶
- class qaiji.core.program_native.InvocationEventRef(*, invocation_index: int, event_id: str)[源代码]¶
基类:
object
- class qaiji.core.program_native.NativeBinding(*, schedule: qaiji.core.native.model.NativeScheduleIR, config: qaiji.core.native.config.ScheduleConfig)[源代码]¶
基类:
object- 参数:
schedule (NativeScheduleIR)
config (ScheduleConfig)
- schedule: NativeScheduleIR¶
- config: ScheduleConfig¶
- class qaiji.core.program_native.OutputMeasurementBinding(*, invocation_index: int, register_name: str, history: tuple[qaiji.core.program_native.model.InvocationEventRef, ...], final_bits: tuple[qaiji.core.program_native.model.FinalBitBinding, ...])[源代码]¶
基类:
object- 参数:
invocation_index (int)
register_name (str)
history (tuple[InvocationEventRef, ...])
final_bits (tuple[FinalBitBinding, ...])
- history: tuple[InvocationEventRef, ...]¶
- final_bits: tuple[FinalBitBinding, ...]¶
- class qaiji.core.program_native.ProgramNativeIssue(*, invocation_index: int, code: str, native_report: qaiji.core.native.diagnostics.NativeValidationReport | None, input_code: str | None, input_path: str | None, message: str)[源代码]¶
基类:
object- 参数:
- native_report: NativeValidationReport | None¶
- class qaiji.core.program_native.ProgramNativeMap(*, outputs: tuple[qaiji.core.program_native.model.OutputMeasurementBinding, ...])[源代码]¶
基类:
object- 参数:
outputs (tuple[OutputMeasurementBinding, ...])
- outputs: tuple[OutputMeasurementBinding, ...]¶
- exception qaiji.core.program_native.ProgramNativeValidationError(issues)[源代码]¶
基类:
QaijiIRError程序调用的原生调度绑定或认证失败。
- 参数:
issues (Sequence[ProgramNativeIssue])
- 返回类型:
None