Estrin's scheme

Horner's method for evaluation of polynomials is one of the most commonly used algorithms for this purpose, and unlike Estrin's scheme it is optimal in the sense that it minimizes the number of multiplications and additions required to evaluate an arbitrary polynomial.

Horner's method contains a series of multiplications and additions that each depend on the previous instruction and so cannot execute in parallel.

Estrin's scheme is one method that attempts to overcome this serialization while still being reasonably close to optimal.

They may also be evaluated using a native multiply–accumulate instruction on some architectures, an advantage that is shared with Horner's method.

Repeating this ⌊log2n⌋+1 times, one arrives at Estrin's scheme for parallel evaluation of a polynomial: This performs a total of n multiply-accumulate operations (the same as Horner's method) in line 1, and an additional ⌊log2n⌋ squarings in line 3.