こんにちは、鶴谷です。

Satoshi Kimura 
<[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]> さん>

> (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: 
[&#x30E1;&#x30FC;&#x30EB;&#x30A2;&#x30C9;&#x30EC;&#x30B9;&#x4FDD;&#x8B77;]

メールによる返信