0

ガウス関数と多くのループを必要とするアルゴリズムに取り組んでいます。
Boost::math::pdf には、実装する必要がある正しい式があります。

私は boost::math::normal_distribution normal_distribution(0,sigma) を使用して正規分布を作成しています。ここで、平均は常にゼロになり、シグマは関数が呼び出されるさまざまな時点で変化する可能性があります。

次に、ループ内で関数 boost::math::pdf( normal_distribution , dsitance_from_mean ) を使用して、独自のルックアップ テーブルで車輪を再発明することを避けたいと考えています。この回答を探してブーストのドキュメントを読みましたが、関数がどのように機能するかについてはよくわかりません。

pdf 関数は、正規分布で生成されたルックアップ テーブルを使用しますか、それとも呼び出されるたびに指数値を計算しますか?

4

1 に答える 1

0

私の予想では、Boost の作成者はパフォーマンスよりも精度を優先するでしょう。

インストールしたバージョンのソース コードを参照すると、trig/log/exp 関数の呼び出しが多数あり、ルックアップ テーブルや補間に似たものは何もないため、毎回 exp() を呼び出していると思います。

独自のルックアップ テーブルを実装する前に、Boost コードが実際にパフォーマンスのボトルネックであるかどうかを確認するために、自分でベンチマークすることをお勧めします。

于 2012-04-26T17:54:31.487 に答える