Ошибка "Полиномиальный слишком большой для БПФ" на NTL

Я пытаюсь выполнить умножение многочленов степени 4096, используя класс ZZ_pEX из NTL. Тем не менее, он возвращает ошибку "Полиномиальный слишком большой для FFT", и я не мог найти способ заставить его работать (или даже что-то, что может помочь в документации NTL), а комментарий в слайде, говорящий, что это может быть исправление ( не говоря, как!).

Кто-нибудь нашел исправление для этого?

Ответы

Ответ 1

Вам необходимо повторно скомпилировать NTL с помощью GMP, который предоставляет подпрограммы библиотеки пакетов с несколькими значениями GNU Multiprecision. Когда это кажется уместным, в этом пакете используются очень красивые хаки, например. БПФ, для арифметики бигума.

Здесь ниже "Создание и использование NTL с GMP" - это подробные шаги, которые необходимо выполнить для компиляции NTL с помощью GMP: http://www.shoup.net/ntl/doc/tour-gmp.html

Удачи!