Библиотека Bigint (bigbit)

Я ищу класс / библиотеку С ++, которая предоставляет целые числа размером 1024 и больше и битовые операции, такие как: - битовый сдвиг, - побитовое ИЛИ / И, - позиция первого нулевого бита

скорость имеет решающее значение, поэтому ее придется реализовать с помощью некоторой сборки SIMD.


person Łukasz Lew    schedule 28.06.2009    source источник


Ответы (3)


Их несколько, в том числе GMP, но по скорости лучше всего TTmath. Решение TTmath об использовании шаблонов фиксированной длины во время компиляции позволяет сделать это довольно быстро.

person SPWorley    schedule 28.06.2009

попробуйте библиотеку gmp. Это библиотека C. Начиная с GMP 4.0, в комплект поставки входит оболочка C ++.

person dfa    schedule 28.06.2009

Просто рассмотрите большое целочисленное умножение, библиотека TTmath использует алгоритм Карацубы, который имеет временную сложность $ O (n ^ {1.585}) $. Самый быстрый алгоритм - $ O (n log n log log n) $ с использованием БПФ.

person Kevin    schedule 21.01.2016