Gnomon algorithm