今日の小ネタ:自乗は早い


 もしかして常識的なことなのかもしれないけど、matlab で計算すると累乗の中で 2 乗はとても速い。



matlab で実数行列の(要素ごとの) p 乗をそれぞれ 10 回計算し、かかった時間をプロットしたもの。)


 どうも特定の(よく使われる?)数値に特化した最適化がされているように見える。とくに 2 乗は他の累乗に比べて 40 倍ぐらい速い。なぜか 0 乗や 1 乗よりも速い(p<0.01, Wilcoxon rank-sum test)。平方根も速いけど 2 乗と比べるとまだ 10 倍ぐらい遅い。そして残念ながら 4 乗は 2 乗の結果から期待されるほど速くない。


 だからどうということはないのだけど、ちょっとコードの最適化をしていて気づいたこと。