<200101022006.PAA27129 _at_ subaru.gsfc.nasa.gov>の記事において ebisawa _at_ subaru.gsfc.nasa.govさんは書きました。 >海老沢@グリーンベルトです。 > ># 以前に関連した話題で投稿したことがあるのですが。。 > >大きなプログラムをSolarisからLinuxに移植していて、 >計算精度に由来するエラーが起きていることがわかりました。 >問題になっている部分を取り出して、簡略したプログラムを >最後につけます。やっていることは単純で、3次元単位ベクトル >を極座標(alpha, delta)で与え、その長さを計算するということです。 >当然長さは1でなくてはいけません。最適化パラメーターを変えてこの >プログラムをコンパイル、実行すると、結果が変わってきます。 > >このように最適化によって計算精度が変わってくるのは、 >そういうもんなんでしょうかねえ。問題となっているのは、 >このベクトルの長さをacosにいれていて、引数が1.0より >大きいときに落ちる、ということです。上の例では最適化を >はずすしたら正しく動作していますが(ベクトルの長さが1)、 >そうならない場合もあります。最適化をはずすだけでは >問題は解決しない、と。 根本的な解決ではありませんが,Plamo2.1 の gcc 2.95.2 では, acos に入れても落ちないようです.また,ご存知とは思いますが, long double の実数を表示するならば %Lf が適当かと.もっとも acos が double なので意味ありませんが. ------------------------------------------------------------------- mmm mmm | matuda _at_ film.s.dendai.ac.jp ((^_^)) <- -> | 松田七美男@東京電機大学 物質工学科 教授 { } ({ }) | 〒101 千代田区神田錦町2-2 _I I_ _I_ | Tel:03(5280)3402 Fax:03(5280)3570
References:
- Prev by Subject: [linux-users:78158] Re: optimization and accuracy with gcc
- Next by Subject: [linux-users:78160] Re: optimization and accuracy with gcc
- Previous by thread: [linux-users:78157] Re: optimization and accuracy with gcc
- Next by thread: [linux-users:78160] Re: optimization and accuracy with gcc
- Indexes:[Main][Thread]