Algorithms, applications and implementations (2017)