足し算の答えが一意に決まるなんて昔話になるかも、というお話。 確認した範囲では、MATLAB 7.8 (2009a, 64bit) に足し算をさせる(たとえばサイズが500,000x1の行列の各要素を全部足す)と、その答えは一意に決まらない。全く同一のデータについて同じPC・環境で繰り返し計算させて、ほぼ毎回違う答えが返ってくる。 これについてMathWorks社(の少なくとも一社員)の見解が書かれているページを見つけた。 Comparing Single-threaded vs. Multithreaded Floating Point Calculations Loren on the Art of MATLAB December 4th, 2009 彼女の見解を要約すると、 浮動小数点数を用いた演算において、足し算は結合法則を満たさない( a+(b+c) ≠ (a+b)+c )。 演