Synthetic division

In algebra, synthetic division is a method for manually performing Euclidean division of polynomials, with less writing and fewer calculations than long division.

It is mostly taught for division by linear monic polynomials (known as Ruffini's rule), but the method can be generalized to division by any polynomial.

The advantages of synthetic division are that it allows one to calculate without writing variables, it uses few calculations, and it takes significantly less space on paper than long division. Also, the subtractions in long division are converted to additions by switching the signs at the very beginning, helping to prevent sign errors.

Regular synthetic division
The first example is synthetic division with only a monic linear denominator $$x-a$$.


 * $$\frac{x^3 - 12x^2 - 42}{x - 3}$$

The numerator can be written as $$ p(x) = x^3 - 12x^2 + 0x - 42 $$.

The zero of the denominator $$g(x)$$ is $$3$$.

The coefficients of $$p(x)$$ are arranged as follows, with the zero of $$g(x)$$ on the left:


 * $$\begin{array}{cc}

\begin{array}{r} \\ 3 \\ \end{array} &   \begin{array}{|rrrr} \ 1 & -12 & 0 & -42 \\         &     &   &     \\        \hline \end{array} \end{array}$$

The first coefficient after the bar is "dropped" to the last row.
 * $$\begin{array}{cc}

\begin{array}{r} \\ 3 \\ \\ \end{array} &   \begin{array}{|rrrr} \color{blue}1 & -12 & 0 & -42 \\ &    &   &     \\        \hline \color{blue}1 &    &   &     \\ \end{array} \end{array}$$

The dropped number is multiplied by the number before the bar and placed in the next column.
 * $$\begin{array}{cc}

\begin{array}{r} \\ \color{grey}3 \\ \\ \end{array} &   \begin{array}{|rrrr} 1 & -12 & 0 & -42 \\         &   \color{brown}3 &   &     \\ \hline \color{blue}1 &    &   &     \\ \end{array} \end{array}$$

An addition is performed in the next column.
 * $$\begin{array}{cc}

\begin{array}{c} \\ 3 \\ \\ \end{array} &   \begin{array}{|rrrr} 1 & \color{green}-12 & 0 & -42 \\ &  \color{green}3 &   &     \\ \hline 1 & \color{green}-9 &   &     \\ \end{array} \end{array}$$

The previous two steps are repeated, and the following is obtained:
 * $$\begin{array}{cc}

\begin{array}{c} \\ 3 \\ \\ \end{array} &   \begin{array}{|rrrr} 1 & -12 &  0 & -42 \\          &   3 & -27 & -81 \\        \hline 1 & -9 & -27 & -123    \end{array} \end{array}$$

Here, the last term (-123) is the remainder while the rest correspond to the coefficients of the quotient. The terms are written with increasing degree from right to left beginning with degree zero for the remainder and the result.
 * $$	\begin{array}{rrr|r}

1x^2 & -9x & -27 & -123 \end{array}$$

Hence the quotient and remainder are:


 * $$q(x) = x^2 - 9x - 27

$$
 * $$r(x) = -123$$

Evaluating polynomials by the remainder theorem
The above form of synthetic division is useful in the context of the polynomial remainder theorem for evaluating univariate polynomials. To summarize, the value of $$p(x)$$ at $$a$$ is equal to the remainder of the division of $$p(x)$$ by $$x-a.$$

The advantage of calculating the value this way is that it requires just over half as many multiplication steps as naive evaluation. An alternative evaluation strategy is Horner's method.

Expanded synthetic division
This method generalizes to division by any monic polynomial with only a slight modification with changes in bold. Using the same steps as before, perform the following division:
 * $$\frac{x^3 - 12x^2 - 42}{x^2 + x - 3}$$

We concern ourselves only with the coefficients. Write the coefficients of the polynomial to be divided at the top.
 * $$	\begin{array}{|rrrr}

\    1 & -12 & 0 & -42 \end{array}$$

Negate the coefficients of the divisor.
 * $$	\begin{array}{rrr}

-1x^2 &-1x &+3 \end{array}$$

Write in every coefficient but the first one on the left in an upward right diagonal (see next diagram).
 * $$\begin{array}{cc}

\begin{array}{rr} \\ &3 \\ -1& \\ \end{array} &   \begin{array}{|rrrr} \ 1 & -12 & 0 & -42 \\         &     &   &     \\          &     &   &     \\        \hline \end{array} \end{array}$$

Note the change of sign from 1 to &minus;1 and from &minus;3 to 3. "Drop" the first coefficient after the bar to the last row.


 * $$\begin{array}{cc}

\begin{array}{rr} \\ &3 \\ -1& \\ \\ \end{array} &   \begin{array}{|rrrr} 1 & -12 & 0 & -42 \\         &     &   &     \\          &     &   &     \\        \hline 1 &    &   &     \\        \end{array} \end{array}$$

Multiply the dropped number by the diagonal before the bar and place the resulting entries diagonally to the right from the dropped entry.
 * $$\begin{array}{cc}

\begin{array}{rr} \\ &3 \\ -1& \\ \\ \end{array} &   \begin{array}{|rrrr} 1 & -12 & 0 & -42 \\         &     & 3 &     \\          &  -1 &   &     \\        \hline 1 &    &   &     \\        \end{array} \end{array}$$

Perform an addition in the next column.
 * $$\begin{array}{cc}

\begin{array}{rr} \\ &3 \\ -1& \\ \\ \end{array} &   \begin{array}{|rrrr} 1 & -12 & 0 & -42 \\         &     & 3 &     \\          &  -1 &   &     \\        \hline 1 & -13 &  &     \\        \end{array} \end{array}$$

Repeat the previous two steps until you would go past the entries at the top with the next diagonal.
 * $$\begin{array}{cc}

\begin{array}{rr} \\ &3 \\ -1& \\ \\ \end{array} &   \begin{array}{|rrrr} 1 & -12 & 0 & -42 \\          &     &  3 & -39 \\          &  -1 & 13 &     \\        \hline 1 & -13 & 16 &    \\        \end{array} \end{array}$$

Then simply add up any remaining columns.
 * $$\begin{array}{cc}

\begin{array}{rr} \\ &3 \\ -1& \\ \\ \end{array} &   \begin{array}{|rrrr} 1 & -12 & 0 & -42 \\          &     &  3 & -39 \\          &  -1 & 13 &     \\        \hline 1 & -13 & 16 & -81 \\       \end{array} \end{array}$$

Count the terms to the left of the bar. Since there are two, the remainder has degree one and this is the two right-most terms under the bar. Mark the separation with a vertical bar.
 * $$	\begin{array}{rr|rr}

1 & -13 & 16 & -81 \end{array}$$ The terms are written with increasing degree from right to left beginning with degree zero for both the remainder and the result.
 * $$	\begin{array}{rr|rr}

1x & -13 & 16x & -81 \end{array}$$

The result of our division is:
 * $$\frac{x^3 - 12x^2 - 42}{x^2 + x - 3} = x - 13 + \frac{16x - 81}{x^2 + x - 3}$$

For non-monic divisors
With a little prodding, the expanded technique may be generalised even further to work for any polynomial, not just monics. The usual way of doing this would be to divide the divisor $$g(x)$$ with its leading coefficient (call it a):
 * $$h(x) = \frac{g(x)}{a}$$

then using synthetic division with $$h(x)$$ as the divisor, and then dividing the quotient by a to get the quotient of the original division (the remainder stays the same). But this often produces unsightly fractions which get removed later and is thus more prone to error. It is possible to do it without first reducing the coefficients of $$g(x)$$.

As can be observed by first performing long division with such a non-monic divisor, the coefficients of $$f(x)$$ are divided by the leading coefficient of $$g(x)$$ after "dropping", and before multiplying.

Let's illustrate by performing the following division:


 * $$\frac{6x^3+5x^2-7}{3x^2-2x-1}$$

A slightly modified table is used:


 * $$\begin{array}{cc}

\begin{array}{rrr} \\ &1& \\ 2&& \\ \\&&/3 \\ \end{array} \begin{array}{|rrrr} 6 & 5 & 0 & -7 \\         &     &  &     \\          &    &   &     \\        \hline &    &   &     \\           &     &   &     \\       \end{array} \end{array}$$

Note the extra row at the bottom. This is used to write values found by dividing the "dropped" values by the leading coefficient of $$g(x)$$ (in this case, indicated by the /3; note that, unlike the rest of the coefficients of $$g(x)$$, the sign of this number is not changed).

Next, the first coefficient of $$f(x)$$ is dropped as usual:


 * $$\begin{array}{cc}

\begin{array}{rrr} \\ &1& \\ 2&& \\ \\&&/3 \\ \end{array} \begin{array}{|rrrr} 6 & 5 & 0 & -7 \\         &     &  &     \\          &    &   &     \\        \hline 6 &    &   &     \\           &     &   &     \\       \end{array} \end{array}$$

and then the dropped value is divided by 3 and placed in the row below:


 * $$\begin{array}{cc}

\begin{array}{rrr} \\ &1& \\ 2&& \\ \\&&/3 \\ \end{array} \begin{array}{|rrrr} 6 & 5 & 0 & -7 \\         &     &  &     \\          &    &   &     \\        \hline 6 &    &   &     \\         2 &     &   &     \\       \end{array} \end{array}$$

Next, the new (divided) value is used to fill the top rows with multiples of 2 and 1, as in the expanded technique:


 * $$\begin{array}{cc}

\begin{array}{rrr} \\ &1& \\ 2&& \\ \\&&/3 \\ \end{array} \begin{array}{|rrrr} 6 & 5 & 0 & -7 \\         &   & 2 &     \\          & 4 &   &     \\        \hline 6 &    &   &     \\         2 &     &   &     \\       \end{array} \end{array}$$

The 5 is dropped next, with the obligatory adding of the 4 below it, and the answer is divided again:


 * $$\begin{array}{cc}

\begin{array}{rrr} \\ &1& \\ 2&& \\ \\&&/3 \\ \end{array} \begin{array}{|rrrr} 6 & 5 & 0 & -7 \\         &   & 2 &     \\          & 4 &   &     \\        \hline 6 & 9  &   &     \\         2 & 3   &   &     \\       \end{array} \end{array}$$

Then the 3 is used to fill the top rows:


 * $$\begin{array}{cc}

\begin{array}{rrr} \\ &1& \\ 2&& \\ \\&&/3 \\ \end{array} \begin{array}{|rrrr} 6 & 5 & 0 & -7 \\         &   & 2 &  3  \\          & 4 & 6 &     \\        \hline 6 & 9 &  &     \\         2 & 3 &   &     \\       \end{array} \end{array}$$

At this point, if, after getting the third sum, we were to try and use it to fill the top rows, we would "fall off" the right side, thus the third sum is the first coefficient of the remainder, as in regular synthetic division. But the values of the remainder are not divided by the leading coefficient of the divisor:


 * $$\begin{array}{cc}

\begin{array}{rrr} \\ &1& \\ 2&& \\ \\&&/3 \\ \end{array} \begin{array}{|rrrr} 6 & 5 & 0 & -7 \\         &   & 2 &  3  \\          & 4 & 6 &     \\        \hline 6 & 9 & 8 & -4 \\         2 & 3 &   &     \\       \end{array} \end{array}$$

Now we can read off the coefficients of the answer. As in expanded synthetic division, the last two values (2 is the degree of the divisor) are the coefficients of the remainder, and the remaining values are the coefficients of the quotient:


 * $$	\begin{array}{rr|rr}

2x & +3 & 8x & -4 \end{array}$$

and the result is


 * $$\frac{6x^3+5x^2-7}{3x^2-2x-1} = 2x + 3 + \frac{8x - 4}{3x^2-2x-1}$$

Compact Expanded Synthetic Division
However, the diagonal format above becomes less space-efficient when the degree of the divisor exceeds half of the degree of the dividend. Consider the following division:


 * $$\dfrac{a_7 x^7 + a_6 x^6 + a_5 x^5 + a_4 x^4 + a_3 x^3 + a_2 x^2 + a_1 x + a_0}{b_4 x^4 - b_3 x^3 - b_2 x^2 - b_1 x - b_0}$$

It is easy to see that we have complete freedom to write each product in any row as long as it is in the correct column, so the algorithm can be compactified by a greedy strategy, as illustrated in the division below:


 * $$\begin{array}{cc} \begin{array}{rrrr} \\ \\ \\ \\ b_3 & b_2 & b_1 & b_0 \\ \\ &&&&/b_4 \\ \end{array} \begin{array}{|rrrr|rrrr} & & & & q_0 b_3 & & & \\ & & & q_1 b_3 & q_1 b_2 & q_0 b_2 & & \\ & & q_2 b_3 & q_2 b_2 & q_2 b_1 & q_1 b_1 & q_0 b_1 & \\ & q_3 b_3 & q_3 b_2 & q_3 b_1 & q_3 b_0 & q_2 b_0 & q_1 b_0 & q_0 b_0 \\ a_7 & a_6 & a_5 & a_4 & a_3 & a_2 & a_1 & a_0 \\ \hline a_7 & q_2' & q_1' & q_0' & r_3 & r_2 & r_1 & r_0 \\ q_3 & q_2 & q_1 & q_0 & & & & \\ \end{array} \end{array}$$

The following describes how to perform the algorithm; this algorithm includes steps for dividing non-monic divisors:

1. rrrrrrrr} \ a_7 & a_6 & a_5 & a_4 & a_3 & a_2 & a_1 & a_0 \\ \hline \end{array} \end{array}$

2. rrrrrrrr}\ a_7 & a_6 & a_5 & a_4 & a_3 & a_2 & a_1 & a_0 \\ \hline \end{array} \end{array}$

3. rrrr

4. rrrr} a_7 & a_6 & a_5 & a_4 & a_3 & a_2 & a_1 & a_0 \\ \hline & & & & & & & \\ \end{array} \end{array}$

5. rrrr

6. rrrr} a_7 & a_6 & a_5 & a_4 & a_3 & a_2 & a_1 & a_0 \\ \hline a_7 & & & & & & & \\ \end{array} \end{array}$

7. rrrr

8. rrrr} & q_3 b_3 & q_3 b_2 & q_3 b_1 & q_3 b_0 & & & \\ a_7 & a_6 & a_5 & a_4 & a_3 & a_2 & a_1 & a_0 \\ \hline a_7 & q_2' & & & & & & \\ q_3 & & & & & & & \\ \end{array} \end{array}$

9. rrrr

10. rrrr} & & & & q_0 b_3 & & & \\ & & & q_1 b_3 & q_1 b_2 & q_0 b_2 & & \\ & & q_2 b_3 & q_2 b_2 & q_2 b_1 & q_1 b_1 & q_0 b_1 & \\ & q_3 b_3 & q_3 b_2 & q_3 b_1 & q_3 b_0 & q_2 b_0 & q_1 b_0 & q_0 b_0 \\ a_7 & a_6 & a_5 & a_4 & a_3 & a_2 & a_1 & a_0 \\ \hline a_7 & q_2' & q_1' & q_0' & r_3 & r_2 & r_1 & r_0 \\ q_3 & q_2 & q_1 & q_0 & & & & \\ \end{array} \end{array}$

Python implementation
The following snippet implements Expanded Synthetic Division in Python for arbitrary univariate polynomials: