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

   E-mail    Обновление - Авг 3, 2024

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

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

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

Тест:
Загрузить:
История:
 
 
Прежние
версии:
Версия 2.2 beta public от Авг 3, 2024new (десятикратное ускорение деления и возведения в степень по модулю)
Обновление версии 2.1c public от Окт 29, 2023 (совместимость с C++ 11 и clang)
Версия 2.1c public от Ноя 17, 2017, документация обновлена Окт 23, 2022 (поддержка 128/64-разрядного аппаратного деления)
Версия 2.1b beta public от Сент 10, 2017, документация обновлена Ноя 10, 2017 (оптимизированное деление на 64/128-разрядный делитель)
Версия 2.1a beta public от Июня 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++)
32-битные бета версии:  1.2a beta public от Сент 22, 2007  1.2 beta public от Июня 15, 2007  1.1a beta public от Ноя 26, 2005
Ассемблерный пакет для Visual/Borland C++ и g++ с ускоренным умножением и делением доступен по запросу.
Дотации: Платить за класс cBigNumber не надо. А если Вы решили поддержать его разработку - то свяжитесь со мной. Перевод принимается, как добровольное пожертвование, полученные средства направляются на развитие и тестирование класса. Пожертвование может быть обусловлено реализацией дополнительных функций по договоренности.
Форум: Консультации
Контакты:
  • Для подписки на рассылку 
  • нажмите здесь и отправьте сообщение.
  • Для отказа от рассылки 
  • нажмите здесь и отправьте сообщение.
  • Чтобы написать автору 
  • нажмите здесь.
    Хотя это и не является обязательным условием, Вам рекомендуется подписаться на рассылку. В рассылку включаются объявления о новых версиях данного программного обеспечения и предупреждения об ошибках. Автор подтверждает, что Ваш адрес электронной почты не будет использоваться для любых других целей и не будет предоставлен третьим лицам.

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

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