for arguments $A$ and $B$.

try to perform the interaction between[node]{}s $A$ and $B$;(it cannot be performed)   [**if**]{} ($A=B$)   [**for**]{}(all pairs $\{a,b\}$ of child[node]{}s of $A$)   [Interact]{}($a,b$);   [**else if**]{} ($r_{\rm max}(A) > r_{\rm max}(B)$)   [**for**]{}(all child[node]{}s $a$ of $A$)   [Interact]{}($a,B$);   [**else**]{}   [**for**]{}(all child[node]{}s $b$ of $B$)   [Interact]{}($A,b$);

Thus, if an interaction cannot be executed, using the formulae of the last section – see Appendix B for details – it is split. In case of a mutual interaction, the bigger node is divided and up to eight new mutual interactions are created, while a self interaction of a cell results in up to 36 new interactions between its child nodes. In practice, we use a non-recursive code incorporating a stack of interactions.

### The Evaluation Phase {#sec:eval}

Finally, the Taylor coefficients relevant for each body are accumulated and the expansion is evaluated at every body’s position. After transforming ${\tilde{{\mbox{\boldmath$\sf C$}}}{}^{}}$ to ${{\mbox{\boldmath$\sf C$}}^{}}$ for every cell and body, this is done by the following recursive algorithm, which is initially called with the root cell and an empty Taylor series as arguments.

$T_A$ =[Taylor series]{} due to the ${{\mbox{\boldmath$\sf C$}}^{n}}$ of[cell]{} $A$; translate center of $T_0$ to center of mass of $A$; 