floating point

[1/1]

  1. 「浮動小数点演算は壊れているのか?」に関する日本語解説
    プログラミングにおける「math」、「浮動小数点」、「言語非依存」の観点から浮動小数点演算は、コンピュータが実数を近似して表現するための手法です。しかし、有限のビット数で無限の実数を表現することは不可能なため、誤差が生じることがあります。この誤差は、以下のような要因によって引き起こされます。
  2. .NETにおけるdecimal、float、doubleの代替方法
    .NETでは、浮動小数点数を表現するために、次の3つのデータ型が使用されます:decimal: 128ビットの浮動小数点型。最も正確で、主に金融計算や通貨処理に適しています。float: 32ビットの浮動小数点型。高速ですが、精度が低く、大きな値や小さな値を表現する際に注意が必要です。
  3. C言語におけるprintfでのdouble型出力のフォーマット指定子
    C言語のprintf関数でdouble型(浮動小数点型)の値を出力する際に使用するフォーマット指定子は、通常、%lfまたは%fです。%lf: 64ビットのdouble型を指定します。ほとんどのシステムでは、double型は64ビットなので、%lfが推奨されます。
  4. 近似式とCORDICアルゴリズムで比較!補完誤差関数の高速化
    補完誤差関数 (erfcx) は、統計や確率論でよく用いられる特殊関数です。以下の式で定義されます。ここで、erf(x) は誤差関数です。従来の補完誤差関数の計算方法は、数学的に厳密ですが、計算速度が遅いという欠点があります。そこで、精度を維持しながら計算速度を向上させるために、様々な高速化アルゴリズムが提案されています。
  5. 浮動小数点数の乗算における最適化:GCCはなぜa*a*a*a*a*aを(a*a*a)*(a*a*a)に最適化しないのか?
    GCCコンパイラは、多くの場合、コードを高速化するために様々な最適化を実行します。しかし、a*a*a*a*a*a のような浮動小数点数の乗算式に対しては、(a*a*a)*(a*a*a) のように最適化しないことがあります。その理由は、浮動小数点数の演算における精度誤差の可能性です。