GCCについて part8 ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
2: ◆3.JjF77I26 07/10/13 00:58:22 2get 3:デフォルトの名無しさん 07/10/13 01:09:51 BE:328057362-2BP(100) >>1乙 4:デフォルトの名無しさん 07/10/17 11:28:31 x86です。 double d = 0.3; int i; i = d * 1000; とすると i=299になります。 d = d * 1000; i = d; とするとi=300になります。 Macのgccで試したら300になるので生成したコードを調べると SSE2インストラクションを使ってました。試しに-msse2でコンパイルすると両方とも300に なりました。 gccは3.2.2, 3.3.5, 4.1.1と試しましたが全部同じです。 manに書かれている以下の文が関係しているのでしょうか? ... -msse2 ... The resulting code should be considerably faster in the major- ity of cases and avoid the numerical instability problems of 387 code, この問題をどこか詳しく説明している文書はありますでしょうか? 5:デフォルトの名無しさん 07/10/17 11:56:17 x86は浮動小数点数レジスタが80ビットあり、演算はこの大きさで行われる メモリに書き戻されるタイミングで64ビットに切り捨てられるのだが、 コンパイラの最適化の具合によって メモリに書き戻されるタイミングが変わり、計算結果が変わることがある
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5048日前に更新/147 KB
担当:undef