木村です.

> 「わか」さん [FreeBSD-users-jp 91683] Re: long double の bug ? について 
> 
> 要は計算結果の下位のビットが合わないのがオカシイ、ということだと思いますが、
> そういう議論の流れだと思って良いでしょうか?

  今の状況は,例えるなら道路に穴が空いているを見つけたという
ところです.単に正しい結果を得たいのであれば,FreeBSD 6.2 では
128bit を使えば良いだけ [1] ですが,今やりたいのは「ここ危険です」
と知らしめることと,できれば原因が知りたいということです.

[1] 話がややこしくなるので注釈にしますが,例えば ports/math/ldouble
  (long double 用の算術関数を提供する library) は 96bit を前提に
  作られており,一部の関数は 128bit では動作がおかしくなります.
  (128bit 対応用の patch は作りました.)

-------------------------------------------------------------------
> exflib
> http://www-an.acs.i.kyoto-u.ac.jp/~fujiwara/exflib/exflib-index.html
> 
> など、一考に値すると思われますが、どうでしょうか?

  本来の話題と区別したいので ----- を引かせていただきました.
このように FPU を使わずに long double よりも遥かに高い精度の
浮動小数点数やそれに対応する算術関数を実現しているものはいくつか
あります.ちなみに,私は Cephes Mathematical Library の qlib
を使っております.

http://www.moshier.net

  これらの弱点は,計算時間が激増することです.double よりも
あと少しだけ精度があれば良いような話では FPU を使って計算する
long double は重宝です.
(少なくとも i386 では.あとおそらく amd64 でもそうでしょう.
 例えば SPARK の long double は FPU は使っていないようです.)

                     Satoshi Kimura  
([メールアドレス保護])

メールによる返信