Compilation error stan/math/prim/mat/fun/Eigen.hpp: No such file or directory

Hi,

I am trying to set up rstan and attempting to run the 8schools example on the set up page.

I don’t have write access to the c drive which I think is causing issues with my Rtools, it basically asks me to download rtools over and over again but never actually compiles.

Below is the error message:

Error in compileCode(f, code, language = language, verbose = verbose) :
Compilation ERROR, function(s)/method(s) not created! cc1plus.exe: fatal error: stan/math/prim/mat/fun/Eigen.hpp: No such file or directory
compilation terminated.
make: *** [C:/PROGRA~1/R/R-35~1.1/etc/x64/Makeconf:215: file2b9c1a2b69db.o] Error 1
In addition: Warning message:
In system(cmd, intern = !verbose) :
running command ‘C:/PROGRA~1/R/R-35~1.1/bin/x64/R CMD SHLIB file2b9c1a2b69db.cpp 2> file2b9c1a2b69db.cpp.err.txt’ had status 1
Error in sink(type = “output”) : invalid connection

I have downloaded all the latest versions of each - rstudio / r / rstan / rtools.

I am using a work desktop accessed through citrix, both windows.
If I change the location of rtools to my local profile it doesn’t seem to connect because there is a ‘$’ in the path.

Any advice on this would be appreciated.

If I run the below it starts to download the tools which are already downloaded:
pkgbuild::has_build_tools(debug = TRUE)

Thanks

1 Like

Do you have StanHeaders? See

Yes, I downloaded this version of StanHeaders, the Error message is unchanged

OK. The Citrix thing might be messing stuff up. Can you post all of

example(stan_model, package = "rstan", run.dontrun = TRUE)

?

Please see below output:
stn_md> stancode ← ‘data {real y_mean;} parameters {real y;} model {y ~ normal(y_mean,1);}’
stn_md> mod ← stan_model(model_code = stancode, verbose = TRUE)
TRANSLATING MODEL ‘73fc79f8b1915e8208c736914c86d1a1’ FROM Stan CODE TO C++ CODE NOW.
successful in parsing the Stan model ‘73fc79f8b1915e8208c736914c86d1a1’.
COMPILING THE C++ CODE FOR MODEL ‘73fc79f8b1915e8208c736914c86d1a1’ NOW.
OS: x86_64, mingw32; rstan: 2.19.3; Rcpp: 1.0.4; inline: 0.3.15

setting environment variables:
PKG_LIBS = -L"\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5/StanHeaders/libs/x64" -lStanHeaders
PKG_CPPFLAGS = -I"\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5/Rcpp/include/" -I"\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5/RcppEigen/include/" -I"\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5/RcppEigen/include/unsupported" -I"\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5/BH/include" -I"\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5/StanHeaders/include/src/" -I"\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5/StanHeaders/include/" -I"\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5/rstan/include" -DEIGEN_NO_DEBUG -D_REENTRANT -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -include stan/math/prim/mat/fun/Eigen.hpp -std=c++1y
Program source :

1 :
2 : // includes from the plugin
3 : // [[Rcpp::plugins(cpp14)]]
4 :
5 : // user includes
6 : #define STAN__SERVICES__COMMAND_HPP#include <boost/integer/integer_log2.hpp>
7 : #include <rstan/rstaninc.hpp>
8 : // Code generated by Stan version 2.19.1
9 :
10 : #include <stan/model/model_header.hpp>
11 :
12 : namespace model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace {
13 :
14 : using std::istream;
15 : using std::string;
16 : using std::stringstream;
17 : using std::vector;
18 : using stan::io::dump;
19 : using stan::math::lgamma;
20 : using stan::model::prob_grad;
21 : using namespace stan::math;
22 :
23 : static int current_statement_begin__;
24 :
25 : stan::io::program_reader prog_reader__() {
26 : stan::io::program_reader reader;
27 : reader.add_event(0, 0, “start”, “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”);
28 : reader.add_event(3, 1, “end”, “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”);
29 : return reader;
30 : }
31 :
32 : class model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1 : public prob_grad {
33 : private:
34 : double y_mean;
35 : public:
36 : model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1(stan::io::var_context& context__,
37 : std::ostream* pstream__ = 0)
38 : : prob_grad(0) {
39 : ctor_body(context__, 0, pstream__);
40 : }
41 :
42 : model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1(stan::io::var_context& context__,
43 : unsigned int random_seed__,
44 : std::ostream* pstream__ = 0)
45 : : prob_grad(0) {
46 : ctor_body(context__, random_seed__, pstream__);
47 : }
48 :
49 : void ctor_body(stan::io::var_context& context__,
50 : unsigned int random_seed__,
51 : std::ostream* pstream__) {
52 : typedef double local_scalar_t__;
53 :
54 : boost::ecuyer1988 base_rng__ =
55 : stan::services::util::create_rng(random_seed__, 0);
56 : (void) base_rng__; // suppress unused var warning
57 :
58 : current_statement_begin__ = -1;
59 :
60 : static const char* function__ = “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”;
61 : (void) function__; // dummy to suppress unused var warning
62 : size_t pos__;
63 : (void) pos__; // dummy to suppress unused var warning
64 : std::vector vals_i__;
65 : std::vector vals_r__;
66 : local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
67 : (void) DUMMY_VAR__; // suppress unused var warning
68 :
69 : try {
70 : // initialize data block variables from context__
71 : current_statement_begin__ = 1;
72 : context__.validate_dims(“data initialization”, “y_mean”, “double”, context__.to_vec());
73 : y_mean = double(0);
74 : vals_r__ = context__.vals_r(“y_mean”);
75 : pos__ = 0;
76 : y_mean = vals_r__[pos__++];
77 :
78 :
79 : // initialize transformed data variables
80 : // execute transformed data statements
81 :
82 : // validate transformed data
83 :
84 : // validate, set parameter ranges
85 : num_params_r__ = 0U;
86 : param_ranges_i__.clear();
87 : current_statement_begin__ = 1;
88 : num_params_r__ += 1;
89 : } catch (const std::exception& e) {
90 : stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
91 : // Next line prevents compiler griping about no return
92 : throw std::runtime_error(“*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
93 : }
94 : }
95 :
96 : ~model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1() { }
97 :
98 :
99 : void transform_inits(const stan::io::var_context& context__,
100 : std::vector& params_i__,
101 : std::vector& params_r__,
102 : std::ostream
pstream__) const {
103 : typedef double local_scalar_t__;
104 : stan::io::writer writer__(params_r__, params_i__);
105 : size_t pos__;
106 : (void) pos__; // dummy call to supress warning
107 : std::vector vals_r__;
108 : std::vector vals_i__;
109 :
110 : current_statement_begin__ = 1;
111 : if (!(context__.contains_r(“y”)))
112 : stan::lang::rethrow_located(std::runtime_error(std::string(“Variable y missing”)), current_statement_begin__, prog_reader__());
113 : vals_r__ = context__.vals_r(“y”);
114 : pos__ = 0U;
115 : context__.validate_dims(“parameter initialization”, “y”, “double”, context__.to_vec());
116 : double y(0);
117 : y = vals_r__[pos__++];
118 : try {
119 : writer__.scalar_unconstrain(y);
120 : } catch (const std::exception& e) {
121 : stan::lang::rethrow_located(std::runtime_error(std::string("Error transforming variable y: ") + e.what()), current_statement_begin__, prog_reader__());
122 : }
123 :
124 : params_r__ = writer__.data_r();
125 : params_i__ = writer__.data_i();
126 : }
127 :
128 : void transform_inits(const stan::io::var_context& context,
129 : Eigen::Matrix<double, Eigen::Dynamic, 1>& params_r,
130 : std::ostream
pstream__) const {
131 : std::vector params_r_vec;
132 : std::vector params_i_vec;
133 : transform_inits(context, params_i_vec, params_r_vec, pstream__);
134 : params_r.resize(params_r_vec.size());
135 : for (int i = 0; i < params_r.size(); ++i)
136 : params_r(i) = params_r_vec[i];
137 : }
138 :
139 :
140 : template <bool propto__, bool jacobian__, typename T__>
141 : T__ log_prob(std::vector<T__>& params_r__,
142 : std::vector& params_i__,
143 : std::ostream
pstream__ = 0) const {
144 :
145 : typedef T__ local_scalar_t__;
146 :
147 : local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
148 : (void) DUMMY_VAR__; // dummy to suppress unused var warning
149 :
150 : T__ lp__(0.0);
151 : stan::math::accumulator<T__> lp_accum__;
152 : try {
153 : stan::io::reader<local_scalar_t__> in__(params_r__, params_i__);
154 :
155 : // model parameters
156 : current_statement_begin__ = 1;
157 : local_scalar_t__ y;
158 : (void) y; // dummy to suppress unused var warning
159 : if (jacobian__)
160 : y = in__.scalar_constrain(lp__);
161 : else
162 : y = in__.scalar_constrain();
163 :
164 : // model body
165 :
166 : current_statement_begin__ = 1;
167 : lp_accum__.add(normal_log<propto__>(y, y_mean, 1));
168 :
169 : } catch (const std::exception& e) {
170 : stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
171 : // Next line prevents compiler griping about no return
172 : throw std::runtime_error(”*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
173 : }
174 :
175 : lp_accum__.add(lp__);
176 : return lp_accum__.sum();
177 :
178 : } // log_prob()
179 :
180 : template <bool propto, bool jacobian, typename T_>
181 : T_ log_prob(Eigen::Matrix<T_,Eigen::Dynamic,1>& params_r,
182 : std::ostream
pstream = 0) const {
183 : std::vector<T_> vec_params_r;
184 : vec_params_r.reserve(params_r.size());
185 : for (int i = 0; i < params_r.size(); ++i)
186 : vec_params_r.push_back(params_r(i));
187 : std::vector vec_params_i;
188 : return log_prob<propto,jacobian,T_>(vec_params_r, vec_params_i, pstream);
189 : }
190 :
191 :
192 : void get_param_names(std::vectorstd::string& names__) const {
193 : names__.resize(0);
194 : names__.push_back(“y”);
195 : }
196 :
197 :
198 : void get_dims(std::vector<std::vector<size_t> >& dimss__) const {
199 : dimss__.resize(0);
200 : std::vector<size_t> dims__;
201 : dims__.resize(0);
202 : dimss__.push_back(dims__);
203 : }
204 :
205 : template
206 : void write_array(RNG& base_rng__,
207 : std::vector& params_r__,
208 : std::vector& params_i__,
209 : std::vector& vars__,
210 : bool include_tparams__ = true,
211 : bool include_gqs__ = true,
212 : std::ostream
pstream__ = 0) const {
213 : typedef double local_scalar_t__;
214 :
215 : vars__.resize(0);
216 : stan::io::reader<local_scalar_t__> in__(params_r__, params_i__);
217 : static const char
function__ = “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::write_array”;
218 : (void) function__; // dummy to suppress unused var warning
219 :
220 : // read-transform, write parameters
221 : double y = in__.scalar_constrain();
222 : vars__.push_back(y);
223 :
224 : double lp__ = 0.0;
225 : (void) lp__; // dummy to suppress unused var warning
226 : stan::math::accumulator lp_accum__;
227 :
228 : local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
229 : (void) DUMMY_VAR__; // suppress unused var warning
230 :
231 : if (!include_tparams__ && !include_gqs__) return;
232 :
233 : try {
234 : if (!include_gqs__ && !include_tparams__) return;
235 : if (!include_gqs__) return;
236 : } catch (const std::exception& e) {
237 : stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
238 : // Next line prevents compiler griping about no return
239 : throw std::runtime_error(“*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
240 : }
241 : }
242 :
243 : template
244 : void write_array(RNG& base_rng,
245 : Eigen::Matrix<double,Eigen::Dynamic,1>& params_r,
246 : Eigen::Matrix<double,Eigen::Dynamic,1>& vars,
247 : bool include_tparams = true,
248 : bool include_gqs = true,
249 : std::ostream
pstream = 0) const {
250 : std::vector params_r_vec(params_r.size());
251 : for (int i = 0; i < params_r.size(); ++i)
252 : params_r_vec[i] = params_r(i);
253 : std::vector vars_vec;
254 : std::vector params_i_vec;
255 : write_array(base_rng, params_r_vec, params_i_vec, vars_vec, include_tparams, include_gqs, pstream);
256 : vars.resize(vars_vec.size());
257 : for (int i = 0; i < vars.size(); ++i)
258 : vars(i) = vars_vec[i];
259 : }
260 :
261 : static std::string model_name() {
262 : return “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”;
263 : }
264 :
265 :
266 : void constrained_param_names(std::vectorstd::string& param_names__,
267 : bool include_tparams__ = true,
268 : bool include_gqs__ = true) const {
269 : std::stringstream param_name_stream__;
270 : param_name_stream__.str(std::string());
271 : param_name_stream__ << “y”;
272 : param_names__.push_back(param_name_stream__.str());
273 :
274 : if (!include_gqs__ && !include_tparams__) return;
275 :
276 : if (include_tparams__) {
277 : }
278 :
279 : if (!include_gqs__) return;
280 : }
281 :
282 :
283 : void unconstrained_param_names(std::vectorstd::string& param_names__,
284 : bool include_tparams__ = true,
285 : bool include_gqs__ = true) const {
286 : std::stringstream param_name_stream__;
287 : param_name_stream__.str(std::string());
288 : param_name_stream__ << “y”;
289 : param_names__.push_back(param_name_stream__.str());
290 :
291 : if (!include_gqs__ && !include_tparams__) return;
292 :
293 : if (include_tparams__) {
294 : }
295 :
296 : if (!include_gqs__) return;
297 : }
298 :
299 : }; // model
300 :
301 : } // namespace
302 :
303 : typedef model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1 stan_model;
304 :
305 : /

306 : * Define Rcpp Module to expose stan_fit’s functions to R.
307 : */
308 : RCPP_MODULE(stan_fit4model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_mod){
309 : Rcpp::class_<rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1,
310 : boost::random::ecuyer1988> >(“stan_fit4model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”)
311 : // .constructorRcpp::List()
312 : .constructor<SEXP, SEXP, SEXP>()
313 : // .constructor<SEXP, SEXP>()
314 : .method(“call_sampler”,
315 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::call_sampler)
316 : .method(“param_names”,
317 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_names)
318 : .method(“param_names_oi”,
319 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_names_oi)
320 : .method(“param_fnames_oi”,
321 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_fnames_oi)
322 : .method(“param_dims”,
323 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_dims)
324 : .method(“param_dims_oi”,
325 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_dims_oi)
326 : .method(“update_param_oi”,
327 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::update_param_oi)
328 : .method(“param_oi_tidx”,
329 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_oi_tidx)
330 : .method(“grad_log_prob”,
331 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::grad_log_prob)
332 : .method(“log_prob”,
333 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::log_prob)
334 : .method(“unconstrain_pars”,
335 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::unconstrain_pars)
336 : .method(“constrain_pars”,
337 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::constrain_pars)
338 : .method(“num_pars_unconstrained”,
339 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::num_pars_unconstrained)
340 : .method(“unconstrained_param_names”,
341 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::unconstrained_param_names)
342 : .method(“constrained_param_names”,
343 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::constrained_param_names)
344 : .method(“standalone_gqs”,
345 : &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::standalone_gqs)
346 : ;
347 : }
348 :
349 : // declarations
350 : extern “C” {
351 : SEXP file27104f43103b( ) ;
352 : }
353 :
354 : // definition
355 :
356 : SEXP file27104f43103b( ){
357 : return Rcpp::wrap(“73fc79f8b1915e8208c736914c86d1a1”);
358 : }
359 :
360 :
Compilation argument:
C:/PROGRA~1/R/R-35~1.1/bin/x64/R CMD SHLIB file27104f43103b.cpp 2> file27104f43103b.cpp.err.txt
C:/RBuildTools/3.5/mingw_64/bin/g++ -std=gnu++11 -I"C:/PROGRA~1/R/R-35~1.1/include” -DNDEBUG -I"\mazarsfile04/RoamingProfiles2apmurphy/Documents/R/win-library/3.5/Rcpp/include/" -I"\mazarsfile04/RoamingProfiles2apmurphy/Documents/R/win-library/3.5/RcppEigen/include/" -I"\mazarsfile04/RoamingProfiles2apmurphy/Documents/R/win-library/3.5/RcppEigen/include/unsupported" -I"\mazarsfile04/RoamingProfiles2apmurphy/Documents/R/win-library/3.5/BH/include" -I"\mazarsfile04/RoamingProfiles2apmurphy/Documents/R/win-library/3.5/StanHeaders/include/src/" -I"\mazarsfile04/RoamingProfiles2apmurphy/Documents/R/win-library/3.5/StanHeaders/include/" -I"\mazarsfile04/RoamingProfiles2apmurphy/Documents/R/win-library/3.5/rstan/include" -DEIGEN_NO_DEBUG -D_REENTRANT -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -include stan/math/prim/mat/fun/Eigen.hpp -std=c++1y -march=core2 -O3 -march=corei7 -mtune=corei7 -c file27104f43103b.cpp -o file27104f43103b.o
cc1plus.exe: fatal error: stan/math/prim/mat/fun/Eigen.hpp: No such file or directory
compilation terminated.
make: *** [C:/PROGRA~1/R/R-35~1.1/etc/x64/Makeconf:215: file27104f43103b.o] Error 1

ERROR(s) during compilation: source code errors or compiler configuration errors!

2/2

Program source:
1:
2: // includes from the plugin
3: // [[Rcpp::plugins(cpp14)]]
4:
5: // user includes
6: #define STAN__SERVICES__COMMAND_HPP#include <boost/integer/integer_log2.hpp>
7: #include <rstan/rstaninc.hpp>
8: // Code generated by Stan version 2.19.1
9:
10: #include <stan/model/model_header.hpp>
11:
12: namespace model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace {
13:
14: using std::istream;
15: using std::string;
16: using std::stringstream;
17: using std::vector;
18: using stan::io::dump;
19: using stan::math::lgamma;
20: using stan::model::prob_grad;
21: using namespace stan::math;
22:
23: static int current_statement_begin__;
24:
25: stan::io::program_reader prog_reader__() {
26: stan::io::program_reader reader;
27: reader.add_event(0, 0, “start”, “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”);
28: reader.add_event(3, 1, “end”, “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”);
29: return reader;
30: }
31:
32: class model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1 : public prob_grad {
33: private:
34: double y_mean;
35: public:
36: model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1(stan::io::var_context& context__,
37: std::ostream* pstream__ = 0)
38: : prob_grad(0) {
39: ctor_body(context__, 0, pstream__);
40: }
41:
42: model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1(stan::io::var_context& context__,
43: unsigned int random_seed__,
44: std::ostream* pstream__ = 0)
45: : prob_grad(0) {
46: ctor_body(context__, random_seed__, pstream__);
47: }
48:
49: void ctor_body(stan::io::var_context& context__,
50: unsigned int random_seed__,
51: std::ostream* pstream__) {
52: typedef double local_scalar_t__;
53:
54: boost::ecuyer1988 base_rng__ =
55: stan::services::util::create_rng(random_seed__, 0);
56: (void) base_rng__; // suppress unused var warning
57:
58: current_statement_begin__ = -1;
59:
60: static const char* function__ = “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”;
61: (void) function__; // dummy to suppress unused var warning
62: size_t pos__;
63: (void) pos__; // dummy to suppress unused var warning
64: std::vector vals_i__;
65: std::vector vals_r__;
66: local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
67: (void) DUMMY_VAR__; // suppress unused var warning
68:
69: try {
70: // initialize data block variables from context__
71: current_statement_begin__ = 1;
72: context__.validate_dims(“data initialization”, “y_mean”, “double”, context__.to_vec());
73: y_mean = double(0);
74: vals_r__ = context__.vals_r(“y_mean”);
75: pos__ = 0;
76: y_mean = vals_r__[pos__++];
77:
78:
79: // initialize transformed data variables
80: // execute transformed data statements
81:
82: // validate transformed data
83:
84: // validate, set parameter ranges
85: num_params_r__ = 0U;
86: param_ranges_i__.clear();
87: current_statement_begin__ = 1;
88: num_params_r__ += 1;
89: } catch (const std::exception& e) {
90: stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
91: // Next line prevents compiler griping about no return
92: throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
93: }
94: }
95:
96: ~model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1() { }
97:
98:
99: void transform_inits(const stan::io::var_context& context__,
100: std::vector& params_i__,
101: std::vector& params_r__,
102: std::ostream
pstream__) const {
103: typedef double local_scalar_t__;
104: stan::io::writer writer__(params_r__, params_i__);
105: size_t pos__;
106: (void) pos__; // dummy call to supress warning
107: std::vector vals_r__;
108: std::vector vals_i__;
109:
110: current_statement_begin__ = 1;
111: if (!(context__.contains_r(“y”)))
112: stan::lang::rethrow_located(std::runtime_error(std::string(“Variable y missing”)), current_statement_begin__, prog_reader__());
113: vals_r__ = context__.vals_r(“y”);
114: pos__ = 0U;
115: context__.validate_dims(“parameter initialization”, “y”, “double”, context__.to_vec());
116: double y(0);
117: y = vals_r__[pos__++];
118: try {
119: writer__.scalar_unconstrain(y);
120: } catch (const std::exception& e) {
121: stan::lang::rethrow_located(std::runtime_error(std::string("Error transforming variable y: ") + e.what()), current_statement_begin__, prog_reader__());
122: }
123:
124: params_r__ = writer__.data_r();
125: params_i__ = writer__.data_i();
126: }
127:
128: void transform_inits(const stan::io::var_context& context,
129: Eigen::Matrix<double, Eigen::Dynamic, 1>& params_r,
130: std::ostream
pstream__) const {
131: std::vector params_r_vec;
132: std::vector params_i_vec;
133: transform_inits(context, params_i_vec, params_r_vec, pstream__);
134: params_r.resize(params_r_vec.size());
135: for (int i = 0; i < params_r.size(); ++i)
136: params_r(i) = params_r_vec[i];
137: }
138:
139:
140: template <bool propto__, bool jacobian__, typename T__>
141: T__ log_prob(std::vector<T__>& params_r__,
142: std::vector& params_i__,
143: std::ostream
pstream__ = 0) const {
144:
145: typedef T__ local_scalar_t__;
146:
147: local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
148: (void) DUMMY_VAR__; // dummy to suppress unused var warning
149:
150: T__ lp__(0.0);
151: stan::math::accumulator<T__> lp_accum__;
152: try {
153: stan::io::reader<local_scalar_t__> in__(params_r__, params_i__);
154:
155: // model parameters
156: current_statement_begin__ = 1;
157: local_scalar_t__ y;
158: (void) y; // dummy to suppress unused var warning
159: if (jacobian__)
160: y = in__.scalar_constrain(lp__);
161: else
162: y = in__.scalar_constrain();
163:
164: // model body
165:
166: current_statement_begin__ = 1;
167: lp_accum__.add(normal_log<propto__>(y, y_mean, 1));
168:
169: } catch (const std::exception& e) {
170: stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
171: // Next line prevents compiler griping about no return
172: throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
173: }
174:
175: lp_accum__.add(lp__);
176: return lp_accum__.sum();
177:
178: } // log_prob()
179:
180: template <bool propto, bool jacobian, typename T_>
181: T_ log_prob(Eigen::Matrix<T_,Eigen::Dynamic,1>& params_r,
182: std::ostream
pstream = 0) const {
183: std::vector<T_> vec_params_r;
184: vec_params_r.reserve(params_r.size());
185: for (int i = 0; i < params_r.size(); ++i)
186: vec_params_r.push_back(params_r(i));
187: std::vector vec_params_i;
188: return log_prob<propto,jacobian,T_>(vec_params_r, vec_params_i, pstream);
189: }
190:
191:
192: void get_param_names(std::vectorstd::string& names__) const {
193: names__.resize(0);
194: names__.push_back(“y”);
195: }
196:
197:
198: void get_dims(std::vector<std::vector<size_t> >& dimss__) const {
199: dimss__.resize(0);
200: std::vector<size_t> dims__;
201: dims__.resize(0);
202: dimss__.push_back(dims__);
203: }
204:
205: template
206: void write_array(RNG& base_rng__,
207: std::vector& params_r__,
208: std::vector& params_i__,
209: std::vector& vars__,
210: bool include_tparams__ = true,
211: bool include_gqs__ = true,
212: std::ostream
pstream__ = 0) const {
213: typedef double local_scalar_t__;
214:
215: vars__.resize(0);
216: stan::io::reader<local_scalar_t__> in__(params_r__, params_i__);
217: static const char
function__ = “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::write_array”;
218: (void) function__; // dummy to suppress unused var warning
219:
220: // read-transform, write parameters
221: double y = in__.scalar_constrain();
222: vars__.push_back(y);
223:
224: double lp__ = 0.0;
225: (void) lp__; // dummy to suppress unused var warning
226: stan::math::accumulator lp_accum__;
227:
228: local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());
229: (void) DUMMY_VAR__; // suppress unused var warning
230:
231: if (!include_tparams__ && !include_gqs__) return;
232:
233: try {
234: if (!include_gqs__ && !include_tparams__) return;
235: if (!include_gqs__) return;
236: } catch (const std::exception& e) {
237: stan::lang::rethrow_located(e, current_statement_begin__, prog_reader__());
238: // Next line prevents compiler griping about no return
239: throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ");
240: }
241: }
242:
243: template
244: void write_array(RNG& base_rng,
245: Eigen::Matrix<double,Eigen::Dynamic,1>& params_r,
246: Eigen::Matrix<double,Eigen::Dynamic,1>& vars,
247: bool include_tparams = true,
248: bool include_gqs = true,
249: std::ostream
pstream = 0) const {
250: std::vector params_r_vec(params_r.size());
251: for (int i = 0; i < params_r.size(); ++i)
252: params_r_vec[i] = params_r(i);
253: std::vector vars_vec;
254: std::vector params_i_vec;
255: write_array(base_rng, params_r_vec, params_i_vec, vars_vec, include_tparams, include_gqs, pstream);
256: vars.resize(vars_vec.size());
257: for (int i = 0; i < vars.size(); ++i)
258: vars(i) = vars_vec[i];
259: }
260:
261: static std::string model_name() {
262: return “model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”;
263: }
264:
265:
266: void constrained_param_names(std::vectorstd::string& param_names__,
267: bool include_tparams__ = true,
268: bool include_gqs__ = true) const {
269: std::stringstream param_name_stream__;
270: param_name_stream__.str(std::string());
271: param_name_stream__ << “y”;
272: param_names__.push_back(param_name_stream__.str());
273:
274: if (!include_gqs__ && !include_tparams__) return;
275:
276: if (include_tparams__) {
277: }
278:
279: if (!include_gqs__) return;
280: }
281:
282:
283: void unconstrained_param_names(std::vectorstd::string& param_names__,
284: bool include_tparams__ = true,
285: bool include_gqs__ = true) const {
286: std::stringstream param_name_stream__;
287: param_name_stream__.str(std::string());
288: param_name_stream__ << “y”;
289: param_names__.push_back(param_name_stream__.str());
290:
291: if (!include_gqs__ && !include_tparams__) return;
292:
293: if (include_tparams__) {
294: }
295:
296: if (!include_gqs__) return;
297: }
298:
299: }; // model
300:
301: } // namespace
302:
303: typedef model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1 stan_model;
304:
305: /

306: * Define Rcpp Module to expose stan_fit’s functions to R.
307: */
308: RCPP_MODULE(stan_fit4model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_mod){
309: Rcpp::class_<rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1,
310: boost::random::ecuyer1988> >(“stan_fit4model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1”)
311: // .constructorRcpp::List()
312: .constructor<SEXP, SEXP, SEXP>()
313: // .constructor<SEXP, SEXP>()
314: .method(“call_sampler”,
315: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::call_sampler)
316: .method(“param_names”,
317: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_names)
318: .method(“param_names_oi”,
319: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_names_oi)
320: .method(“param_fnames_oi”,
321: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_fnames_oi)
322: .method(“param_dims”,
323: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_dims)
324: .method(“param_dims_oi”,
325: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_dims_oi)
326: .method(“update_param_oi”,
327: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::update_param_oi)
328: .method(“param_oi_tidx”,
329: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_oi_tidx)
330: .method(“grad_log_prob”,
331: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::grad_log_prob)
332: .method(“log_prob”,
333: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::log_prob)
334: .method(“unconstrain_pars”,
335: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::unconstrain_pars)
336: .method(“constrain_pars”,
337: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::constrain_pars)
338: .method(“num_pars_unconstrained”,
339: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::num_pars_unconstrained)
340: .method(“unconstrained_param_names”,
341: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::unconstrained_param_names)
342: .method(“constrained_param_names”,
343: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::constrained_param_names)
344: .method(“standalone_gqs”,
345: &rstan::stan_fit<model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1_namespace::model271017e27e8e_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::standalone_gqs)
346: ;
347: }
348:
349: // declarations
350: extern “C” {
351: SEXP file27104f43103b( ) ;
352: }
353:
354: // definition
355:
356: SEXP file27104f43103b( ){
357: return Rcpp::wrap(“73fc79f8b1915e8208c736914c86d1a1”);
358: }
359:
360:
Error in compileCode(f, code, language = language, verbose = verbose) :
Compilation ERROR, function(s)/method(s) not created! cc1plus.exe: fatal error: stan/math/prim/mat/fun/Eigen.hpp: No such file or directory
compilation terminated.
make: *** [C:/PROGRA~1/R/R-35~1.1/etc/x64/Makeconf:215: file27104f43103b.o] Error 1

And what is the output of

system.file("include", "stan", "math", "prim", "mat", "fun", "Eigen.hpp", package = "StanHeaders")

?

[1] “\\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp”

I think the dollar sign in the path is messing things up in the compilation step. What is

.libPaths() # note period

?

[1] “\\mazarsfile04/RoamingProfiles2$/apmurphy/Documents/R/win-library/3.5”
[2] “C:/Program Files/R/R-3.5.1/library”

If you can install Rcpp, RcppEigen, StanHeaders and BH into [2] rather than [1], it will work.

For others that might get this issue when installing rstan on linux (Ubuntu 20.04 - Linux Mint 20.1), my problem was a package called V8 that was not installing correctly. I was able to install it on my linux machine using this command:

sudo apt-get install libv8-dev

Then, as @bgoodri suggested, adding Rcpp and RcppEigen to my user/R library folder fixed the issue.