Computing Clipped Products
Arthur C. Norman, Stephen M. Watt
TL;DR
This work addresses computing only a portion of a product’s output—the clipped product—across integers and univariate polynomials. It develops a general framework and multiple algorithms (Direct clipping, Bottom/Top clipping via reversal, and clipped versions of Classical, Karatsuba, and FFT multiplication) and analyzes carries and costs to enable practical speedups on medium-sized problems. The authors assemble a polyalgorithm that selects among methods based on interval and input size, with applications to division, fixed-precision arithmetic, power-series truncation, GCD computations, and other algebraic computations where only partial products are needed. The practical impact lies in reducing wasted work in intermediate steps of numerical and symbolic computations, potentially accelerating a range of algorithms that hinge on partial products or middle-digit computations.
Abstract
Sometimes only some digits of a numerical product or some terms of a polynomial or series product are required. Frequently these constitute the most significant or least significant part of the value, for example when computing initial values or refinement steps in iterative approximation schemes. Other situations require the middle portion. In this paper we provide algorithms for the general problem of computing a given span of coefficients within a product, that is the terms within a range of degrees for univariate polynomials or range digits of an integer. This generalizes the "middle product" concept of Hanrot, Quercia and Zimmerman. We are primarily interested in problems of modest size where constant speed up factors can improve overall system performance, and therefore focus the discussion on classical and Karatsuba multiplication and how methods may be combined.
