La libreria Gmp: come trattare numeri di dimensioni astronomiche

I programmatori che studiano anche la Matematica, nelle loro ricerche, si spingono sempre più a fondo nei meandri dei misteri di formule e teoremi. E' inevitabile che, ad un certo punto, nasca la necessità di operare con numeri e cifre dalle dimensioni molto grandi, spesso estreme. Esistono in rete dei calcolatori a precisione illimitata, di cui abbiamo anche parlato in alcuni precedenti articoli (vedi, ad esempio, il Pari/GP), ma la  possibilità di costruire di sana pianta un software personalizzato, eseguibile e liberamente distribuibile, per di più in linguaggio C, offre senz'altro una soluzione ben diversa. Vediamo, dunque, come si utilizza la libreria matematica GMP e come si interfaccia perfettamente con il linguaggio C.

1. Introduzione

Di calcolatrici a precisione illimitata e tools matematici se ne trovano a bizzeffe su Internet. Free e a pagamento, danno indubbiamente un valido contributo ai matematici, nelle loro ricerche. Ma esiste anche una categoria più esigente di ricercatori matematici, che desiderano programmare i propri algoritmi con un linguaggio di programmazione. Se da un lato il linguaggio C standard offre un supporto valido di affidabilità e di velocità di esecuzione, dall'altro la propria potenza di calcolo numerico si ferma ai 64 o 128 bit. Questo vuol dire che il calcolatore può trattare numeri di grandezza, diciamo, inferiore a qualche miliardo, nulla più. Molte applicazioni e ricerche matematiche, specialmente nella Teoria dei Numeri, si basano su numeri enormi, composti da migliaia o, addirittura, da milioni o miliardi di cifre. Un normale calcolatore a 64 bit non può trattare assolutamente tale entità di dati in modo nativo. La libreria che ci accingiamo a studiare supera questo ostacolo e permette di implementare una numerazione a precisione illimitata nel proprio PC, programmando "quasi" normalmente in linguaggio C. I matematici non avranno più il limite imposto dall'architettura dell'hardware e possono liberamente realizzare programmi ad hoc, secondo le più diversificate esigenze.

2. La libreria GMP

Si tratta di una libreria molto potente per gestire operazioni aritmetiche a precisione arbitraria, ossia illimitata. La lunghezza delle cifre presenti nei numeri è limitata solamente dalla quantità di memoria presente sul PC che ospita il programma. Tale libreria ha lo scopo di, oltre che a trattare numeri enormi, essere il più veloce possibile. Per questo essa è, senza dubbio, una delle più performanti e potenti del settore. Tale risultato è raggiunto grazie a particolari ed efficienti algoritmi matematici, a volte un po' astrusi e complicati ma sicuramente molto veloci. E' distribuita gratuitamente sotto le licenze GPL e LGPL e, al momento della scrittura dell'articolo è presente la fresca versione 6.1.0. E' disponibile per Linux ma con qualche accorgimento particolare si può effettuare il "porting" su Windows. L'indirizzo da raggiungere, per il suo download, è https://gmplib.org/. Essa non è distribuita già pronta e utilizzabile ma deve essere compilata sul proprio PC. In questo modo il processo di creazione tiene conto delle caratteristiche dell'hardware in modo da sfruttare in pieno, e al meglio, tutte le informazioni del computer ospitante, ai fini del raggiungimento della massima velocità operativa possibile. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2970 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici PREMIUM e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA con PAYPAL è semplice e sicuro.

Abbonati alle riviste di elettronica

Una risposta

  1. Maurizio Di Paolo Emilio Maurizio 15 marzo 2016

Scrivi un commento