イグトランスさん、コピペ後の修正箇所が間違っていますよ。
DoubleLoop() ではカウンタが Double 型になって、演算オペランド r は Single 型のままです。そりゃあ Single が勝ちますよ。
というか Sin() の勝負では Double 型が勝っちゃってますから、本来は Double 型の方が
圧倒的に速い証拠ですね。
もう一つ。Sin() は引数が暗黙的に Double 型なので、公正を期する意味で次のように変えた方が良いと思います。
もしくは
コード: 全て選択
r += Sin(0.1 As Single) ' 適切な型にキャスト
# ごめんなさい、いま Linux から投稿しているのでこのサンプルをすぐには試せません。
それから、先程の「どこだったかな…」探していたら見つけました。
ftp://download.intel.co.jp/jp/developer ... inal_i.pdf
↑ これの浮動小数点に関するページ (2-54) です。
コンパイラの最適化を大前提としている点が、ちとイタイ。