This is a very complete paper that all reviewers feel make a substantial contribution. The paper analyzes many different algorithms and proposes new algorithms.