We present a new data structure to approximate accurately and efficiently a polynomial $f$ of degree $d$ given as a list of coefficients. Its properties allow us to improve the state-of-the-art bounds on the bit complexity for the problems of root isolation and approximate multipoint evaluation. This data structure also leads to a new geometric criterion to detect ill-conditioned polynomials, implying notably that the standard condition number of the zeros of a polynomial is at least exponential in the number of roots of modulus less than $1/2$ or greater than $2$.Given a polynomial $f$ of degree $d$ with $\|f\|_1 \leq 2^\tau$ for $\tau \geq 1$, isolating all its complex roots or evaluating it at $d$ points can be done with a quasi-linear number of arithmetic operations. However, considering the bit complexity, the state-of-the-art algorithms require at least $d^{3/2}$ bit operations even for well-conditioned polynomials and when the accuracy required is low. Given a positive integer $m$, we can compute our new data structure and evaluate $f$ at $d$ points in the unit disk with an absolute error less than $2^{-m}$ in $\widetilde O(d(\tau+m))$ bit operations, where $\widetilde O(\cdot)$ means that we omit logarithmic factors. We also show that if $\kappa$ is the absolute condition number of the zeros of $f$, then we can isolate all the roots of $f$ in $\widetilde O(d(\tau + \log \kappa))$ bit operations. Moreover, our algorithms are simple to implement. For approximating the complex roots of a polynomial, we implemented a small prototype in \verb|Python/NumPy| that is an order of magnitude faster than the state-of-the-art solver \verb/MPSolve/ for high degree polynomials with random coefficients.
翻译:我们提出了一个新的数据结构, 以准确和高效的方式接近一个多位位元值( 以美元/ 美元计度) 。 它的属性允许我们改进对于根隔离和多点评估问题的比重复杂性。 这个数据结构还导致一个新的几何标准, 以检测条件差的多语种, 特别是多语种的零的标准条件值至少是微调根数( 以美元/ 美元计数) 的指数。 以美元/ 美元计数( 以美元/ 美元计数) 。 以美元( 美元/ 美元/ 或以美元计数 。 以美元( 美元/ 美元/ 美元) 提供美元( 美元/ 美元/ 美元) 的基数, 美元/ 美元( 美元/ 美元/ 美元/ 美元) 的基数( 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 平方计算法的基数, 平面的算算算算数( 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/ 美元/