algorithms www.softpanorama.org