将F"urer算法与BPAS库结合实践
摘要:整数和多项式乘法的快速算法在科学计算以及其他学科中起着重要作用。1971年,Schönage和Strassen设计了一种算法,将最多n位的两个整数的乘法时间改进为O(log n log log n)。2007年,Martin Furer提出了一种新的算法,运行时间为O(n log n 2^(O(log^* n))),其中log^* n是n的迭代对数。 我们解释了如何将Furer的思想应用于在素数域Z/pZ上乘法,其中p是形式为r^k + 1的广义费马素数,其中k是2的幂,r是机器字大小。当k至少为8时,我们展示了如何通过快速傅里叶变换(FFT)有效地实现这种素数域的乘法。利用Cooley-Tukey张量公式和r是Z/pZ中2k阶本原单位根的事实,我们获得了Z/pZ上FFT的有效实现。这种实现优于使用其他Z/pZ编码或其他方法在Z/pZ中执行乘法的可比较实现。
作者:Sviatoslav Covanov, Davood Mohajerani, Marc Moreno-Maza, Lin-Xiao Wang
论文ID:1811.01490
分类:Symbolic Computation
分类简称:cs.SC
提交时间:2018-11-06