English

Fast Evaluation of Real and Complex Polynomials

Numerical Analysis 2022-11-15 v1 Mathematical Software Numerical Analysis Dynamical Systems

Abstract

We propose an algorithm for quickly evaluating polynomials. It pre-conditions a complex polynomial PP of degree dd in time O(dlogd)O(d\log d), with a low multiplicative constant independent of the precision. Subsequent evaluations of PP computed with a fixed precision of pp bits are performed in average arithmetic complexity O(d(p+logd))O\big(\sqrt{d(p+\log d)}\big) and memory O(dp)O(dp). The average complexity is computed with respect to points zCz \in \mathbb{C}, weighted by the spherical area of C\overline{\mathbb{C}}. The worst case does not exceed the complexity of H{\"o}rner's scheme. In particular, our algorithm performs asymptotically as O(dlogd)O(\sqrt{d\log d}) per evaluation. For many classes of polynomials, in particular those with random coefficients in a bounded region of C\mathbb{C}, or for sparse polynomials, our algorithm performs much better than this upper bound, without any modification or parameterization.The article contains a detailed analysis of the complexity and a full error analysis, which guarantees that the algorithm performs as well as H\''orner's scheme, only faster. Our algorithm is implemented in a companion library, written in standard C and released as an open-source project [MV22].Our claims regarding complexity and accuracy are confirmed in practice by a set of comprehensive benchmarks.

Keywords

Cite

@article{arxiv.2211.06320,
  title  = {Fast Evaluation of Real and Complex Polynomials},
  author = {Ramona Anton and Nicolae Mihalache and François Vigneron},
  journal= {arXiv preprint arXiv:2211.06320},
  year   = {2022}
}
R2 v1 2026-06-28T05:41:26.201Z