canal algorithm