flopscope.

flopscope.numpy.roots

Return the roots of a polynomial with coefficients given in p.

Adapted from NumPy docs np.roots

Areacore
Typecustom
NumPy Refnp.roots
Cost
10n310n^3
Flopscope Context

Return roots of polynomial with given coefficients. Cost: ~$10n^3$ (companion-matrix eigvals). n = trimmed degree (zero coefficients stripped, as np.roots does). Confirmed by the 2026-06 evidence audit (LAPACK Users' Guide Table 3.13 / G&VL 4e §7.5).

Note.

This forms part of the old polynomial API. Since version 1.4, the new polynomial API defined in flops.polynomial is preferred. A summary of the differences can be found in the transition guide.

The values in the rank-1 array p are coefficients of a polynomial. If the length of p is n+1 then the polynomial is described by:

p[0] * x**n + p[1] * x**(n-1) + ... + p[n-1]*x + p[n]

Parameters

p:array_like

Rank-1 array of polynomial coefficients.

Returns

out:ndarray

An array containing the roots of the polynomial.

Raises

:ValueError

When p cannot be converted to a rank-1 array.

See also

Notes

The algorithm relies on computing the eigenvalues of the companion matrix [1]_.

References

footnote
1

R. A. Horn & C. R. Johnson, Matrix Analysis.  Cambridge, UK:
Cambridge University Press, 1999, pp. 146-7.

Examples

>>> import flopscope.numpy as fnp
>>> coeff = [3.2, 2, 1]
>>> flops.roots(coeff)
array([-0.3125+0.46351241j, -0.3125-0.46351241j])