如何为LLVM随机数生成器动态设置种子?

时间:2018-08-16 12:27:55

标签: llvm llvm-c++-api

根据文档llvm random number generator,它说

  

应该通过传递-rng-seed =选项设置种子。

这是一个静态参数吗?

我可以使用C的srand(seed)吗?那是使用运行时值来初始化LLVM中的随机数生成器吗?

1 个答案:

答案 0 :(得分:0)

AFAIK,没有其他选择,如果要设置种子,则需要使用-rng-seed选项。种子值在this编译单元中是全局静态的,因此它将始终被命令行选项覆盖。

也许您可以使用/dev/urandom来模拟随机种子的生成,并使用上述命令行选项(例如,如果将pass调用包装在脚本中)尤其如此:

head -100 /dev/urandom | cksum | awk '{print $1}'

这将使您能够灵活地保留为调试目的而生成的相同伪随机序列,而无需重新编译。