Below is the whole thing. Rstudio prompted to install more things which I did. I also reinstalled Rtool40. Thanks!
example(stan_model, package = “rstan”, run.dontrun = TRUE)
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.6; inline: 0.3.15
WARNING: Rtools is required to build R packages, but the version of Rtools previously installed in C:/rtools40 has been deleted.
Please download and install Rtools custom from RTools: Toolchains for building R and R packages from source on Windows.
setting environment variables:
PKG_LIBS = -L"C:/Users/fur/Documents/R/win-library/4.0/StanHeaders/libs/x64" -lStanHeaders
PKG_CPPFLAGS = -I"C:/Users/fur/Documents/R/win-library/4.0/Rcpp/include/" -I"C:/Users/fur/Documents/R/win-library/4.0/RcppEigen/include/" -I"C:/Users/fur/Documents/R/win-library/4.0/RcppEigen/include/unsupported" -I"C:/Users/fur/Documents/R/win-library/4.0/BH/include" -I"C:/Users/fur/Documents/R/win-library/4.0/StanHeaders/include/src/" -I"C:/Users/fur/Documents/R/win-library/4.0/StanHeaders/include/" -I"C:/Users/fur/Documents/R/win-library/4.0/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 model2a80454e5ad0_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”, “model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1”);
28 : reader.add_event(3, 1, “end”, “model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1”);
29 : return reader;
30 : }
31 :
32 : class model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1 : public prob_grad {
33 : private:
34 : double y_mean;
35 : public:
36 : model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1(stan::io::var_context& context__,
37 : std::ostream* pstream__ = 0)
38 : : prob_grad(0) {
39 : ctor_body(context__, 0, pstream__);
40 : }
41 :
42 : model2a80454e5ad0_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__ = “model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_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 : ~model2a80454e5ad0_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__ = “model2a80454e5ad0_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 “model2a80454e5ad0_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 model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1 stan_model;
304 :
305 : /
306 : * Define Rcpp Module to expose stan_fit’s functions to R.
307 : */
308 : RCPP_MODULE(stan_fit4model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_mod){
309 : Rcpp::class_<rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1,
310 : boost::random::ecuyer1988> >(“stan_fit4model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1”)
311 : // .constructorRcpp::List()
312 : .constructor<SEXP, SEXP, SEXP>()
313 : // .constructor<SEXP, SEXP>()
314 : .method(“call_sampler”,
315 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::call_sampler)
316 : .method(“param_names”,
317 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_names)
318 : .method(“param_names_oi”,
319 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_names_oi)
320 : .method(“param_fnames_oi”,
321 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_fnames_oi)
322 : .method(“param_dims”,
323 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_dims)
324 : .method(“param_dims_oi”,
325 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_dims_oi)
326 : .method(“update_param_oi”,
327 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::update_param_oi)
328 : .method(“param_oi_tidx”,
329 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::param_oi_tidx)
330 : .method(“grad_log_prob”,
331 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::grad_log_prob)
332 : .method(“log_prob”,
333 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::log_prob)
334 : .method(“unconstrain_pars”,
335 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::unconstrain_pars)
336 : .method(“constrain_pars”,
337 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::constrain_pars)
338 : .method(“num_pars_unconstrained”,
339 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::num_pars_unconstrained)
340 : .method(“unconstrained_param_names”,
341 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::unconstrained_param_names)
342 : .method(“constrained_param_names”,
343 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::constrained_param_names)
344 : .method(“standalone_gqs”,
345 : &rstan::stan_fit<model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1_namespace::model2a80454e5ad0_73fc79f8b1915e8208c736914c86d1a1, boost::random::ecuyer1988>::standalone_gqs)
346 : ;
347 : }
348 :
349 : // declarations
350 : extern “C” {
351 : SEXP file2a80750e7690( ) ;
352 : }
353 :
354 : // definition
355 :
356 : SEXP file2a80750e7690( ){
357 : return Rcpp::wrap(“73fc79f8b1915e8208c736914c86d1a1”);
358 : }
359 :
360 :
Compilation argument:
C:/Program Files/R/R-40~1.0/bin/x64/R CMD SHLIB file2a80750e7690.cpp 2> file2a80750e7690.cpp.err.txt
Error in file(con, “r”) : cannot open the connection
In addition: Warning message:
In file(con, “r”) :
cannot open file ‘file2a80750e7690.cpp.err.txt’: No such file or directory