PySparQ.pysparq.algorithms.state_preparation 源代码
"""基于 QRAM 二叉树分解的量子态制备。"""
from __future__ import annotations
from typing import Union
[文档]
class StatePrepViaQRAM:
"""基于 QRAM 二叉树分解的态制备量子算子。"""
def __init__(
self,
qram: object,
work_qubit: str,
data_size: int,
rational_size: int,
) -> None: ...
[文档]
def conditioned_by_nonzeros(
self, cond: Union[str, int, list[Union[str, int]]]
) -> "StatePrepViaQRAM": ...
[文档]
def conditioned_by_all_ones(
self, cond: Union[str, int, list[Union[str, int]]]
) -> "StatePrepViaQRAM": ...
[文档]
def conditioned_by_bit(
self, reg: Union[str, int], bit: int
) -> "StatePrepViaQRAM": ...
[文档]
def clear_conditions(self) -> "StatePrepViaQRAM": ...
def __call__(self, state: "SparseState") -> None: ...
[文档]
def dag(self, state: "SparseState") -> None: ...
[文档]
class StatePreparation:
"""管理完整态制备流水线的高级封装。"""
[文档]
qram: Union[object, None]
def __init__(self, qubit_number: int, data_size: int, data_range: int) -> None: ...
[文档]
def random_distribution(self) -> None:
"""生成随机振幅分布。"""
...
[文档]
def show_distribution(self) -> None:
"""打印分布的原始值和归一化振幅。"""
...
[文档]
def get_real_dist(self) -> list[float]:
"""返回归一化振幅分布的浮点数列表。"""
...
[文档]
def make_tree(self) -> None:
"""从当前分布构建二叉树。"""
...
[文档]
def show_tree(self) -> None:
"""逐层打印二叉树。"""
...
[文档]
def make_qram(self) -> None:
"""创建适合树数据大小的 QRAM 电路。"""
...
[文档]
def set_qram(self) -> None:
"""将二叉树数据加载到 QRAM 电路中。"""
...
[文档]
def get_fidelity(self) -> float:
"""计算制备态与目标态之间的保真度。"""
...
[文档]
def run(self) -> None:
"""执行完整的态制备流水线。"""
...
[文档]
def create_state_preparation_demo() -> str:
"""返回态制备的演示脚本字符串。"""
...