In English   ИМаш   Причал - портал общения и творчества   Автор  

   E-mail Обновление - Июля 27, 2017

Целые числа с неограниченной разрядной сеткой

Класс  cBigNumber  реализует целые числа неограниченной разрядности для С++. Нажмите для увеличения
Предусмотрены все штатные операции языка C++, включая арифметические, логические и побитовые операции, операции сравнения, сдвиги, а также потоковый ввод-вывод со всеми целочисленными модификаторами. Дополнительные функции - возведение в степень, возведение в степень по модулю, квадратный корень и проверка на простоту по методу Миллера. Класс оптимизирован для работы с числами до 100,000 и более двоичных разрядов. Испытания проводились для чисел, содержащих до 12,000,000 двоичных разрядов.

Класс имеет реентерабельный код для поддержки разработки многопоточных приложений.
Тесты проводятся в Microsoft Visual C++ 6.0, 2002-2015, Borland C++ 3.1 (16 bit), 4.5, Builder 1.0, GNU g++ 2.9.6, 3.3.3 (ARM), 4.1.2 (64 bit), 4.2.3.
Производительность классаnew
Руководство программиста и список изменений (англ, русский вариант находится в дистрибутиве)new

Тест:
 
 
Загрузить:
Версия 2.1b beta internal от Июля 27, 2017new (оптимизированное деление на 64/128-разрядный делитель)
Версия 2.1a beta internal от Июня 27, 2017 (оптимизированное деление на 32/64-разрядный делитель, обновлено)
Версия 2.1 beta public от Дек 28, 2016 (быстрое встроенное умножение и операции с 64-разрядным делителем/модулем)
Версия 2.0а public от Июля 29, 2016 (asm код c инструкцией MULX)
Предыдущая версия: Версия 2.0 public от Ноя 20, 2010, Янв 16, 2015 (64-разрядный C/asm код для Visual C++/g++)
Предыдущие 32-битные версии:  1.2c public от Марта 30, 2011 (реентерабельная)  1.2b public от Ноя 19, 2009, обновлена Ноя 20, 2010 (g++)
Предыдущие бета версии:  1.2a beta public от Сент 22, 2007  1.2 beta public от Июня 15, 2007  1.1a beta public от Ноя 26, 2005
Ассемблерный пакет для Visual/Borland C++ и g++ с ускоренным умножением и делением доступен по запросу.
Дотации: Платить за класс cBigNumber не надо. А если Вы решили поддержать его разработку - то переведите любую сумму на кошелек WebMoney: R717244026810, Z995907015597, E482829916444, U253542011720, B148113950490. В назначении платежа укажите "cBigNumber". Перевод принимается, как добровольное пожертвование, полученные средства направляются на развитие и тестирование класса. Пожертвование может быть обусловлено реализацией дополнительных функций по договоренности.
Форум: Консультации
Контакты:
  • Для подписки на рассылку 
  • нажмите здесь и отправьте сообщение.
  • Для отказа от рассылки 
  • нажмите здесь и отправьте сообщение.
  • Чтобы написать автору 
  • нажмите здесь.
    Хотя это и не является обязательным условием, Вам рекомендуется подписаться на рассылку. В рассылку включаются объявления о новых версиях данного программного обеспечения и предупреждения об ошибках. Автор подтверждает, что Ваш адрес электронной почты не будет использоваться для любых других целей и не будет предоставлен третьим лицам.

    Публикации:
    Статья для журнала "Программирование" 1/2010   Перевод на английский, ShpringerLink  
    Статья для журнала "Программные продукты и системы" 1/2009   Файл DOC  
    Статья для SIBERCYPT'05   Файл DOC   Реферат (англ)   Файл DOC (англ)  

    Ссылки:  Динамические массивы с автоматической проверкой индекса
    Большие натуральные числа   The Prime Page   Miller strong probable prime test