Easy Octave Algorithm 3
$$\def\Order{\text{Order}}\def\First{\text{First}} \def\Last{\text{Last}}\def\L{\text{L}} \def\R{\text{R}}\def\Prod{\text{Prod}} \def\t{\text{$\bf t$}}\def\pmax{\text{p\_max}}$$This page contains an Octave version of Algorithm 3, on page 64 of the B-series book. This function is intended to run equally well on Matlab, SciLab, as well as Octave.
The purpose of the algorithm is to obtain information about trees up to order \pmax of
\begin{align*} \Order(i) &= |\t_i|,\\ \First(p) &= \text{the least $i$ such that } |\t_i|=p\\ \Last(p) &= \text{the greatest $i$ such that } |\t_i|=p\\ \L(i),\R(i) &= \text{if $\L(i)=j$, $\R(i)=k$, then }\t_j* \t_k = \t_i,\\ \Prod(j,k) &= i \text{ such that }\t_j* \t_k = \t_i, \end{align*}
The ambiguity of $L(i)$ and $R(i)$ is resolved as described in the text.Octave function definition
function [Order, First, Last, L, R, Prod] = algo3(pmax) First(1) = 1 Last(1) = 1 Order(1) = 1 n = 1 for p = 2:pmax First(p)= n+1 for r =1:Last(p-1) for l = First(p-Order(r)):Last(p-Order(r)) if (l==1 | r<=R(l)) n = n+1 Prod(l,r)= n L(n) = l R(n) = r Order(n) = p else Prod(l,r) = Prod(Prod(L(l),r),R(l)) end end end Last(p) = n end end
$\to$ B series book
$\to$ Homepage