SIDE algorithm - akilmarshall/procedural-image-generation GitHub Wiki
Fix $(1, 0)$ in $\mathcal{F}$ with $t_i$
\mathcal{F}_{(1, 0, t_i)}=
\begin{bmatrix}
& t_i & \\ & & \\ & &
\end{bmatrix}
The $SIDE$ algorithm expands a fragment of the form $\mathcal{F}_{(1, 0, t)}$
(or any of its symmetries, $(0, 1), (2, 1), (1, 2)$).
SIDE\langle\mathcal{F}_{(1, 1, t)}\rangle=
\begin{bmatrix}
B=\mathcal{N}(t, 2) & t & A=\mathcal{N}(t, 0) \\
D=\mathcal{N}(b, 3)\cap\mathcal{N}(c, 2) & C=\mathcal{N}(t, 3) & E=\mathcal{N}(a, 3)\cap\mathcal{N}(c, 0) \\
H=\mathcal{N}(d, 3)\cap\mathcal{N}(f, 2) & F=\mathcal{N}(c, 3) & G=\mathcal{N}(f, 0)\cap\mathcal{N}(e, 2)
\end{bmatrix}
The $SIDE$ algorithm takes three steps:
- Compute
$\{A, B, C\}$directly from$t_i$,- select
$\{a, b, c\}$from$\{A, B, C\}$respectively.
- select
- Compute
$\{D, E\}$from$\mathcal{N}(d, 3)\cap\mathcal{N}(f, 2)$and$\mathcal{N}(f, 0)\cap\mathcal{N}(e, 2)$respectively, compute$F$directly from$c$- select
$\{d, e, f\}$from$\{E, D, F\}$respectively.
- select
- Compute
$\{H, G\}$from$\mathcal{N}(d, 3)\cap\mathcal{N}(f, 2)$and$\mathcal{N}(f, 0)\cap\mathcal{N}(e, 2)$respectively- select
$\{h, g\}$from$\{H, G\}$respectively.
- select