We’re developing some new Bayesian phylogenetic methods and need fast branch length gradients of the likelihood function. That is, given a tree with branch lengths, we’d like to get a log likelihood as well as a vector such that the ith entry is the derivative of the log likelihood with respect to the ith branch length.

Methods for doing this are described in

We have a numpy implementation, but would like more speed, including low-level tweaking.

Note that in contrast to typical applications of likelihood calculations with local search, it’s not important to be able to do partial caching to speed up local modifications, which makes some of the functionality of existing likelihood libraries inessential. Each tree is brand new.

Anyone know of such a thing, before we set “pen to paper”?