Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Ну да, если это так, то это идеальный вариант и я не против... 16.01.09 15:14 Число просмотров: 4698
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 16.01.09 15:20 Количество правок: 4
|
> Одна важная деталь: в таких интерпретаторах самые тяжелые > вычислительные задачи зачастую написаны на C и из > интерпретатора только вызываются "внешние" функции.
Ну да, если это так, то это идеальный вариант и я не против интерпретаторов. Но когда возникает задача посчитать что-то нетрадиционное для этого интерпретатора, то имеем, что на Сях милиардный цикл еще будет выполнятся столько, что можно дождаться, а на интерпретаторе даже милионный не дождешься.
> ЗЫ: Вообще конечно непонятно зачем ты уперся в gmp, если > оно у тебя не идет никак. Да, это лучшая библиотека на > сегодня, но ведь можно и альтернативы попробовать: > http://en.wikipedia.org/wiki/List_of_numerical_analysis_sof > tware
Ссылка хорошая, удобная, полезная, не только для меня, вообще, но уже не в данном случае.
Была затычка, но дело сдвинулось с мертвой точки. GMP уже немного погонял. Прикололо, что его функция вычисления факториала считает примерно в 8-10 раз быстрее. Молодцы! Не буду перечислять еще мелкие проблемы, которые легко поборолись в процессе.
А вообще то история старая. Когда-то давно возникло желание решить сложную задачку, для чего могло потребовться оперировать очень большими числами вплоть до гигабит. Библиотечки были довольно "короткие" и фиксированной длины. Начал сам писать безграничную. Возникла проблема с распределением памяти - тормоза, на удивление очень много процессорного времени отжирало перераспределение памяти (realloc). Да и периодический контроль длины - тоже дополнительные расходы. Попробовал перейти к фиксированной разрядности - другая проблема, если заложить под большую разрядность сразу - тормоза на экспериментах с небольшими значениями. Других "граблей" тоже хватало. Тормоза на генерации простых, разрядностью ~512 бит. Скорость генерации может достигать порядка минут. А что будет с килобитом или двухкилобитом! Что-то не то. Поскольку писал под С++, делал все на объекте с перегруженными операциями. Вероятно большие накладные расходы на копировании во временный объект при возврате значений. В общем, может потом и поковыряюсь со своей библиотечкой, на досуге, а пока придется на gmp, хоть с точки зрения удобства она не идеал.
|
|
|