Olá
thingol:
C e C++ são um lixo para executarem cálculos numéricos se você quer algo correto e rápido, e se quiser boas bibliotecas prontas. É melhor usar Fortran e as bibliotecas que já existem prontas.
Se você vai usar o ambiente Solaris ou Linux, existe o Sun Studio (gratuito) que tem um excelente compilador Fortran. Em ambiente Windows já não conheço bons compiladores Fortran gratuitos, mas devem existir. Alguém já lidou com o f77 da suíte gcc?
Ainda não usei o f77. Há algumas poucas opções de Fortran gratuito para Windows. Só me lembro do OpenWatcom, Gfortran e g77. Só usei o OpenWatcom, que não é o Fortran que estou usando no meu atual projeto de cálculo de estruturas suportadas por cabos.
Para quem já programou muito em Fortran, é duro ler elogios ao suporte IEEE. Há muito tempo atrás, fiz e vendi toda uma biblioteca de funções científicas escritas em assembler para permitir o uso do coprocessador aritmético 8087/80287/80387 pelo Clipper. Fiz em asembler justamente pela dificuldade de fazer em C. Se pudesse ter usado o Fortran teria sido bem fácil porque havia suporte nativo ao coprocessador.
É claro que C/C++ não chegam a ser um lixo e eu entendi claramente que o thingol usou a expressão apenas para reforçar o argumento de que há coisas mais específicas. Sei que há muitos sistemas enormes feitos em C. Só que a escolha da linguagem não foi pelos cálculos científicos e sim pelas demais facilidades da linguagem.
Recomendo fortemente a quem quiser fazer cálculos numericos com Java que dê uma breve googlada sobre o que quer fazer. Além de haver boas possibilidades de já encontrar pronto, vai acabar caindo no site da nist e consequentemente no http://math.nist.gov/javanumerics/.
Mas se precisar de posições na memória de 80 bits, aí o Java não serve.
80 bits = 10 bytes => 19 dígitos significativos => 10**-4932 à 10**4932
[]s
Luca