  We give an algorithm for computing all roots of polynomials over a univariate
power series ring over an exact field $\mathbb{K}$. More precisely, given a
precision $d$, and a polynomial $Q$ whose coefficients are power series in $x$,
the algorithm computes a representation of all power series $f(x)$ such that
$Q(f(x)) = 0 \bmod x^d$. The algorithm works unconditionally, in particular
also with multiple roots, where Newton iteration fails. Our main motivation
comes from coding theory where instances of this problem arise and multiple
roots must be handled.
  The cost bound for our algorithm matches the worst-case input and output size
$d \deg(Q)$, up to logarithmic factors. This improves upon previous algorithms
which were quadratic in at least one of $d$ and $\deg(Q)$. Our algorithm is a
refinement of a divide \& conquer algorithm by Alekhnovich (2005), where the
cost of recursive steps is better controlled via the computation of a factor of
$Q$ which has a smaller degree while preserving the roots.

Symbolic Computation