mwpennell/geiger-v2 — pull request #9 by josephwb (2014-10-25 04:03:31+00:00)
Title: improve drop.extinct

```drop.extinct``` is prohibitively slow. For a [simulated tree](https://www.dropbox.com/s/njlmg3hbw2739no/p4.tre?dl=0), pruning extinct taxa takes a crazily long amount of time:
```R
system.time(p6 <- drop.extinct(p4))
user system elapsed
1969.877 12.600 1984.587
```
The new function (borrowing liberally from the ape function ```is.ultrametric```) takes significantly less time:
```R
system.time(p6 <- drop.extinct2(p4))
user system elapsed
34.907 1.358 36.268
```
Furthermore, the overwhelming bulk of the the time spent in the new function is taken up by the requisite ape function ```collapse.singles``` (essentially 99% of the time reported above). I am looking into this function, but the increase in efficiency already achieved above makes this code change a significant improvement.

Pretty straight-forward upgrade, but I thought I would submit it via the pull-request route to encourage explicit vetting. [Inspired also by the OpenTree workflow, where changes must be explicitly approved by someone that is not a immediate contributor. This workflow can be frustratingly slow at times (i.e. getting someone to approve code changes), but probably a good strategy].

So, yeah: aimed at you @mwpennell (or whoever is paying attention).