Computing the convolution $A \star B$ of two vectors of dimension $n$ is one of the most important computational primitives in many fields. For the non-negative convolution scenario, the classical solution is to leverage the Fast Fourier Transform whose time complexity is $O(n \log n)$. However, the vectors $A$ and $B$ could be very sparse and we can exploit such property to accelerate the computation to obtain the result. In this paper, we show that when $\|A \star B\|_{\geq c_1} = k$ and $\|A \star B\|_{\leq c_2} = n-k$ holds, we can approximately recover the all index in $\mathrm{supp}_{\geq c_1}(A \star B)$ with point-wise error of $o(1)$ in $O(k \log (n) \log(k)\log(k/\delta))$ time. We further show that we can iteratively correct the error and recover all index in $\mathrm{supp}_{\geq c_1}(A \star B)$ correctly in $O(k \log(n) \log^2(k) (\log(1/\delta) + \log\log(k)))$ time.
翻译:计算两个$n$维向量$A \star B$的卷积是许多领域中最重要的计算原语之一。针对非负卷积场景,经典解决方案是利用快速傅里叶变换,其时间复杂度为$O(n \log n)$。然而,向量$A$和$B$可能非常稀疏,我们可以利用这一特性加速计算以获得结果。在本文中,我们证明当$\|A \star B\|_{\geq c_1} = k$且$\|A \star B\|_{\leq c_2} = n-k$成立时,可以在$O(k \log (n) \log(k)\log(k/\delta))$时间内以$o(1)$的逐点误差近似恢复出$\mathrm{supp}_{\geq c_1}(A \star B)$中的所有索引。我们进一步证明,可以在$O(k \log(n) \log^2(k) (\log(1/\delta) + \log\log(k)))$时间内迭代修正误差,并正确恢复$\mathrm{supp}_{\geq c_1}(A \star B)$中的所有索引。