там на каждом этапе отсчет формируется как сумма двух отсчетов (поворачивающий множитель модуля не изменяет). Поэтому после каждого этапа есть смысл добавлять по одному разряду целой части числа. Исходя из этих соображений есть смысл брать сразу (A*B >> 16), а не >>15.