2009-06-28 13 views
15

Szukam C++ klasa/biblioteka, która zapewnia 1024 bitowe i większych liczb całkowitych i operacje bitowe, takie jak: - bitowego przesunięcia, - bitowe i/lub, - umieść pierwszy zerowy bitBigInt (bigbit) Biblioteka

prędkość jest kluczowa, więc musiałaby zostać wprowadzona za pomocą jakiegoś zestawu SIMD.

Odpowiedz

14

Istnieje kilka, w tym GMP, ale w przypadku prędkości najlepsze jest prawdopodobnie TTmath. Decyzja projektanta TTmath, aby używać szablonowanych ustalonych długości w czasie kompilacji, pozwala na dość szybkie działanie.

4

spróbuj gmp library. To biblioteka C. Począwszy od wersji GMP 4.0 opakowanie zawiera C++.

1

Wystarczy rozważyć dużą całkowitą mnożenia, Biblioteka TTmath wykorzystywać algorytm karacuby, który ma czas złożoność $ O (n^{1,585}) $. Najszybszym algorytmem jest $ O (n log n log log n) $, używając FFT.