Большое целое число в Forth?
Я разработал систему больших целых чисел (для чисел динамической длины) в Forth (ANS-94), но она слишком медленная. Есть ли в наличии быстрые системы?
Кроме того, любые советы по этому вопросу приветствуются.
1 ответ
Научная библиотека Forth включает модуль " Арифметика больших чисел со знаком". Хотя, чтобы увидеть, какая реализация быстрее, требуется тест. Для использования этого модуля в SP-Forth необходимо включить несколько библиотек:
REQUIRE [IF] lib/include/tools.f
REQUIRE M+ lib/include/double.f
S" big.fth" INCLUDED \ just for example
В любом случае, если Forth генерирует код с недостаточной производительностью (и алгоритм уже оптимизирован), можно использовать любую другую реализацию в форме динамической библиотеки (DLL, SO).
Что касается производительности, лучше использовать динамическую память (вместо пространства словаря) для буферов в SP-Forth 4.21, поскольку пространство данных и пространство кода не разделены.