繁体   English   中英

C ++:TR1 vs GSL vs Boost的统计分布?

[英]C++: TR1 vs GSL vs Boost for statistical distributions?

在我以前的帖子中,我问如何按照正态分布生成数字。

由于我还可以生成其他发行版,并且看到3个库可以提供它们( GSL ,TechnicalReport1(doc link?), Boost ),所以我想知道应该选择哪一个。

附带说明:我的应用程序的参考平台是GNU / Linux系统,而性能则是问题。

Take Boost非常流行,并且为C ++设计良好。

GSL是一个非常好的库,提供了远远落后于发行版的工具,但是GPL(不是LGPL)覆盖了它,这意味着如果您要开发非GPL应用程序并进行分发,则不能。

以下是有关使用C ++ TR1生成随机数的一些说明。

梅森捻线器给出均匀分布的数字。 有两种常见的方法可以从中生成正态分布的数字:

  1. Box-Muller变换

  2. Ziggurat方法

以我的经验,Ziggurat在Java中的速度是以前的2倍,因为它调用缓慢的log / exp函数的频率要比Box-Muller少得多。 我不知道它在C ++中的表现。

Boost很不错,因为它是跨平台的。 但是,老实说,如果您只需要数字不加密,那么使用任何这些库中的mersenne捻线器都会非常快。 如果这是瓶颈,只需进行一些测试以找出最快的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM