X algorithm