Given a polynomial
$$p(x) = a_0 +a_1+a_2x^2+\cdots + a_nx^n$$
it is possible to express \(p(x)\) in the algebraically equivalent
form
$$p(x) = a_0 + x\left(a_1+x\left(a_2+\cdots + x\left(a_{n-1} +xa_n
\right)\cdots\right)\right)$$
which is much more efficient for evaluation, as it requires only \(n\)
multiplications and \(n\) additions, and this is optimal. The output
of horner()
depends on the signature()
.