Pregunta

Estoy buscando una clase / biblioteca de c ++ que proporcione enteros de 1024 bits y más grandes y operaciones de bits como:  - poco cambiante,  - a nivel de bit OR / AND,  - posicionar el primer bit cero

la velocidad es crucial, por lo que debería implementarse con algún conjunto SIMD.

¿Fue útil?

Solución

Hay varios, incluyendo GMP , pero para la velocidad, lo mejor es probablemente TTmath . La decisión de diseño de TTmath de usar longitudes fijas con plantilla en tiempo de compilación permite que sea bastante rápido.

Otros consejos

pruebe biblioteca gmp . Es una biblioteca de C. A partir de GMP 4.0, se incluye un contenedor C ++ con la versión.

Solo considere la multiplicación de enteros grandes, la biblioteca TTmath utiliza el algoritmo Karatsuba, que tiene una complejidad de tiempo $ O (n ^ {1.585}) $. El algoritmo más rápido es $ O (n log n log log n) $, usando FFT.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top