Appendix A Algorithm details