Let $\mathbb{F}$ be a finite field and let $\boldsymbol{x} = (x_1, x_2, \dots, x_n)$ be $n$ pairwise distinct points in $\mathbb{F}$.
Given the vector $\boldsymbol{y} = (y_1, y_2, \dots, y_n)$, with $y_i \in \{0,1\}$, we can find a polynomial $p(x)$ such that $$p(x_i) = y_i,$$ for $i = 1, \dots, n$.
I recently discovered the DFT algorithm (here, the values $x_i$ are taken to be the powers of a primitive $n$-th root of unity) to perform this task in $\mathcal{O}(n \log n)$.
- There exists faster algorithms for the case where the evaluations $y_i$ are either $1$ or $0$?
- If not, there exists some trick to improve efficiency for this case?