SitePattern¶
from cascaqit import SitePattern
用无量纲权重指定各站点接受多少局域控制。site_ids 和 weights 必须是非空、等长元组,站点名称非空且唯一。数值权重范围为 [0, 1],布尔值不作为数值权重;全部数值化后至少有一个权重大于零。
权重可以含 Parameter 或 Expression。在 AHS 中使用时,参数需由该程序声明且无量纲。AHSProgram 导出时要求权重覆盖全部有原子的目标站点,并按阵列顺序映射;from_mapping() 的字母排序不决定量子态位序。
from cascaqit import SitePattern
pattern = SitePattern.from_mapping({"q1": 0.25, "q0": 1.0})
assert pattern.site_ids == ("q0", "q1")
assert pattern.to_ir().weights == (1.0, 0.25)
用法见局域失谐。
复制名称到权重的映射,按站点名称排序,返回新 SitePattern。键必须是字符串;构造校验仍会检查空集合、重名和权重范围。
根据名称到数值的映射计算权重,返回独立 SitePattern。参数求值与数值范围重新检查,得到全零权重时也会失败。
所有权重均为规范化浮点数时返回 True。它不检查站点是否存在于某个阵列。
返回去重并排序的参数依赖名称元组。
validate_parameter_references ¶
validate_parameter_references(
declarations: Mapping[str, Parameter],
) -> None
检查参数对象归属和无量纲要求,以及表达式依赖是否存在。成功返回 None;不匹配时抛出 ProgramValidationError。此步骤不会绑定参数。
返回数值 SitePatternIR。未绑定时抛出 ProgramValidationError;数组顺序仍为此 pattern 的 site_ids 顺序。