こんにちは、鶴谷です。 Satoshi Kimura <[メールアドレス保護]> さん>
> (1) FreeBSD/i386 においては,FPU の精度は仮数部で 53bit に設定され, > 浮動小数点数の定数は long double であっても 53bit に丸められる. (中略) > このうち (1) の前半は正しいです.(それゆえ fpsetprec(FP_PE); > で仮数部の精度を 64bit に切り換えているのです.) > しかし,(1) の後半と (2) とは間違っていると考えます.私は今まで > long double の定数が 53bit に丸められてしまった経験はありません.[1] 私には、指数部よりも仮数部の精度のほうが重要な経験しかないので、 これだけで十分に困ってしまいます... > [1] そもそも,(1) の後半が真であるとすれば,FreeBSD + i386 の > 環境では double でなく long double を使う理由に乏しいのです. long doubleの値を入力するよりも、最初doubleの値の計算途中でのトラブルを 極力減らすため、演算前にlong doubleにすることが多いのですが... # 厳密には無意味なのかも知れませんが、一桁だけでも余分に確保したいと思っています。 そのため、定数の仮数部がdoubleと同じになるだけで、 使う意味がまったくなくなります。 何の情報もありませんが、ぜひとも何とかしてください。 よろしくお願いします。 -- 鶴谷 直樹 E-mail: [メールアドレス保護]