Libreria di tipi di dati a virgola mobile a 128 bit firmata, con 64 bit di precisione efficaci (contro 53 per il tipo Double incorporato) e un esponente a 64 bit (contro 11 per Doubles). Con maggiore precisione e una gamma molto più ampia, i Quad sono particolarmente utili quando si ha a che fare con valori molto grandi o molto piccoli, come quelli nei modelli probabilistici. L'adozione di una precisione fissa più grande piuttosto che di un tipo di precisione arbitrario (come BigDecimal di Java) significa che, sebbene ancora più lenta dell'aritmetica integrata, la penalità è solo un ordine di grandezza o meno e quindi ancora fattibile in molte applicazioni math-heavy. Ad esempio, su un laptop Intel Core i5-2410M, un miliardo di moltiplicazioni richiede 17 secondi con valori Double, 135 secondi con valori Quad che utilizzano l'operatore * sovraccarico e solo 76 secondi utilizzando il metodo Multiply() (il sovraccarico più elevato di * è dovuto alla scarsa logica di inlining del compilatore .Net/ottimizzatore JIT). In confronto, la soluzione alternativa comunemente utilizzata per il sottoflusso e l'overflow della moltiplicazione, sommando i logaritmi, richiede 130 secondi. Oltre ad essere più veloci e precisi dell'aritmetica dei log, Quad semplifica anche il codice eliminando la necessità di ricordare quali variabili sono log''d e convertendo avanti e indietro in valori log''d. La libreria Quadruple è scritta in C# (codice sorgente incluso) e si rivolge a .Net 4.0; dovrebbe anche essere facilmente portabile a .Net 2.0 e linguaggi simili (come Java) con semplici modifiche.
cronologia delle versioni
- Versione 1.0 pubblicato il 2011-06-15
Versione iniziale
Dettagli del programma
- Categoria: Sviluppo > Componenti & Librerie
- Editore: Jeff Pasternack
- Licenza: Gratuito
- Prezzo: N/A
- Versione: 1.0
- Piattaforma: windows