felsenstein_down! uses a nested loop over children and siblings for combine! ops. This is fine for binary trees but very slow (quadratic time complexity, with respect to children) for polytomies. Since a polytomy is equivalent to a binary tree with some added internal nodes with 0 branchlength, we can improve here.
felsenstein_down!
uses a nested loop over children and siblings forcombine!
ops. This is fine for binary trees but very slow (quadratic time complexity, with respect to children) for polytomies. Since a polytomy is equivalent to a binary tree with some added internal nodes with 0 branchlength, we can improve here.