algorithm basin-hopping with symmetrise csm moves code GMIN contributor Jacob Stevenson and David Wales