今回、倍精度浮動小数点演算時に発生する丸め誤差についてご報告します。みなさんには当たり前のこととおもいますが、HPC界は新参者の私には新たな発見の連続でした。 ある件で、線形代数演算ライブラリBLAS,LAPACKのことを調べているときに、理化学研究所計算科学研究センタ中田さんが公開されている資料「線形代数演算ライブラリBLAS とLAPACKの基礎と実践 (I) BLAS, LAPACK入門編 」を拝見していました。 この資料の中で、計算機の計算結果が、数学上の計算式と違うことがあるよ、こんなソースだよ、と教えてもらいました。 ある数aにある数bを足して、ある数bを減らす計算。数式で表現すると(a+b)-b。数学として考えれば、答えはa、ですよね。ところが、このプログラムで計算させると、結果はaにならないそうなのです。 そんな馬鹿な!?教えていただいたソースコードを社内にあるIntel
![計算機もウソをつく ~丸め誤差について~ | HPCシステムズ Tech Blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/6f2032001a1f05e63d012da0f01d28934d1cce47/height=288;version=1;width=512/https%3A%2F%2Fwww.hpc.co.jp%2Ftech-blog%2Fwp-content%2Fuploads%2Fsites%2F11%2F2019%2F06%2Fdefault-image-logo.png)