Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: polroots Section: polynomials C-Name: roots Prototype: Gp Description: (gen):vec:prec roots($1, $prec) Help: polroots(T): complex roots of the polynomial T using Schonhage's method, as modified by Gourdon. Doc: complex roots of the polynomial $T$, given as a column vector where each root is repeated according to its multiplicity and given as floating point complex numbers at the current \kbd{realprecision}: \bprog ? polroots(x^2) %1 = [0.E-38 + 0.E-38*I, 0.E-38 + 0.E-38*I]~ ? polroots(x^3+1) %2 = [-1.00... + 0.E-38*I, 0.50... - 0.866...*I, 0.50... + 0.866...*I]~ @eprog The algorithm used is a modification of Sch\"onhage\sidx{Sch\"onage}'s root-finding algorithm, due to and originally implemented by Gourdon. It runs in polynomial time in $\text{deg}(T)$ and the precision. If furthermore $T$ has rational coefficients, roots are guaranteed to the required relative accuracy. If the input polynomial $T$ is exact, then the ordering of the roots does not depend on the precision: they are ordered by increasing $|\Im z|$, then by increasing $\Re z$; in case of tie (conjugates), the root with negative imaginary part comes first.