paddle_quantum.qsvt.qsp
量子信号处理相关类与函数,具体参考论文 https://arxiv.org/abs/1806.01838
- signal_unitary(signal_x)
实现论文中的信号矩阵
- 参数:
signal_x (float) – 输入信号,区间为[-1, 1]
- 返回:
matrix
- 返回类型:
ndarray
- poly_parity_verification(poly_p, k, error)
对输入多项式进行奇偶校验,判断
奇偶性是否为 (k mod 2),详见论文定理 3 中的条件 2.- 参数:
poly_p (Polynomial) – 多项式
k (int) – 项数 k
error (float) – 误差阈值,默认为 1e-6.
- 返回:
poly_p 奇偶性是否为 (k mod 2)
- 返回类型:
bool
- normalization_verification(poly_p, poly_q, trials, error)
归一化验证,判断多项式
和 是否满足归一化条件,详见论文定理 3 中的条件 3- 参数:
poly_p (Polynomial) – 多项式
poly_q (Polynomial) – 多项式
trials (int) – 验证次数,默认为 10
error (float) – 误差阈值,默认为 1e-2.
- 返回:
多项式是否满足归一化条件
- 返回类型:
bool
- angle_phi_verification(phi, poly_p, poly_p_hat, poly_q_hat, trials, error)
验证角度
是否满足论文中的等式 6- 参数:
phi (float) – 旋转角
poly_p (Polynomial) – 多项式
poly_q (Polynomial) – 多项式
poly_p_hat – 多项式
poly_q_hat – 多项式
trials (int) – 验证次数,默认为 10
error (float) – 误差阈值,默认为 1e-2.
- 返回:
角度
是否满足论文中的等式 6.- 返回类型:
bool
- processing_unitary(list_matrices, signal_x)
构造量子信号处理矩阵
,详见论文中的等式 1- 参数:
list_matrices (List[ndarray]) – 一个包含信号处理矩阵的数组
signal_x (float) – 输入信号 x,范围为 [-1, 1]
- 返回:
量子信号处理矩阵
- 返回类型:
ndarray
- Phi_verification(list_phi, poly_p, trials, error)
验证完整的角度
- 参数:
list_phi (ndarray) – 包含所有角度
的数组poly_p (Polynomial) – 多项式
trials (trials) – 验证次数,默认为 100
error (float) – 误差阈值,默认为 1e-6
- 返回:
角度
是否使得 为 的块编码- 返回类型:
bool
- update_polynomial(poly_p, poly_q, phi)
计算
经过一层量子信号处理后的多项式- 参数:
poly_p (Polynomial) – 多项式
poly_q (Polynomial) – 多项式
phi (float) – 量子信号处理的旋转角
- 返回:
更新之后的多项式
- 返回类型:
Tuple[Polynomial, Polynomial]
- alg_find_Phi(poly_p, poly_q, length)
计算角度
的算法- 参数:
poly_p (Polynomial) – 多项式
poly_q (Polynomial) – 多项式
length (int) – 返回角度的个数,即量子信号处理的层数
- 返回:
包含角度的数组
- 返回类型:
ndarray
- poly_A_hat_generation(poly_p)
计算多项式
,其中- 参数:
poly_p (Polynomial) – 多项式
- 返回:
多项式
- 返回类型:
Polynomial
- poly_A_hat_decomposition(A_hat, error)
通过求根的方式分解多项式
- 参数:
poly_p (Polynomial) – 多项式
error (float) – 误差阈值,默认为 0.001
- 返回:
多项式
的最高项系数以及根- 返回类型:
Tuple[float, List[float]]
- poly_Q_generation(leading_coef, roots, parity)
根据多项式
的分解,构造多项式- 参数:
leading_coef (float) – 多项式
的最高项系数roots (List[float]) – 多项式
的根parity (int) – 多项式
的奇偶性
- 返回:
多项式
- 返回类型:
Polynomial
- alg_find_Q(poly_p, k)
根据多项式
构造多项式 的算法- 参数:
poly_p (Polynomial) – 多项式
k (int) – 多项式
的项数
- 返回:
多项式
- 返回类型:
Polynomial
- quantum_signal_processing(poly_p, length)
量子信号处理函数,找到一组角度
使得量子信号处理算子 是一个多项式 的块编码- 参数:
poly_p (Polynomial) – 多项式
length (int) – 角度的个数,即量子信号处理的层数,默认 None 为多项式
的度
- 返回:
角度
- 返回类型:
ndarray
- reflection_based_quantum_signal_processing(P)
基于反射的量子信号处理函数,找到一组角度
使得量子信号处理算子 是一个多项式 的块编码,详见论文引理 8- 参数:
poly_p (Polynomial) – 多项式
- 返回:
角度
- 返回类型:
ndarray
- class ScalarQSP
基类:
object基于量子信号处理的类
- 参数:
poly_p (Polynomial) – 多项式
length (int) – 角度的个数,即量子信号处理的层数,默认 None 为多项式
的度
- block_encoding(signal_x)
构造一个量子信号处理的电路,即实现多项式
的块编码电路- 参数:
signal_x (float) – 输入的信号 x
- 返回:
量子信号处理的电路
- 返回类型:
- block_encoding_matrix(signal_x)
构造一个量子信号处理的矩阵,即实现多项式
的块编码矩阵- 参数:
signal_x (float) – 输入的信号 x
- 返回:
量子信号处理的矩阵
- 返回类型:
paddle.Tensor