boost::math::p df(distribution, value) 是否使用查找表或在每次调用时计算 exp(
Does boost::math::pdf(distribution, value) use a lookup table or calculate an exp() each time it is called?
我正在研究一种需要高斯函数和大量循环的算法。
Boost::math::p df 具有我需要实现的正确公式。
我正在使用 boost::math::normal_distribution normal_distribution(0,sigma) 创建一个正态分布,其中平均值始终为零,并且调用函数时西格玛可能会在不同时间变化。
然后,我想在我的循环中使用函数boost::math::p df(normal_distribution,dsitance_from_mean),以避免用我自己的查找表重新发明轮子。 我通读了提升文档以寻找这个答案,但我不太清楚该功能是如何工作的。
pdf 函数是使用正态分布生成的查找表,还是每次调用时计算指数值?
我的期望是 Boost 作者会优先考虑准确性而不是性能。
浏览我已安装的版本的源代码,我看到很多调用 trig/log/exp 函数,没有任何类似于查找表或插值的内容,所以我认为它每次都在调用 exp()。
我建议自己进行基准测试,看看 Boost 代码是否真的是一个在实现自己的查找表之前出现性能瓶颈。
相关文章:
- 当 A 在 for 循环中调用函数 B 时,如何计算函数 A 的空间复杂度?
- 计算对类函数的所有调用次数
- "noexcept-expression 由于对......的调用而计算为'假'"是什么意思?
- 计算一个单词在映射中出现的次数 - 使用 transform() - 调用不匹配
- 在 openGL 中,模型坐标应该在我的 CPU 上计算还是在 GPU 上使用 OpenGL 调用计算?
- 如果我放弃哈希计算,我必须调用 SHA1_Final() 吗?
- 应由于计算费用而避免对STD的多个调用::发现,否则这是可以接受的情况
- 输出 = 0 尝试计算标头中的函数并在主程序中调用它们时
- 从C++调用 Python 或 Lua 来计算表达式,仅在需要时计算未知变量
- C++复合函数调用和计算
- OpenGL 计算着色器在调用 glComputeDispatch 后过早中止
- C++:cout 和函数调用之间的计算顺序
- 如果对象是静态的,则C 确实会计算每个调用
- 避免计算图中的虚函数调用
- 避免在函数调用中计算数组元素
- 为什么此 stl 函数调用会导致不正确的布尔计算
- 如何计算递归功能的调用(增量1)|C
- 在计算后,在基类之后调用参数化构造函数
- OpenGL 计算着色器调用
- 在内核调用(计算1.1或1.2)期间,仅用于设备计算的CUDA内存(类型)