We consider the fast in-place computation of the Euclidean polynomial modular remainder R(X) $\not\equiv$ A(X) mod B(X) with A and B of respective degrees n and m $\le$ n. If the multiplication of two polynomials of degree k can be performed with M(k) operations and O(k) extra space, then standard algorithms for the remainder require O(n/m M(m)) arithmetic operations and, apart from that of A and B, at least O(n -- m) extra memory. This extra space is notably usually used to store the whole quotient Q(X) such that A = BQ + R with deg R < deg B.We avoid the storage of the whole of this quotient, and propose an algorithm still using O(n/m M(m)) arithmetic operations but only O(m) extra space.When the divisor B is sparse with a constant number of non-zero terms, the arithmetic complexity bound reduces to O(n).When it is allowed to use the input space of A or B for intermediate computations, but putting A and B back to their initial states after the completion of the remainder computation, we further propose an in-place algorithm (that is with its extra required space reduced to O(1) only) using at mostO(n/m M(m) log(m) arithmetic operations.To achieve this, we develop techniques for Toeplitz matrix operations which output is also part of the input. In-place accumulated versions are obtained for the latter and for polynomial remaindering via reductions to accumulated polynomial multiplication, for which a recent fast in-place algorithm hasbeen developed.
翻译:我们考虑欧几里得多项式模余式R(X) $\not\equiv$ A(X) mod B(X)的快速就地计算,其中A和B的次数分别为n和m $\le$ n。若两个k次多项式的乘法可在M(k)次运算及O(k)额外空间内完成,则余式的标准算法需要O(n/m M(m))次算术运算,且除A和B的存储外,至少需要O(n -- m)额外内存。该额外空间通常用于存储整个商式Q(X),满足A = BQ + R且deg R < deg B。我们避免了完整商式的存储,提出一种仍使用O(n/m M(m))次算术运算但仅需O(m)额外空间的算法。当除式B稀疏且非零项数量为常数时,算术复杂度界降至O(n)。若允许使用A或B的输入空间进行中间计算,但要求余式计算完成后将A和B恢复至初始状态,我们进一步提出一种就地算法(即所需额外空间仅缩减至O(1)),该算法最多使用O(n/m M(m) log(m))次算术运算。为实现这一目标,我们发展了输出同时作为输入一部分的托普利茨矩阵运算技术。通过约化为累积多项式乘法(近期已开发出快速就地算法),我们获得了这些运算以及多项式模余式的就地累积版本。