2009-11-29 15 views
6

Sto cercando una libreria per i grandi numeri interi ma con larghezza fissa (128 o 256 sarebbe sufficiente). Il motivo è che non voglio alcuna allocazione sull'heap. Ho provato a crearli da solo, ma implementare la moltiplicazione, la divisione e il modulo in modo efficiente sembra essere piuttosto un problema.interi grandi con lunghezza fissa

Esiste già da qualche parte?

Grazie

risposta

4

Date un'occhiata alla biblioteca GMP: www.gmplib.org

Citando le categorie di funzioni:

basso livello positivo intero, hard-to uso, funzioni di overhead molto basse si trovano nella categoria mpn . Nessuna gestione della memoria è eseguita; il chiamante deve garantire lo spazio sufficiente per i risultati . (...)

Questo sembra essere quello che ti serve.

+0

bello! Sto dando un'occhiata a questo – Ben

3

Questo almeno sembra promettente (hit numero 8 per int128 library su Google).

http://www.mx-3.cz/tringi/www/langen.php?id=int128

"A differenza di altre classi di numero di grandi dimensioni, è possibile lavorare con questi proprio come con altri tipi di POD (ad esempio di salvataggio e caricamento di file utilizzando fwrite/fread). Rappresentazione interna di questi è corretto a 128 bit intero little-endian. "

2

Se trovi che GMP è troppo complicato per i tuoi gusti, Dave Hanson ha alcune funzioni molto interessanti nel suo libro C Interfaces and Implementations. C'è un'interfaccia di basso livello che non ha allocazione (si controlla tutto), e poi ci sono due interfacce di livello superiore che gestiscono progressivamente più allocazione sull'heap.

+0

L'ho fatto funzionare con gmp, ma darò un'occhiata a questo – Ben

Problemi correlati