PySparQ.pysparq.algorithms.block_encoding

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

Classes

BlockEncodingTridiagonal

三对角矩阵 alpha*I + beta*T 的块编码。

BlockEncodingViaQRAM

通过 QRAM 对任意矩阵进行块编码。

PlusOneAndOverflow

将寄存器加 1 并跟踪溢出。

UL

基于 QRAM 块编码的左乘算子。

UR

基于 QRAM 块编码的右乘算子。

Functions

create_block_encoding_demo(→ str)

返回块编码用法的演示脚本字符串。

get_tridiagonal_matrix(→ numpy.ndarray)

返回 dim x dim 的三对角矩阵 alpha*I + beta*T。

get_u_minus(→ numpy.ndarray)

返回 size x size 的上移(超对角线)矩阵。

get_u_plus(→ numpy.ndarray)

返回 size x size 的下移(次对角线)矩阵。

Module Contents

class PySparQ.pysparq.algorithms.block_encoding.BlockEncodingTridiagonal(main_reg: str, anc_UA: str, alpha: float, beta: float)[源代码]

三对角矩阵 alpha*I + beta*T 的块编码。

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | list[str]) BlockEncodingTridiagonal[源代码]
conditioned_by_bit(reg: str | int, pos: int) BlockEncodingTridiagonal[源代码]
conditioned_by_nonzeros(conds: str | list[str]) BlockEncodingTridiagonal[源代码]
dag(state: SparseState) None[源代码]
alpha: float[源代码]
anc_UA: str[源代码]
beta: float[源代码]
main_reg: str[源代码]
prep_state: list[complex][源代码]
class PySparQ.pysparq.algorithms.block_encoding.BlockEncodingViaQRAM(qram: QRAMCircuit_qutrit, column_index: str, row_index: str, data_size: int, rational_size: int)[源代码]

通过 QRAM 对任意矩阵进行块编码。

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | list[str]) BlockEncodingViaQRAM[源代码]
conditioned_by_bit(reg: str | int, pos: int) BlockEncodingViaQRAM[源代码]
conditioned_by_nonzeros(conds: str | list[str]) BlockEncodingViaQRAM[源代码]
dag(state: SparseState) None[源代码]
column_index: str[源代码]
data_size: int[源代码]
qram: QRAMCircuit_qutrit[源代码]
rational_size: int[源代码]
row_index: str[源代码]
class PySparQ.pysparq.algorithms.block_encoding.PlusOneAndOverflow(main_reg: str, overflow: str)[源代码]

将寄存器加 1 并跟踪溢出。

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | list[str]) PlusOneAndOverflow[源代码]
conditioned_by_bit(reg: str | int, pos: int) PlusOneAndOverflow[源代码]
conditioned_by_nonzeros(conds: str | list[str]) PlusOneAndOverflow[源代码]
conditioned_by_value(reg: str | int, value: int) PlusOneAndOverflow[源代码]
dag(state: SparseState) None[源代码]
main_reg: str[源代码]
overflow: str[源代码]
class PySparQ.pysparq.algorithms.block_encoding.UL(qram: QRAMCircuit_qutrit, row_index: str, column_index: str, data_size: int, rational_size: int)[源代码]

基于 QRAM 块编码的左乘算子。

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | list[str]) UL[源代码]
conditioned_by_bit(reg: str | int, pos: int) UL[源代码]
conditioned_by_nonzeros(conds: str | list[str]) UL[源代码]
dag(state: SparseState) None[源代码]
addr_size: int[源代码]
column_index: str[源代码]
data_size: int[源代码]
qram: QRAMCircuit_qutrit[源代码]
rational_size: int[源代码]
row_index: str[源代码]
class PySparQ.pysparq.algorithms.block_encoding.UR(qram: QRAMCircuit_qutrit, column_index: str, data_size: int, rational_size: int)[源代码]

基于 QRAM 块编码的右乘算子。

clear_conditions() None[源代码]
conditioned_by_all_ones(conds: str | list[str]) UR[源代码]
conditioned_by_bit(reg: str | int, pos: int) UR[源代码]
conditioned_by_nonzeros(conds: str | list[str]) UR[源代码]
dag(state: SparseState) None[源代码]
addr_size: int[源代码]
column_index: str[源代码]
data_size: int[源代码]
qram: QRAMCircuit_qutrit[源代码]
rational_size: int[源代码]
PySparQ.pysparq.algorithms.block_encoding.create_block_encoding_demo() str[源代码]

返回块编码用法的演示脚本字符串。

PySparQ.pysparq.algorithms.block_encoding.get_tridiagonal_matrix(alpha: float, beta: float, dim: int) numpy.ndarray[源代码]

返回 dim x dim 的三对角矩阵 alpha*I + beta*T。

PySparQ.pysparq.algorithms.block_encoding.get_u_minus(size: int) numpy.ndarray[源代码]

返回 size x size 的上移(超对角线)矩阵。

PySparQ.pysparq.algorithms.block_encoding.get_u_plus(size: int) numpy.ndarray[源代码]

返回 size x size 的下移(次对角线)矩阵。