# 30-4 Evaluating all derivatives of a polynomial at a point

Given a polynomial $A(x)$ of degree-bound $n$, we define its $t$th derivative by

$$A^{(t)}(x) = \begin{cases} A(x) & \text{ if } t = 0, \\ \frac{d}{dx} A^{(t - 1)}(x) & \text{ if } 1 \le t \le n - 1, \\ 0 & \text{ if } t \ge n. \end{cases}$$

From the coefficient representation $(a_0, a_1, \dots, a_{n - 1})$ of $A(x)$ and a given point $x_0$, we wish to determine $A^{(t)}(x_0)$ for $t = 0, 1, \dots, n- 1$.

a. Given coefficients $b_0, b_1, \dots, b_{n - 1}$ such that

$$A(x) = \sum_{j = 0}^{n - 1} b_j(x - x_0)^j,$$

show how to compute $A^{(t)}(x_0)$ for $t = 0, 1, \dots, n - 1$, in $O(n)$ time.

b. Explain how to find $b_0, b_1, \dots, b_{n - 1}$ in $O(n\lg n)$ time, given $A(x_0 + \omega_n^k)$ for $k = 0, 1, \dots, n - 1$.

c. Prove that

$$A(x_0 + \omega_n^k) = \sum_{r = 0}^{n - 1} \Bigg(\frac{\omega_n^{kr}}{r!} \sum_{j = 0}^{n - 1} f(j)g(r - j)\Bigg),$$

where $f(j) = a_j \cdot j!$ and

$$g(l) = \begin{cases} x_0^{-l} / (-l)! & \text{ if } -(n - 1) \le l \le 0, \\ 0 & \text{ if } 1 \le l \le n - 1. \end{cases}$$

d. Explain how to evaluate $A(x_0 + \omega_n^k)$ for $k = 0, 1, \dots, n - 1$ in $O(n\lg n)$ time. Conclude that we can evaluate all nontrivial derivatives of $A(x)$ at $x_0$ in $O(n\lg n)$ time.

(Omit!)