Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Скачал - буду смотреть и тестировать. 17.12.04 15:01 Число просмотров: 6006
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> Вторая ссылка по указанному запросу: > https://www.cosic.esat.kuleuven.ac.be/nessie/call/mplibs.ht > ml > Кста, gmp - работает с числами НЕОГРАНИЧЕННОЙ разрядности > (ограниченной только размерами памяти:-) ). По > необходимости она расширяет количество, но для большей > эффективности стоит сразу же зарезервировать необходимый > размер.
Скачал - буду смотреть и тестировать.
> Ага. Только в этом случае даже при сложении/вычитании > возникает огромный оверхед, а уж при умножении и не приведи > господь делении - совсем мрачно становится. Кстати, я тоже > использовал 16-тибитные лимбы. Сложение вычитание > одинаковых по размерности чисел было примерно в 10 раз > медленнее, чем в gmp.
По идее должно быть только в 2 (чуть более) раза при использовании Ассемблера. 10 получить можно при использовании слабооптимизирующего компилятора.
> Просто так (умножение в столбик) не получится. Для снижения > сложности умножения там применяются хитрые алгоритмы, > некоторые из которых я так и не понял.
А что же мы все "столбиком" на бумаге считаем?
> Вот так вот. Я тоже в свое время писал библиотеку для > работы с числами произвольной длины. 16-битные лимбы, > отсутсвие оптимизации. 100000 операций сложения уж не помню > какой длины (не маленькой) занимали около 17 секунд (как > сейчас помню). Ну а gmp сделал то же самое за полторы > секунда. Вот был облом. Это одна из вех, на которых я > понял, что доверять библиотекам все таки нужно, а девиз: > "Этот код плохой, потому как написан не мной" - чаще всего > заблуждение. :-)
При случае напишу про свои тесты.
> Я даже больше скажу. Лучше - фиг напишешь :-)
Зависит от критериев оценки. Быстрее - может быть, хотя не факт. Удобнее - вполне возможно.
И в довесок. 10 раз быстрее, 100, 1000. Если факторизация будет сложности log(n), то быстродействие не будет играть большого значения, если оно не будет уж настолько тупым/тормозным. Какая разница - будет ли думать компьютер микросекунду или милисекунду над задачей разложения килобитного числа. А для n/ln(n) любого быстродействия будет мало, чего уж там говорить об одном или двух десятичных порядках.
|
|
|