Несколько рекомендаций по оптимизации алгоритмов умножения больших чисел для выполнения на компьютере:
- Переход с векторов на обычные массивы. 1 Эффект от этого зависит от конкретного компилятора, но обычно составляет примерно 10–20%. 1
- Предпосчет всех степеней числа. 1 Это позволит избавиться от лишних умножений во вложенном цикле. 1 Ориентировочное ускорение — 5–10%. 1
- Замена обращений к массивам по индексам на указатели на текущие элементы массивов. 1 Это ускорит программу в распространённых компиляторах на 5–10%. 1
- Отказ от стандартного типа комплексных чисел. 1 Выигрыш от этого даже в современных компиляторах может составлять до нескольких десятков процентов. 1
- Отсечение по длине: когда длина рабочего блока становится маленькой, вычислять ДПФ для него «вручную». 1
- Распараллеливание алгоритма. 2 Для этого можно использовать свойства современных процессоров, например суперскалярность и многоядерность. 2
Выбор конкретных оптимизаций зависит от конкретной ситуации и целей разработки.