gpt4 book ai didi

linux - Rcpp:输出中的平台差异

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:17 25 4
gpt4 key购买 nike

我有以下问题(并且无法真正进行最小测试)--我正在通过 Rcpp 将一个包从 C++ 移植到 R。测试(我正在测试输出矩阵是否正是我想要的如果直接调用c++会得到)在linux和osx下是绝对平等的,没有区别。

但是当通过 build_win() 或通过 win 8.1 虚拟机进行测试时,我得到了不同的结果(但两者之间的结果是一致的,所以我有 linux/osx vs win 结果)我已经用相应的 Rcpp 糖替换了一个 rand() 调用,所以这应该没问题(至少我希望如此)。由于通过“R -d valgrind”调用测试也不会产生任何错误,我对如何进行感到有点困惑。所有测试均使用 R 3.2.0(本地机器)和最新的不稳定版本(通过 build_win())完成所以我的问题是:

  • 编译时是否存在任何已知的 Rcpp 差异(例如,Windows 上的 Rtools 提供的编译器太旧,因此数值计算(使用 STL,没有其他库,如 boost/eigen 等)预计会略有不同?
  • 有调试问题的好方法吗?我基本上需要逐行跟踪 C++ 代码,我什至不知道该怎么做,除了繁重的 std::couts。

谢谢。

最佳答案

关于 32bit/64bit 问题的真相确实写在这里 different behaviour or sqrt when compiled with 64 or 32 bits

添加 -ffloat-store 选项确实解决了我的问题。万万没想到,以为问题出在源代码中。

关于linux - Rcpp:输出中的平台差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30917739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com