[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:78161] Re: optimization and accuracy with gcc


松田@東京電機大学です.

のざわさん,あけましておめでとうございます.

>のざわです。
>
>> 海老沢@グリーンベルトです。
>
>以下を試していなければ、試してみてください。
>
>> 大きなプログラムをSolarisからLinuxに移植していて、
>> 計算精度に由来するエラーが起きていることがわかりました。
>
>最適化で計算結果が違うことはよく体験します。
>
>> 小数約16桁より下のほうで1.0からずれていて、これはおそらく
>> doubleで保障している精度以下なので、1.0と同一視してくれれば
>> いいのですが。そういうgccのオプションを探したのですが、ちょっと
>> 見つかりませんでした。
>
>これでうまく行くとは限りませんが、
>
>/usr/include/fpu_control.h か
>/usr/i386-glibc20-linux/include/fpu_control.h の(どちらなんだ)
>
>#define _FPU_DEFAULT  0x137f
>#define _FPU_IEEE     0x137f
>
>を(最近は 1372 ではないのですね)0x1272 にして、カーネルを再構築(だっ
>たかな?)で、再計算をしたら、どうでしょうか。
>
>Intel の x86 系のチップを用いた場合の Linux では、浮動小数点の計算ではよ
>り精度を上げようとさせているため、他の OS での計算結果と一致しないことは、
>昔から議論されていました。fj.os.linux や ML でも議論があったと思いますが、
>すぐに探せませんでした。
>
>ちなみに、上記のカーネルの再構築はしていませんが、UltraPenguin の
>SPARC/Linux では、「Your should not see this !」は発生しませんでした。
>Linux/x68k (RedHat-5.2 base) では、起りましたが。

Plamo2.1 の状況をお知らせします./usr/include/fpu_control.h には


  /* The fdlibm code requires strict IEEE double precision arithmetic,
     and no interrupts for exceptions, rounding to nearest.  */

  #define _FPU_DEFAULT  0x037f

  /* IEEE:  same as above.  */
  #define _FPU_IEEE     0x037f


とありました.exetended precision は off のようですね.あくまで,
2.95.2 という使ってはいけないバージョンの話ですが.

# 今年も Linux の普及につとめませう.

------------------------------------------------------------------- 
     mmm     mmm     | matuda _at_ film.s.dendai.ac.jp 
  ((^_^)) <- ->    | 松田七美男@東京電機大学  物質工学科  教授 
    {   } ({   })  | 〒101 千代田区神田錦町2-2
    _I I_    _I_     | Tel:03(5280)3402  Fax:03(5280)3570

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: