我正在研究一种需要高斯函数和大量循环的算法 Boost :: math :: pdf具有我需要实现的正确公式。
我正在使用boost :: math :: normal_distribution normal_distribution(0,sigma)创建一个正态分布,其中均值将始终为零,并且当调用函数时,sigma可以在不同的时间变化。
然后我想在我的循环中使用函数boost :: math :: pdf(normal_distribution,dsitance_from_mean)来避免使用我自己的查找表重新发明轮子。我通过boost文档阅读了这个答案,但我不清楚该函数是如何工作的。
pdf函数是使用使用正态分布生成的查找表,还是每次调用时计算指数值?
答案 0 :(得分:0)
我的期望是,Boost作者会优先考虑准确性而非性能。
浏览我安装的版本的源代码,我看到了很多 调用trig / log / exp函数,没有类似于查找表或插值的东西, 所以我认为它每次都在调用exp()。
我建议您自己进行基准测试,看看Boost代码是否真的是一个 性能瓶颈,在实现自己的查找表之前。