松田@東京電機大学です.
のざわさん,あけましておめでとうございます.
>のざわです。
>
>> 海老沢@グリーンベルトです。
>
>以下を試していなければ、試してみてください。
>
>> 大きなプログラムを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
Follow-Ups:
- [linux-users:78167] Re: optimization and accuracy with gccokumura
- [linux-users:78170] gcc-2.95.2 (Re: optimization and accuracy with gcc)Yasuhide OOMORI / 大森保英
- [linux-users:78160] Re: optimization and accuracy with gccSatoshi I.Nozawa
- Prev by Subject: [linux-users:78160] Re: optimization and accuracy with gcc
- Next by Subject: [linux-users:78162] Re: optimization and accuracy with gcc
- Previous by thread: [linux-users:78160] Re: optimization and accuracy with gcc
- Next by thread: [linux-users:78167] Re: optimization and accuracy with gcc
- Indexes:[Main][Thread]