別のプログラマの見直しながら、正規分布のCDFを計算する関数の実装を、私が作っ提案 Pythonの組み込み関数または使用scipyのダウンロード、共通の科学的なライブラリを実装全体を置き換えるのいずれかにします。
別のプログラマーは、彼らのドキュメンテーションにおいていかなる正確性の保証math.erfc()
もscipy.stats.norm.cdf()
提供もしないことを指摘しました。したがって、(尊重されたソースから取得され、エラー範囲が文書化されていた)近似アルゴリズムの置き換えについては、さらに注意する必要があります。
正直なところ、組み込み関数やライブラリー関数の正確さと正確さを疑うという考えは、私の心を超えたことはありませんでした。結局、私のような機能を呼び出してきたsin()
し、sqrt()
あまり考えず年間のを-なぜ必要がありますmath.erf()
またはscipy.stats.norm.cdf()
任意の異なること?
しかし、今、私は心配しています。私の質問は:
- 一般的に、ドキュメントで特別な言及がない場合、これらの種類の関数は、IEEE倍精度浮動小数点で提供される精度の範囲内で、小数点以下の最後まで完全に正確であることを意味しますか?
- Python
math.erf()
やSciPyscipy.stats.norm.cdf()
は特にそうですか?どうしてわかりますか? このmanページは
sin()
言う…これらの関数は、引数がpiの倍数に近いか、0.0から離れていると、精度が低下する可能性があります。
サイン関数が周期的で対称であるのに、なぜこのような警告が存在するのでしょうか?最適な精度を得るには、入力を正規化するための呼び出し側に負担がかかるようです。
一方、Mozillaのドキュメントで
Math.sin()
は、正確さや正確さについては何も述べられていません。それはそれが完全に正確であることを意味しますか、それともMath.sin()
他の場所のように、JavaScriptの特定の状況でのみ正確であることは「共通の知識」ですか?