快速原地累积双线性公式
摘要:双线性运算在计算机科学中是无处不在的,尤其在计算机代数和符号计算中。乘法是最基本的算术运算之一,当应用于多项式或矩阵等对象时,其结果是输入的双线性函数。在算术运算中,许多次二次(分别三次)复杂度的算法已经被开发用来解决这些问题。但是这些快速算法的代价是需要大量(可能较大)的额外临时空间来执行计算。相反,经典的二次(分别三次)算法,当按顺序计算时,通常只需要很少的(恒定的)额外寄存器。进一步的工作提出了同时“快速”和“原地”算法,适用于矩阵和多项式操作。在这里,我们提出了一种算法,将累积算法从双线性公式中展开。事实上,这种工作线的主要成分之一是使用输出空间作为中间存储。当结果需要累积时,也就是说输出也是输入的一部分,这个自由空间实际上不存在。为了设计累积原地算法,我们放宽了原地模型,允许算法修改它们的输入,例如,为了使用它们作为中间存储,前提是在过程完成后将它们恢复到初始状态。在许多编程环境中,这实际上是一个自然的可能性。此外,这种恢复允许对这些过程进行递归组合,因为(非并发的)递归调用不会破坏其调用者的状态。在这里,我们提出了一种将任何双线性算法转换为原地算法的通用技术,符合这种模型。这直接应用于多项式和矩阵乘法算法,包括快速算法。
作者:Jean-Guillaume Dumas (UGA, LJK, CASC), Bruno Grenet (UGA, LJK, CASC)
论文ID:2307.12712
分类:Symbolic Computation
分类简称:cs.SC
提交时间:2023-07-25