Quadruple 128 bit Floating Point Library 1.0

Licença: Livre ‎Tamanho do arquivo: 83.97 KB
‎Classificação dos usuários: 2.3/5 - ‎9 ‎Votos

Biblioteca de dados de ponto flutuante assinado de 128 bits, com 64 bits eficazes de precisão (vs. 53 para o tipo Duplo embutido) e um expoente de 64 bits (vs. 11 para Duplas). Com maior precisão e alcance muito maior, quads são especialmente úteis quando lidam com valores muito grandes ou muito pequenos, como os de modelos probabilísticos. Adotar uma precisão fixa maior em vez de um tipo de precisão arbitrária (como o BigDecimal de Java) significa que, embora ainda mais lenta do que a aritmética incorporada, a penalidade é apenas uma ordem de magnitude ou menos e, portanto, ainda viável em muitas aplicações matemáticas pesadas. Por exemplo, em um laptop Intel Core i5-2410M, um bilhão de multiplicações leva 17 segundos com valores duplos, 135 segundos com valores Quad usando o operador *sobrecarregado e apenas 76 segundos usando o método Multiply() (a sobrecarga mais alta de * é devido à lógica de inlining ruim do compilador .Net/otimizador JIT). Em comparação, a solução alternativa comumente usada para multiplicação e transbordamento, somando logaritmos, leva 130 segundos. Além de ser mais rápido e mais preciso do que log aritmético, Quads também simplifica o código eliminando a necessidade de lembrar quais variáveis são log'd e convertendo para frente e para trás em valores log'd. A biblioteca Quadruple está escrita em C# (código-fonte incluído) e tem como alvos .Net 4.0; também deve ser facilmente portátil para .Net 2.0 e idiomas similares (como Java) com modificações simples.

história da versão

  • Versão 1.0 postado em 2011-06-15
    Liberação inicial

Detalhes do programa