0

在 Windows 上与 rstan 一起使用时,我的以下 Stan 代码运行良好。然而,当在 Linux (CentOS 6) 的集群上运行时,它会抛出一个很长的错误,其中包括大约 500 行,我猜是 Rcpp 代码,最后一个块如下:

compileCode(f, code, language = language, verbose = verbose) 中的错误:编译错误,未创建函数/方法!在 /scratch/user/siamak/R_libs/StanHeaders/include/stan/math/rev/mat.hpp(15) 包含的文件中,来自 /scratch/user/siamak/R_libs/StanHeaders/include/stan/math.hpp( 4),来自/scratch/user/siamak/R_libs/StanHeaders/include/src/stan/model/model_header.hpp(4),来自file6ff02c925624.cpp(8):/general/software/x86_64/tamusc/R_tamu/R_LIBS /3.3.2-iomkl-2017A-Python-2.7.12-default-mt/RcppEigen/include/Eigen/src/Cholesky/LLT.h(57):错误:类“Eigen::Ref>”没有成员“ Options" Options = MatrixType::Options, ^ 在类 "Eigen::LLT<_MatrixType, _UpLo> 的实例化期间检测到

有什么意见吗?

data{
int<lower=0> n;          //number of points
int<lower=1> d;          //dimension
int<lower=1> G;          //number of groups
int<lower=0> M;
int<lower=1> Jg[M];
int<lower=1> Start[G];
int<lower=1> End[G];
int<lower=1,upper=G> Ig[n];
matrix[d,n] X;
cov_matrix[d] Lambda;
real<lower=d-1> nu;
cov_matrix[d] B;
vector[d] m;
}

parameters{
vector[d] mu;            //mean
cov_matrix[d] Sigma;   //covariance
}


model{
//prior
Sigma ~ inv_wishart(nu,Lambda);
mu ~ multi_normal(m,B);
//likelihood
for (i in 1:n){
    X[Jg[Start[Ig[i]]:End[Ig[i]]],i] ~ 
 multi_normal(mu[Jg[Start[Ig[i]]:End[Ig[i]]]],
    Sigma[Jg[Start[Ig[i]]:End[Ig[i]]],Jg[Start[Ig[i]]:End[Ig[i]]]]);
    }
 }
4

1 回答 1

0

问题是 gcc6 编译器。我从源头重新安装了 rstan 和 Rcpp 包,问题解决了!

于 2017-07-13T05:39:34.703 回答