Ferguson–Forcade algorithm