Algorithm described in report