PySparQ.pysparq.algorithms.block_encoding 源代码

"""矩阵块编码算法(三对角和基于 QRAM)。"""

from __future__ import annotations

from typing import Union

import numpy as np


[文档] def get_tridiagonal_matrix(alpha: float, beta: float, dim: int) -> np.ndarray: """返回 dim x dim 的三对角矩阵 alpha*I + beta*T。""" ...
[文档] def get_u_plus(size: int) -> np.ndarray: """返回 size x size 的下移(次对角线)矩阵。""" ...
[文档] def get_u_minus(size: int) -> np.ndarray: """返回 size x size 的上移(超对角线)矩阵。""" ...
[文档] class PlusOneAndOverflow: """将寄存器加 1 并跟踪溢出。"""
[文档] main_reg: str
[文档] overflow: str
def __init__(self, main_reg: str, overflow: str) -> None: ...
[文档] def conditioned_by_nonzeros( self, conds: Union[str, list[str]] ) -> "PlusOneAndOverflow": ...
[文档] def conditioned_by_all_ones( self, conds: Union[str, list[str]] ) -> "PlusOneAndOverflow": ...
[文档] def conditioned_by_bit( self, reg: Union[str, int], pos: int ) -> "PlusOneAndOverflow": ...
[文档] def conditioned_by_value( self, reg: Union[str, int], value: int ) -> "PlusOneAndOverflow": ...
[文档] def clear_conditions(self) -> None: ...
def __call__(self, state: "SparseState") -> None: ...
[文档] def dag(self, state: "SparseState") -> None: ...
[文档] class BlockEncodingTridiagonal: """三对角矩阵 alpha*I + beta*T 的块编码。"""
[文档] main_reg: str
[文档] anc_UA: str
[文档] alpha: float
[文档] beta: float
[文档] prep_state: list[complex]
def __init__( self, main_reg: str, anc_UA: str, alpha: float, beta: float ) -> None: ...
[文档] def conditioned_by_nonzeros( self, conds: Union[str, list[str]] ) -> "BlockEncodingTridiagonal": ...
[文档] def conditioned_by_all_ones( self, conds: Union[str, list[str]] ) -> "BlockEncodingTridiagonal": ...
[文档] def conditioned_by_bit( self, reg: Union[str, int], pos: int ) -> "BlockEncodingTridiagonal": ...
[文档] def clear_conditions(self) -> None: ...
def __call__(self, state: "SparseState") -> None: ...
[文档] def dag(self, state: "SparseState") -> None: ...
[文档] class UR: """基于 QRAM 块编码的右乘算子。"""
[文档] qram: "QRAMCircuit_qutrit"
[文档] column_index: str
[文档] data_size: int
[文档] rational_size: int
[文档] addr_size: int
def __init__( self, qram: "QRAMCircuit_qutrit", column_index: str, data_size: int, rational_size: int, ) -> None: ...
[文档] def conditioned_by_nonzeros( self, conds: Union[str, list[str]] ) -> "UR": ...
[文档] def conditioned_by_all_ones( self, conds: Union[str, list[str]] ) -> "UR": ...
[文档] def conditioned_by_bit( self, reg: Union[str, int], pos: int ) -> "UR": ...
[文档] def clear_conditions(self) -> None: ...
def __call__(self, state: "SparseState") -> None: ...
[文档] def dag(self, state: "SparseState") -> None: ...
[文档] class UL: """基于 QRAM 块编码的左乘算子。"""
[文档] qram: "QRAMCircuit_qutrit"
[文档] row_index: str
[文档] column_index: str
[文档] data_size: int
[文档] rational_size: int
[文档] addr_size: int
def __init__( self, qram: "QRAMCircuit_qutrit", row_index: str, column_index: str, data_size: int, rational_size: int, ) -> None: ...
[文档] def conditioned_by_nonzeros( self, conds: Union[str, list[str]] ) -> "UL": ...
[文档] def conditioned_by_all_ones( self, conds: Union[str, list[str]] ) -> "UL": ...
[文档] def conditioned_by_bit( self, reg: Union[str, int], pos: int ) -> "UL": ...
[文档] def clear_conditions(self) -> None: ...
def __call__(self, state: "SparseState") -> None: ...
[文档] def dag(self, state: "SparseState") -> None: ...
[文档] class BlockEncodingViaQRAM: """通过 QRAM 对任意矩阵进行块编码。"""
[文档] qram: "QRAMCircuit_qutrit"
[文档] column_index: str
[文档] row_index: str
[文档] data_size: int
[文档] rational_size: int
def __init__( self, qram: "QRAMCircuit_qutrit", column_index: str, row_index: str, data_size: int, rational_size: int, ) -> None: ...
[文档] def conditioned_by_nonzeros( self, conds: Union[str, list[str]] ) -> "BlockEncodingViaQRAM": ...
[文档] def conditioned_by_all_ones( self, conds: Union[str, list[str]] ) -> "BlockEncodingViaQRAM": ...
[文档] def conditioned_by_bit( self, reg: Union[str, int], pos: int ) -> "BlockEncodingViaQRAM": ...
[文档] def clear_conditions(self) -> None: ...
def __call__(self, state: "SparseState") -> None: ...
[文档] def dag(self, state: "SparseState") -> None: ...
[文档] def create_block_encoding_demo() -> str: """返回块编码用法的演示脚本字符串。""" ...