Lots of discussion and comparison with similar algorithms in https://news.ycombinator.com/item?id=40379175