by Jurie and Dhome [@Jurie2001]. Assuming that prior knowledge of the distribution of warp displacements is known, a set of $m$ synthetic warps, usually much greater than the number of pixels $n$ used ($m \gg n$), is applied to the template. Let $\Delta \mathbf{i}$ denote the SSD score from (\[eq:lk\_cost\]) rasterized as a column vector. Each synthetic warp update generates one such column vector, and these vectors can be stacked to form the error matrix $\mathbf{E} = [\Delta \mathbf{i}_1, \Delta \mathbf{i}_2, \cdots , \Delta \mathbf{i}_m]$. Similarly, the warp updates can be stacked to form a warp matrix $\mathbf{P} = [\Delta \mathbf{p}_1, \Delta \mathbf{p}_2, \cdots, \Delta \mathbf{p}_m]$. The Linear Predictor, $\mathbf{A}$, relates $\mathbf{P}$ and $\mathbf{E}$ as $$\label{eq:jd_learning}
    \mathbf{P} = \mathbf{A} \mathbf{E},$$ and it can be computed in closed-form as $$\label{eq:jd_solve}
    \mathbf{A} = \mathbf{P}  \mathbf{E}^T ( \mathbf{E} \mathbf{E}^T )^{-1}.$$ The drawback is that the learning step can be computationally expensive, depending on (1) the number of synthetic warps used, and (2) the cost of inverting the term $\mathbf{E} \mathbf{E}^T$.

Efficient Linear Predictors {#subsec:efficient_lin_predictors}
---------------------------

Holzer [@Holzer2015] proposed three approaches to make the learning step of LPs faster.

![image](symbolic_repr.pdf){width="0.7\linewidth"}

#### Discrete Cosine Transform

DCT is commonly used for image compression, where the image 