Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Я в свое время так и не нашел ничего подходящего. Может... 15.12.04 17:14 Число просмотров: 6878
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> А чего тут помогать то? Собственно > http://www.google.com/search?q=multi+precision+library&sour > ceid=opera&num=0&ie=utf-8&oe=utf-8
Я в свое время так и не нашел ничего подходящего. Может потому, что мне требовалось возможность работы с числами неограниченной размерности. Ну ограниченной размерами оперативной памяти.
> Про тестирование на малых числах - согласен. > > > Ассемблер совсем не нужен. "С" и так > Ассемблер нужен ОБЯЗАТЕЛЬНО. > > Как минимум если реализовать библиотеку работы с числами > произвольной длины на C, то невозможно без трудностей > добиться работы с 32-битным лимбом (так как флаг > переполнения в C недоступен).
Я без проблем реализовывал и без бита переноса, только это было раза в два-три медленнее. Просто обрабатывал 16 битные значения, преобразовав к 32 дополняя нулями. После сложения 32 битных младшая часть - результат, старшая - перенос. При сложении обычно 0 или 1, при умножении - что угодно.
> > медленнее, чем с обычными. Причем сложение/вычитание в > > столько раз медленнее, во сколько разрядность будет > Сложение/вычитание имееют линейную сложность: O(N). То есть > их скорость прямопропорциональна длине складываемых чисел.
А я разве не о том же самом.
> > порядка в n^2 раз медленнее. Использование ассемблера > даст > Есть алгоритмы умножения со сложностью > O(N1.5) и меньше. Бери тот же gmp и > не мучайся.
Ну не вдовался я в подробности. Хотя что-то в этом духе на самом деле и получается.
> > максимум несколько процентов выигрыша. > Использование ассемблера в моем случае дало примерно 1000% > выигрыша только на сложении/вычитании.
Как так можно??? В 10 раз быстрее??? Уууу!
> > Если уж нужна будет библиотечка - нет проблем, только > > свисните. > Зачем свистеть, если есть гугль? :-)
Ну да, кого-то (скорее всего большинство) устроит и то, что есть в сети.
|
|
|