タグ

浮動小数点に関するnyamappのブックマーク (3)

  • PHPの浮動小数点処理に無限ループのバグ | スラド オープンソース

    PHPにて、浮動小数点数の変換処理の際に無限ループに陥り、サーバーをクラッシュさせるバグが発見された(家/.、バグ発見者のブログ記事)。 影響するバージョンはPHP5.2および5.3。文字列"2.2250738585072011e-308"(304桁の10進数表記でも同様)からdoubleへの変換を、PHPの32ビットプロセス上で実行した場合にのみ再現されるとのことだ(ニュースリリース)。 このバグは3日に指摘され、4日にはPHP開発チームによりパッチがリリースされている。

  • float vs. double

    唐突ですが, 下記のコードを実行したとき速いのはどちらでしょう. また演算結果はどうなると予想されますか. double calcd(int n) { double ret = 0; for (int i = 1; i < n; i++) { ret += 1 / double(i); } return ret; } float calcf(int n) { float ret = 0; for (int i = 1; i < n; i++) { ret += 1 / float(i); } return ret; } int main() { printf("calcf=%.15f\n", calcf(100000000)); printf("calcd=%.15f\n", calcd(100000000)); } float型は遅い? いえ

  • Cプログラミング診断室/キャストが好き/float型対double型

    ■float型は遅い■ この人は、どうもdouble型を嫌っているように思えます。可能な限りfloat型で計算しようとし ているようです。やはり、double型より、float型の方が高速に違いないと思い込んでしまってい るようです。 結論から言うと、ほとんどのCでは、float型よりdouble型で計算した方が数倍高速になります。 例えば、今私がこの原稿を書いているコンピュータ(SPARCstation IPX)で、 r += 0.1 を計算させ ると、rがfloat型だと0.36μ秒ですが、double型だと0.11μ秒になります。 不思議に思われる方も多いと思います。もしあなたがアセンブラを理解できるのでしたら、簡単 な数行のプログラムを組んで、double型とfloat型のときのコンパイルされ方の違いを調べてみる と良いでしょう。 ここでは、アセンブラ・ソースを直接眺めながら説明す

  • 1