> example(stan_model, package = "rstan", run.dontrun = TRUE, verbose = TRUE) Found file = ‘C:/Program Files/R/R-4.0.0/library/rstan/help/stan_model’ Loading required package: StanHeaders Loading required package: ggplot2 rstan (Version 2.19.3, GitRev: 2e1f913d3ca3) For execution on a local, multicore CPU with excess RAM we recommend calling options(mc.cores = parallel::detectCores()). To avoid recompilation of unchanged Stan programs, we recommend calling rstan_options(auto_write = TRUE) For improved execution time, we recommend calling Sys.setenv(LOCAL_CPPFLAGS = '-march=corei7 -mtune=corei7') although this causes Stan to throw an error on a few processors. 'envir' chosen: encoding = "UTF-8" chosen --> parsed 4 expressions; now eval(.)ing them: has srcrefs: List of 4 $ : 'srcref' int [1:8] 8 1 8 84 1 84 8 8 ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' $ : 'srcref' int [1:8] 9 1 9 56 1 56 9 9 ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' $ : 'srcref' int [1:8] 10 1 10 45 1 45 10 10 ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' $ : 'srcref' int [1:8] 11 1 11 46 1 46 11 11 ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' >>>> eval(expression_nr. 1 ) ================= stn_md> stancode <- 'data {real y_mean;} parameters {real y;} model {y ~ normal(y_mean,1);}' curr.fun: symbol <- .. after ‘expression(stancode <- 'data {real y_mean;} parameters {real y;} model {y ~ normal(y_mean,1);}')’ >>>> eval(expression_nr. 2 ) ================= 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 >> setting environment variables: PKG_LIBS = -L"C:/Program Files/R/R-4.0.0/library/StanHeaders/libs/x64" -lStanHeaders PKG_CPPFLAGS = -I"C:/Program Files/R/R-4.0.0/library/Rcpp/include/" -I"C:/Program Files/R/R-4.0.0/library/RcppEigen/include/" -I"C:/Program Files/R/R-4.0.0/library/RcppEigen/include/unsupported" -I"C:/Program Files/R/R-4.0.0/library/BH/include" -I"C:/Program Files/R/R-4.0.0/library/StanHeaders/include/src/" -I"C:/Program Files/R/R-4.0.0/library/StanHeaders/include/" -I"C:/Program Files/R/R-4.0.0/library/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 7 : #include 8 : // Code generated by Stan version 2.19.1 9 : 10 : #include 11 : 12 : namespace model124f0277f2aeb_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", "model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1"); 28 : reader.add_event(3, 1, "end", "model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1"); 29 : return reader; 30 : } 31 : 32 : class model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1 : public prob_grad { 33 : private: 34 : double y_mean; 35 : public: 36 : model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1(stan::io::var_context& context__, 37 : std::ostream* pstream__ = 0) 38 : : prob_grad(0) { 39 : ctor_body(context__, 0, pstream__); 40 : } 41 : 42 : model124f0277f2aeb_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__ = "model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1_namespace::model124f0277f2aeb_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 : ~model124f0277f2aeb_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& 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 141 : T__ log_prob(std::vector& 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 lp_accum__; 152 : try { 153 : stan::io::reader 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(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 181 : T_ log_prob(Eigen::Matrix& params_r, 182 : std::ostream* pstream = 0) const { 183 : std::vector 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(vec_params_r, vec_params_i, pstream); 189 : } 190 : 191 : 192 : void get_param_names(std::vector& names__) const { 193 : names__.resize(0); 194 : names__.push_back("y"); 195 : } 196 : 197 : 198 : void get_dims(std::vector >& dimss__) const { 199 : dimss__.resize(0); 200 : std::vector 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 in__(params_r__, params_i__); 217 : static const char* function__ = "model124f0277f2aeb_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& params_r, 246 : Eigen::Matrix& 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 "model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1"; 263 : } 264 : 265 : 266 : void constrained_param_names(std::vector& 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::vector& 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 model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1_namespace::model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1 stan_model; 304 : 305 : /** 306 : * Define Rcpp Module to expose stan_fit's functions to R. 307 : */ 308 : RCPP_MODULE(stan_fit4model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1_mod){ 309 : Rcpp::class_ >("stan_fit4model124f0277f2aeb_73fc79f8b1915e8208c736914c86d1a1") 311 : // .constructor() 312 : .constructor() 313 : // .constructor() 314 : .method("call_sampler", 315 : &rstan::stan_fit::call_sampler) 316 : .method("param_names", 317 : &rstan::stan_fit::param_names) 318 : .method("param_names_oi", 319 : &rstan::stan_fit::param_names_oi) 320 : .method("param_fnames_oi", 321 : &rstan::stan_fit::param_fnames_oi) 322 : .method("param_dims", 323 : &rstan::stan_fit::param_dims) 324 : .method("param_dims_oi", 325 : &rstan::stan_fit::param_dims_oi) 326 : .method("update_param_oi", 327 : &rstan::stan_fit::update_param_oi) 328 : .method("param_oi_tidx", 329 : &rstan::stan_fit::param_oi_tidx) 330 : .method("grad_log_prob", 331 : &rstan::stan_fit::grad_log_prob) 332 : .method("log_prob", 333 : &rstan::stan_fit::log_prob) 334 : .method("unconstrain_pars", 335 : &rstan::stan_fit::unconstrain_pars) 336 : .method("constrain_pars", 337 : &rstan::stan_fit::constrain_pars) 338 : .method("num_pars_unconstrained", 339 : &rstan::stan_fit::num_pars_unconstrained) 340 : .method("unconstrained_param_names", 341 : &rstan::stan_fit::unconstrained_param_names) 342 : .method("constrained_param_names", 343 : &rstan::stan_fit::constrained_param_names) 344 : .method("standalone_gqs", 345 : &rstan::stan_fit::standalone_gqs) 346 : ; 347 : } 348 : 349 : // declarations 350 : extern "C" { 351 : SEXP file124f04d3b168( ) ; 352 : } 353 : 354 : // definition 355 : 356 : SEXP file124f04d3b168( ){ 357 : return Rcpp::wrap("73fc79f8b1915e8208c736914c86d1a1"); 358 : } 359 : 360 : Compilation argument: C:/PROGRA~1/R/R-40~1.0/bin/x64/R CMD SHLIB file124f04d3b168.cpp 2> file124f04d3b168.cpp.err.txt g++ -m64 -std=c++1y -std=gnu++14 -I"C:/PROGRA~1/R/R-40~1.0/include" -DNDEBUG -I"C:/Program Files/R/R-4.0.0/library/Rcpp/include/" -I"C:/Program Files/R/R-4.0.0/library/RcppEigen/include/" -I"C:/Program Files/R/R-4.0.0/library/RcppEigen/include/unsupported" -I"C:/Program Files/R/R-4.0.0/library/BH/include" -I"C:/Program Files/R/R-4.0.0/library/StanHeaders/include/src/" -I"C:/Program Files/R/R-4.0.0/library/StanHeaders/include/" -I"C:/Program Files/R/R-4.0.0/library/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=native -mtune=native -c file124f04d3b168.cpp -o file124f04d3b168.o file124f04d3b168.cpp:6:36: warning: ISO C99 requires whitespace after the macro name #define STAN__SERVICES__COMMAND_HPP#include ^ g++ -m64 -std=c++1y -shared -s -static-libgcc -o file124f04d3b168.dll tmp.def file124f04d3b168.o -LC:/PROGRA~1/R/R-40~1.0/bin/x64 -lR curr.fun: symbol <- .. after ‘expression(mod <- stan_model(model_code = stancode, verbose = TRUE))’ >>>> eval(expression_nr. 3 ) ================= stn_md> fit <- sampling(mod, data = list(y_mean = 0))