小编sm1*_*116的帖子

如果添加了print语句,则相同的Rcpp函数返回不同的输出

我用Rcpp编写的C++函数给出了不同的输出,具体取决于我是否在代码中有一个Rcout或者Rprintf语句.1对于带有print语句的函数,下面的代码返回,这是正确的值H_sigma_1().但是,对于H_sigma_2()没有print语句的函数,函数返回2.我在Ubuntu 16.04.1以及CentOS 6.8上测试了这个.虽然,我无法在Windows 10上重现此错误.因此,这似乎是一个Linux问题.

Rcpp代码

library(Rcpp)

cppFunction ( 
  "double H_sigma_1(IntegerVector sigma, NumericMatrix J, NumericVector h)
  {
    double first_sum, second_sum = 0;
    int n = sigma.size();

    for(int i = 0; i < n; i++)
    {
      for(int j = 0; j < n; j++)
      {
        // skip inside loop if i >= j to stop double counting
        if(i >= j) {continue;}
        first_sum += J(i, j) * sigma[i] * sigma[j];
        Rcout << first_sum …
Run Code Online (Sandbox Code Playgroud)

c++ r rcpp

3
推荐指数
1
解决办法
198
查看次数

标签 统计

c++ ×1

r ×1

rcpp ×1