2015-02-25 2 views

ответ

1

The Forth Scientific Library содержит Arithmetic on big signed-magnitude numbers модуль. Хотя для проверки того, какая реализация выполняется быстрее, требуется тест. Для того, чтобы использовать этот модуль в 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, так как пространство данных и кодовое пространство не разделены.

+0

Я действительно интересен в других BigInt, так как моя слишком медленная. К сожалению, по-моему, пока что я использую стеки для больших чисел, но другие могут быть быстрее, поэтому я могу по меньшей мере заимствовать алгоритмы. BigIntegerForth использует отдельно выделенные области памяти для больших стеков. – Lehs

+0

Код в Forth Scientific Library не работает должным образом в моей системе, и я не понимаю, почему. – Lehs

+0

Да, да, я сделал это. Попробуйте сами большие 1234567 большие. 1234567 Ok большой 12345678 большой. 4295941036 Ok – Lehs

Смежные вопросы