Alguém conheçe algum, qualquer um, projeto FOSS que use strictfp - e precise?
Estou precisando de exemplos reais do uso disso e quem sabe alguem já precisou usar isso.
Alguém conheçe algum, qualquer um, projeto FOSS que use strictfp - e precise?
Estou precisando de exemplos reais do uso disso e quem sabe alguem já precisou usar isso.
Todas as vezes que eu vi essa keyword sendo usada, o codigo tava errado - e era sempre algum programador querendo complicar onde nao devia…
essa foi uma das coisas que aprendi, testei pra certificação … mas nunca precisei no dia-a-dia. O tratamento de ponto flutuante nunca precisou ser forçado a usar um padrão da ieee.
Também queria saber se alguém já precisou disso … uma curiosidade apenas … , pq utilidade não vejo.
Serve um exemplo à grosso modo?
Se esse exemplo mostrar valores diferentes entre modo strictfp e não strictfp eu já agradeceria muito.
Este exemplo, apresentado em http://java.sun.com/developer/JDCTechTips/2001/tt0410.html#using , imprime o mesmo resultado usando ou não strictfp (testado com JDK 1.3 até 6.0 da Sun, mas em ambiente Windows).
Portanto, deve ser só uma sugestão ao JIT, que pode ou não levar isso em conta. (Parece que ele trabalha como se tudo fosse “strictfp”.)
Quem tem acesso a uma máquina Solaris Sparc pode tentar repetir o teste.
public strictfp class FpDemo3 {
public static void main(String[] args) {
double d = 8e+307;
System.out.println(4.0 * d * 0.5); // Infinity
System.out.println(2.0 * d); // 1.6E308
}
}
Meu problema mesmo é simular quando um gera resultados diferente do outro.
E é por isso que queria que alguém repetisse o mesmo teste em uma máquina Solaris Sparc. Talvez lá o resultado fosse diferente.
O que eu queria era uma mesma função, hora strictfp e hora não, que produzisse valores diferentes executados pela mesma JVM.
Será que alguém teria um exemplo do tipo “eu tenho uma conta que se for feita integralmente dentro da FPU, com 80 bits - no caso Intel - dá um resultado, e se for feita com a precisão Java de 64 bits, mesmo para os resultados intermediários - dá outro resultado?”
Tal exemplo poderia ser em C mesmo. Aí seria necessário converter isso para Java, e assegurar que a rotina seja compilada pelo compilador JIT (se for simplesmente interpretada, os resultados intermediários serão sempre em 64 bits e então tudo se comporta como sendo strictfp.)
O jfreereport faz operações de ponto flutuante para processamento de imagens e fins de layout.