ProCreations's picture
Publish validated PolyILR reproduction logbook
db39dbc verified
Raw
History Blame Contribute Delete
1.3 kB
\begin{algorithm}[bt]
\caption{PolyILR Basis Construction}
\label{alg:polyilr}
{\footnotesize
\begin{algorithmic}[1]
\REQUIRE Rooted $T$ with $d$ leaves, internal node ordering $\pi$ (DFS)
\ENSURE ILR basis $V \in \mathbb{R}^{d \times (d-1)}$
\STATE $j \leftarrow 1$
\FOR{each internal node $u$ from $\pi$}
\STATE $k_u \leftarrow$ number of children of $u$
\FOR{$r = 1, \ldots, k_u$}
\STATE $C_u^{(r)} \leftarrow$ leaves descending from $r$-th child
\STATE $n_r \leftarrow |C_u^{(r)}|$
\ENDFOR
\STATE $\mathcal{S}_u \leftarrow \{\mathbf{h} \in \mathbb{R}^{k_u} : \sum_r h_r = 0\}$
\STATE $\langle \mathbf{h}, \mathbf{h}' \rangle_w \leftarrow \sum_r h_r h'_r / n_r$
\STATE $H^{(u)} \leftarrow$ Helmert matrix in $\mathbb{R}^{k_u \times (k_u-1)}$
\STATE $\widetilde{H}^{(u)} \leftarrow$ Gram-Schmidt on $H^{(u)}$ under $\langle \cdot, \cdot \rangle_w$
\FOR{$m = 1, \ldots, k_u - 1$}
\FOR{$i = 1, \ldots, d$}
\IF{$i \in C_u^{(r)}$ for some $r$}
\STATE $V_{i,j} \leftarrow \widetilde{H}^{(u)}_{r,m} / n_r$
\ELSE
\STATE $V_{i,j} \leftarrow 0$
\ENDIF
\ENDFOR
\STATE $j \leftarrow j + 1$
\ENDFOR
\ENDFOR
\STATE \textbf{return} $V$
\end{algorithmic}
}
\end{algorithm}