Guest User

error-rstan

a guest
May 1st, 2025
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 48.72 KB | Source Code | 0 0
  1. stn_md> stancode <- 'data {real y_mean;} parameters {real y;} model {y ~ normal(y_mean,1);}'
  2.  
  3. stn_md> mod <- stan_model(model_code = stancode, verbose = TRUE)
  4.  
  5. TRANSLATING MODEL '' FROM Stan CODE TO C++ CODE NOW.
  6. COMPILING THE C++ CODE FOR MODEL 'anon_model' NOW.
  7. OS: x86_64, mingw32; rstan: 2.36.0.9000; Rcpp: 1.0.14; inline: 0.3.21
  8.  >> setting environment variables:
  9. PKG_LIBS =  "C:/Users/rosgori/AppData/Local/R/win-library/4.5/rstan/lib/x64/libStanServices.a" -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/libs/x64" -lStanHeaders -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64" -ltbb -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/libs/x64" -lRcppParallel -LC:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64 -ltbb -ltbbmalloc
  10. PKG_CPPFLAGS =   -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/Rcpp/include/"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppEigen/include/"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppEigen/include/unsupported"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/BH/include" -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/include/src/"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/include/"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/include/" -DRCPP_PARALLEL_USE_TBB=1 -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/rstan/include" -DEIGEN_NO_DEBUG  -DBOOST_DISABLE_ASSERTS  -DBOOST_PENDING_INTEGER_LOG2_HPP  -DSTAN_THREADS  -DUSE_STANC3 -DSTRICT_R_HEADERS  -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION  -D_HAS_AUTO_PTR_ETC=0  -include "C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/include/stan/math/prim/fun/Eigen.hpp"  -std=c++1y
  11.  >> Program source :
  12.  
  13.    1 :
  14.    2 : // includes from the plugin
  15.    3 : // [[Rcpp::plugins(cpp14)]]
  16.    4 :
  17.    5 :
  18.    6 : // user includes
  19.    7 : #include <Rcpp.h>
  20.    8 : using namespace Rcpp;
  21.    9 : #ifndef MODELS_HPP
  22.   10 : #define MODELS_HPP
  23.   11 : #define STAN__SERVICES__COMMAND_HPP
  24.   12 : #include <rstan/rstaninc.hpp>
  25.   13 : #ifndef USE_STANC3
  26.   14 : #define USE_STANC3
  27.   15 : #endif
  28.   16 : // Code generated by stanc v2.36.0-112-g93cda2f
  29.   17 : #include <stan/model/model_header.hpp>
  30.   18 : namespace model54bc75f8511b__namespace {
  31.   19 : using stan::model::model_base_crtp;
  32.   20 : using namespace stan::math;
  33.   21 : stan::math::profile_map profiles__;
  34.   22 : static constexpr std::array<const char*, 4> locations_array__ =
  35.   23 :   {" (found before start of program)",
  36.   24 :   " (in 'string', line 1, column 32 to column 39)",
  37.   25 :   " (in 'string', line 1, column 48 to column 69)",
  38.   26 :   " (in 'string', line 1, column 6 to column 18)"};
  39.   27 : class model54bc75f8511b_ final : public model_base_crtp<model54bc75f8511b_> {
  40.   28 : private:
  41.   29 :   double y_mean;
  42.   30 : public:
  43.   31 :   ~model54bc75f8511b_() {}
  44.   32 :   model54bc75f8511b_(stan::io::var_context& context__, unsigned int
  45.   33 :                      random_seed__ = 0, std::ostream* pstream__ = nullptr)
  46.   34 :       : model_base_crtp(0) {
  47.   35 :     int current_statement__ = 0;
  48.   36 :     // suppress unused var warning
  49.   37 :     (void) current_statement__;
  50.   38 :     using local_scalar_t__ = double;
  51.   39 :     auto base_rng__ = stan::services::util::create_rng(random_seed__, 0);
  52.   40 :     // suppress unused var warning
  53.   41 :     (void) base_rng__;
  54.   42 :     static constexpr const char* function__ =
  55.   43 :       "model54bc75f8511b__namespace::model54bc75f8511b_";
  56.   44 :     // suppress unused var warning
  57.   45 :     (void) function__;
  58.   46 :     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  59.   47 :     // suppress unused var warning
  60.   48 :     (void) DUMMY_VAR__;
  61.   49 :     try {
  62.   50 :       current_statement__ = 3;
  63.   51 :       context__.validate_dims("data initialization", "y_mean", "double",
  64.   52 :         std::vector<size_t>{});
  65.   53 :       y_mean = std::numeric_limits<double>::quiet_NaN();
  66.   54 :       current_statement__ = 3;
  67.   55 :       y_mean = context__.vals_r("y_mean")[(1 - 1)];
  68.   56 :     } catch (const std::exception& e) {
  69.   57 :       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  70.   58 :     }
  71.   59 :     num_params_r__ = 1;
  72.   60 :   }
  73.   61 :   inline std::string model_name() const final {
  74.   62 :     return "model54bc75f8511b_";
  75.   63 :   }
  76.   64 :   inline std::vector<std::string> model_compile_info() const noexcept {
  77.   65 :     return std::vector<std::string>{"stanc_version = stanc3 v2.36.0-112-g93cda2f",
  78.   66 :              "stancflags = --"};
  79.   67 :   }
  80.   68 :   // Base log prob
  81.   69 :   template <bool propto__, bool jacobian__, typename VecR, typename VecI,
  82.   70 :             stan::require_vector_like_t<VecR>* = nullptr,
  83.   71 :             stan::require_vector_like_vt<std::is_integral, VecI>* = nullptr,
  84.   72 :             stan::require_not_st_var<VecR>* = nullptr>
  85.   73 :   inline stan::scalar_type_t<VecR>
  86.   74 :   log_prob_impl(VecR& params_r__, VecI& params_i__, std::ostream*
  87.   75 :                 pstream__ = nullptr) const {
  88.   76 :     using T__ = stan::scalar_type_t<VecR>;
  89.   77 :     using local_scalar_t__ = T__;
  90.   78 :     T__ lp__(0.0);
  91.   79 :     stan::math::accumulator<T__> lp_accum__;
  92.   80 :     stan::io::deserializer<local_scalar_t__> in__(params_r__, params_i__);
  93.   81 :     int current_statement__ = 0;
  94.   82 :     // suppress unused var warning
  95.   83 :     (void) current_statement__;
  96.   84 :     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  97.   85 :     // suppress unused var warning
  98.   86 :     (void) DUMMY_VAR__;
  99.   87 :     static constexpr const char* function__ =
  100.   88 :       "model54bc75f8511b__namespace::log_prob";
  101.   89 :     // suppress unused var warning
  102.   90 :     (void) function__;
  103.   91 :     try {
  104.   92 :       current_statement__ = 1;
  105.   93 :       auto y = in__.template read<local_scalar_t__>();
  106.   94 :       {
  107.   95 :         current_statement__ = 2;
  108.   96 :         lp_accum__.add(stan::math::normal_lpdf<propto__>(y, y_mean, 1));
  109.   97 :       }
  110.   98 :     } catch (const std::exception& e) {
  111.   99 :       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  112.  100 :     }
  113.  101 :     lp_accum__.add(lp__);
  114.  102 :     return lp_accum__.sum();
  115.  103 :   }
  116.  104 :   // Reverse mode autodiff log prob
  117.  105 :   template <bool propto__, bool jacobian__, typename VecR, typename VecI,
  118.  106 :             stan::require_vector_like_t<VecR>* = nullptr,
  119.  107 :             stan::require_vector_like_vt<std::is_integral, VecI>* = nullptr,
  120.  108 :             stan::require_st_var<VecR>* = nullptr>
  121.  109 :   inline stan::scalar_type_t<VecR>
  122.  110 :   log_prob_impl(VecR& params_r__, VecI& params_i__, std::ostream*
  123.  111 :                 pstream__ = nullptr) const {
  124.  112 :     using T__ = stan::scalar_type_t<VecR>;
  125.  113 :     using local_scalar_t__ = T__;
  126.  114 :     T__ lp__(0.0);
  127.  115 :     stan::math::accumulator<T__> lp_accum__;
  128.  116 :     stan::io::deserializer<local_scalar_t__> in__(params_r__, params_i__);
  129.  117 :     int current_statement__ = 0;
  130.  118 :     // suppress unused var warning
  131.  119 :     (void) current_statement__;
  132.  120 :     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  133.  121 :     // suppress unused var warning
  134.  122 :     (void) DUMMY_VAR__;
  135.  123 :     static constexpr const char* function__ =
  136.  124 :       "model54bc75f8511b__namespace::log_prob";
  137.  125 :     // suppress unused var warning
  138.  126 :     (void) function__;
  139.  127 :     try {
  140.  128 :       current_statement__ = 1;
  141.  129 :       auto y = in__.template read<local_scalar_t__>();
  142.  130 :       {
  143.  131 :         current_statement__ = 2;
  144.  132 :         lp_accum__.add(stan::math::normal_lpdf<propto__>(y, y_mean, 1));
  145.  133 :       }
  146.  134 :     } catch (const std::exception& e) {
  147.  135 :       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  148.  136 :     }
  149.  137 :     lp_accum__.add(lp__);
  150.  138 :     return lp_accum__.sum();
  151.  139 :   }
  152.  140 :   template <typename RNG, typename VecR, typename VecI, typename VecVar,
  153.  141 :             stan::require_vector_like_vt<std::is_floating_point,
  154.  142 :             VecR>* = nullptr, stan::require_vector_like_vt<std::is_integral,
  155.  143 :             VecI>* = nullptr, stan::require_vector_vt<std::is_floating_point,
  156.  144 :             VecVar>* = nullptr>
  157.  145 :   inline void
  158.  146 :   write_array_impl(RNG& base_rng__, VecR& params_r__, VecI& params_i__,
  159.  147 :                    VecVar& vars__, const bool
  160.  148 :                    emit_transformed_parameters__ = true, const bool
  161.  149 :                    emit_generated_quantities__ = true, std::ostream*
  162.  150 :                    pstream__ = nullptr) const {
  163.  151 :     using local_scalar_t__ = double;
  164.  152 :     stan::io::deserializer<local_scalar_t__> in__(params_r__, params_i__);
  165.  153 :     stan::io::serializer<local_scalar_t__> out__(vars__);
  166.  154 :     static constexpr bool propto__ = true;
  167.  155 :     // suppress unused var warning
  168.  156 :     (void) propto__;
  169.  157 :     double lp__ = 0.0;
  170.  158 :     // suppress unused var warning
  171.  159 :     (void) lp__;
  172.  160 :     int current_statement__ = 0;
  173.  161 :     // suppress unused var warning
  174.  162 :     (void) current_statement__;
  175.  163 :     stan::math::accumulator<double> lp_accum__;
  176.  164 :     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  177.  165 :     // suppress unused var warning
  178.  166 :     (void) DUMMY_VAR__;
  179.  167 :     constexpr bool jacobian__ = false;
  180.  168 :     // suppress unused var warning
  181.  169 :     (void) jacobian__;
  182.  170 :     static constexpr const char* function__ =
  183.  171 :       "model54bc75f8511b__namespace::write_array";
  184.  172 :     // suppress unused var warning
  185.  173 :     (void) function__;
  186.  174 :     try {
  187.  175 :       current_statement__ = 1;
  188.  176 :       auto y = in__.template read<local_scalar_t__>();
  189.  177 :       out__.write(y);
  190.  178 :       if (stan::math::logical_negation(
  191.  179 :             (stan::math::primitive_value(emit_transformed_parameters__) ||
  192.  180 :             stan::math::primitive_value(emit_generated_quantities__)))) {
  193.  181 :         return ;
  194.  182 :       }
  195.  183 :       if (stan::math::logical_negation(emit_generated_quantities__)) {
  196.  184 :         return ;
  197.  185 :       }
  198.  186 :     } catch (const std::exception& e) {
  199.  187 :       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  200.  188 :     }
  201.  189 :   }
  202.  190 :   template <typename VecVar, typename VecI,
  203.  191 :             stan::require_vector_t<VecVar>* = nullptr,
  204.  192 :             stan::require_vector_like_vt<std::is_integral, VecI>* = nullptr>
  205.  193 :   inline void
  206.  194 :   unconstrain_array_impl(const VecVar& params_r__, const VecI& params_i__,
  207.  195 :                          VecVar& vars__, std::ostream* pstream__ = nullptr) const {
  208.  196 :     using local_scalar_t__ = double;
  209.  197 :     stan::io::deserializer<local_scalar_t__> in__(params_r__, params_i__);
  210.  198 :     stan::io::serializer<local_scalar_t__> out__(vars__);
  211.  199 :     int current_statement__ = 0;
  212.  200 :     // suppress unused var warning
  213.  201 :     (void) current_statement__;
  214.  202 :     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  215.  203 :     // suppress unused var warning
  216.  204 :     (void) DUMMY_VAR__;
  217.  205 :     try {
  218.  206 :       local_scalar_t__ y = DUMMY_VAR__;
  219.  207 :       current_statement__ = 1;
  220.  208 :       y = in__.read<local_scalar_t__>();
  221.  209 :       out__.write(y);
  222.  210 :     } catch (const std::exception& e) {
  223.  211 :       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  224.  212 :     }
  225.  213 :   }
  226.  214 :   template <typename VecVar, stan::require_vector_t<VecVar>* = nullptr>
  227.  215 :   inline void
  228.  216 :   transform_inits_impl(const stan::io::var_context& context__, VecVar&
  229.  217 :                        vars__, std::ostream* pstream__ = nullptr) const {
  230.  218 :     using local_scalar_t__ = double;
  231.  219 :     stan::io::serializer<local_scalar_t__> out__(vars__);
  232.  220 :     int current_statement__ = 0;
  233.  221 :     // suppress unused var warning
  234.  222 :     (void) current_statement__;
  235.  223 :     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  236.  224 :     // suppress unused var warning
  237.  225 :     (void) DUMMY_VAR__;
  238.  226 :     try {
  239.  227 :       current_statement__ = 1;
  240.  228 :       context__.validate_dims("parameter initialization", "y", "double",
  241.  229 :         std::vector<size_t>{});
  242.  230 :       local_scalar_t__ y = DUMMY_VAR__;
  243.  231 :       current_statement__ = 1;
  244.  232 :       y = context__.vals_r("y")[(1 - 1)];
  245.  233 :       out__.write(y);
  246.  234 :     } catch (const std::exception& e) {
  247.  235 :       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  248.  236 :     }
  249.  237 :   }
  250.  238 :   inline void
  251.  239 :   get_param_names(std::vector<std::string>& names__, const bool
  252.  240 :                   emit_transformed_parameters__ = true, const bool
  253.  241 :                   emit_generated_quantities__ = true) const {
  254.  242 :     names__ = std::vector<std::string>{"y"};
  255.  243 :     if (emit_transformed_parameters__) {}
  256.  244 :     if (emit_generated_quantities__) {}
  257.  245 :   }
  258.  246 :   inline void
  259.  247 :   get_dims(std::vector<std::vector<size_t>>& dimss__, const bool
  260.  248 :            emit_transformed_parameters__ = true, const bool
  261.  249 :            emit_generated_quantities__ = true) const {
  262.  250 :     dimss__ = std::vector<std::vector<size_t>>{std::vector<size_t>{}};
  263.  251 :     if (emit_transformed_parameters__) {}
  264.  252 :     if (emit_generated_quantities__) {}
  265.  253 :   }
  266.  254 :   inline void
  267.  255 :   constrained_param_names(std::vector<std::string>& param_names__, bool
  268.  256 :                           emit_transformed_parameters__ = true, bool
  269.  257 :                           emit_generated_quantities__ = true) const final {
  270.  258 :     param_names__.emplace_back(std::string() + "y");
  271.  259 :     if (emit_transformed_parameters__) {}
  272.  260 :     if (emit_generated_quantities__) {}
  273.  261 :   }
  274.  262 :   inline void
  275.  263 :   unconstrained_param_names(std::vector<std::string>& param_names__, bool
  276.  264 :                             emit_transformed_parameters__ = true, bool
  277.  265 :                             emit_generated_quantities__ = true) const final {
  278.  266 :     param_names__.emplace_back(std::string() + "y");
  279.  267 :     if (emit_transformed_parameters__) {}
  280.  268 :     if (emit_generated_quantities__) {}
  281.  269 :   }
  282.  270 :   inline std::string get_constrained_sizedtypes() const {
  283.  271 :     return std::string("[{\"name\":\"y\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"}]");
  284.  272 :   }
  285.  273 :   inline std::string get_unconstrained_sizedtypes() const {
  286.  274 :     return std::string("[{\"name\":\"y\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"}]");
  287.  275 :   }
  288.  276 :   // Begin method overload boilerplate
  289.  277 :   template <typename RNG> inline void
  290.  278 :   write_array(RNG& base_rng, Eigen::Matrix<double,-1,1>& params_r,
  291.  279 :               Eigen::Matrix<double,-1,1>& vars, const bool
  292.  280 :               emit_transformed_parameters = true, const bool
  293.  281 :               emit_generated_quantities = true, std::ostream*
  294.  282 :               pstream = nullptr) const {
  295.  283 :     const size_t num_params__ = 1;
  296.  284 :     const size_t num_transformed = emit_transformed_parameters * (0);
  297.  285 :     const size_t num_gen_quantities = emit_generated_quantities * (0);
  298.  286 :     const size_t num_to_write = num_params__ + num_transformed +
  299.  287 :       num_gen_quantities;
  300.  288 :     std::vector<int> params_i;
  301.  289 :     vars = Eigen::Matrix<double,-1,1>::Constant(num_to_write,
  302.  290 :              std::numeric_limits<double>::quiet_NaN());
  303.  291 :     write_array_impl(base_rng, params_r, params_i, vars,
  304.  292 :       emit_transformed_parameters, emit_generated_quantities, pstream);
  305.  293 :   }
  306.  294 :   template <typename RNG> inline void
  307.  295 :   write_array(RNG& base_rng, std::vector<double>& params_r, std::vector<int>&
  308.  296 :               params_i, std::vector<double>& vars, bool
  309.  297 :               emit_transformed_parameters = true, bool
  310.  298 :               emit_generated_quantities = true, std::ostream*
  311.  299 :               pstream = nullptr) const {
  312.  300 :     const size_t num_params__ = 1;
  313.  301 :     const size_t num_transformed = emit_transformed_parameters * (0);
  314.  302 :     const size_t num_gen_quantities = emit_generated_quantities * (0);
  315.  303 :     const size_t num_to_write = num_params__ + num_transformed +
  316.  304 :       num_gen_quantities;
  317.  305 :     vars = std::vector<double>(num_to_write,
  318.  306 :              std::numeric_limits<double>::quiet_NaN());
  319.  307 :     write_array_impl(base_rng, params_r, params_i, vars,
  320.  308 :       emit_transformed_parameters, emit_generated_quantities, pstream);
  321.  309 :   }
  322.  310 :   template <bool propto__, bool jacobian__, typename T_> inline T_
  323.  311 :   log_prob(Eigen::Matrix<T_,-1,1>& params_r, std::ostream* pstream = nullptr) const {
  324.  312 :     Eigen::Matrix<int,-1,1> params_i;
  325.  313 :     return log_prob_impl<propto__, jacobian__>(params_r, params_i, pstream);
  326.  314 :   }
  327.  315 :   template <bool propto__, bool jacobian__, typename T_> inline T_
  328.  316 :   log_prob(std::vector<T_>& params_r, std::vector<int>& params_i,
  329.  317 :            std::ostream* pstream = nullptr) const {
  330.  318 :     return log_prob_impl<propto__, jacobian__>(params_r, params_i, pstream);
  331.  319 :   }
  332.  320 :   inline void
  333.  321 :   transform_inits(const stan::io::var_context& context,
  334.  322 :                   Eigen::Matrix<double,-1,1>& params_r, std::ostream*
  335.  323 :                   pstream = nullptr) const final {
  336.  324 :     std::vector<double> params_r_vec(params_r.size());
  337.  325 :     std::vector<int> params_i;
  338.  326 :     transform_inits(context, params_i, params_r_vec, pstream);
  339.  327 :     params_r = Eigen::Map<Eigen::Matrix<double,-1,1>>(params_r_vec.data(),
  340.  328 :                  params_r_vec.size());
  341.  329 :   }
  342.  330 :   inline void
  343.  331 :   transform_inits(const stan::io::var_context& context, std::vector<int>&
  344.  332 :                   params_i, std::vector<double>& vars, std::ostream*
  345.  333 :                   pstream__ = nullptr) const {
  346.  334 :     vars.resize(num_params_r__);
  347.  335 :     transform_inits_impl(context, vars, pstream__);
  348.  336 :   }
  349.  337 :   inline void
  350.  338 :   unconstrain_array(const std::vector<double>& params_constrained,
  351.  339 :                     std::vector<double>& params_unconstrained, std::ostream*
  352.  340 :                     pstream = nullptr) const {
  353.  341 :     const std::vector<int> params_i;
  354.  342 :     params_unconstrained = std::vector<double>(num_params_r__,
  355.  343 :                              std::numeric_limits<double>::quiet_NaN());
  356.  344 :     unconstrain_array_impl(params_constrained, params_i,
  357.  345 :       params_unconstrained, pstream);
  358.  346 :   }
  359.  347 :   inline void
  360.  348 :   unconstrain_array(const Eigen::Matrix<double,-1,1>& params_constrained,
  361.  349 :                     Eigen::Matrix<double,-1,1>& params_unconstrained,
  362.  350 :                     std::ostream* pstream = nullptr) const {
  363.  351 :     const std::vector<int> params_i;
  364.  352 :     params_unconstrained = Eigen::Matrix<double,-1,1>::Constant(num_params_r__,
  365.  353 :                              std::numeric_limits<double>::quiet_NaN());
  366.  354 :     unconstrain_array_impl(params_constrained, params_i,
  367.  355 :       params_unconstrained, pstream);
  368.  356 :   }
  369.  357 : };
  370.  358 : }
  371.  359 : using stan_model = model54bc75f8511b__namespace::model54bc75f8511b_;
  372.  360 : #ifndef USING_R
  373.  361 : // Boilerplate
  374.  362 : stan::model::model_base&
  375.  363 : new_model(stan::io::var_context& data_context, unsigned int seed,
  376.  364 :           std::ostream* msg_stream) {
  377.  365 :   stan_model* m = new stan_model(data_context, seed, msg_stream);
  378.  366 :   return *m;
  379.  367 : }
  380.  368 : stan::math::profile_map& get_stan_profile_data() {
  381.  369 :   return model54bc75f8511b__namespace::profiles__;
  382.  370 : }
  383.  371 : #endif
  384.  372 : #endif
  385.  373 :
  386.  374 : RCPP_MODULE(stan_fit4model54bc75f8511b__mod) {
  387.  375 :   class_<rstan::stan_fit<stan_model, boost::random::mixmax> >(
  388.  376 :       "stan_fit4model54bc75f8511b_")
  389.  377 :
  390.  378 :       .constructor<SEXP, SEXP, SEXP>()
  391.  379 :
  392.  380 :       .method(
  393.  381 :           "call_sampler",
  394.  382 :           &rstan::stan_fit<stan_model, boost::random::mixmax>::call_sampler)
  395.  383 :       .method(
  396.  384 :           "param_names",
  397.  385 :           &rstan::stan_fit<stan_model, boost::random::mixmax>::param_names)
  398.  386 :       .method("param_names_oi",
  399.  387 :               &rstan::stan_fit<stan_model,
  400.  388 :                                boost::random::mixmax>::param_names_oi)
  401.  389 :       .method("param_fnames_oi",
  402.  390 :               &rstan::stan_fit<stan_model,
  403.  391 :                                boost::random::mixmax>::param_fnames_oi)
  404.  392 :       .method(
  405.  393 :           "param_dims",
  406.  394 :           &rstan::stan_fit<stan_model, boost::random::mixmax>::param_dims)
  407.  395 :       .method("param_dims_oi",
  408.  396 :               &rstan::stan_fit<stan_model,
  409.  397 :                                boost::random::mixmax>::param_dims_oi)
  410.  398 :       .method("update_param_oi",
  411.  399 :               &rstan::stan_fit<stan_model,
  412.  400 :                                boost::random::mixmax>::update_param_oi)
  413.  401 :       .method("param_oi_tidx",
  414.  402 :               &rstan::stan_fit<stan_model,
  415.  403 :                                boost::random::mixmax>::param_oi_tidx)
  416.  404 :       .method("grad_log_prob",
  417.  405 :               &rstan::stan_fit<stan_model,
  418.  406 :                                boost::random::mixmax>::grad_log_prob)
  419.  407 :       .method("log_prob",
  420.  408 :               &rstan::stan_fit<stan_model, boost::random::mixmax>::log_prob)
  421.  409 :       .method("unconstrain_pars",
  422.  410 :               &rstan::stan_fit<stan_model,
  423.  411 :                                boost::random::mixmax>::unconstrain_pars)
  424.  412 :       .method("constrain_pars",
  425.  413 :               &rstan::stan_fit<stan_model,
  426.  414 :                                boost::random::mixmax>::constrain_pars)
  427.  415 :       .method(
  428.  416 :           "num_pars_unconstrained",
  429.  417 :           &rstan::stan_fit<stan_model,
  430.  418 :                            boost::random::mixmax>::num_pars_unconstrained)
  431.  419 :       .method(
  432.  420 :           "unconstrained_param_names",
  433.  421 :           &rstan::stan_fit<
  434.  422 :               stan_model, boost::random::mixmax>::unconstrained_param_names)
  435.  423 :       .method(
  436.  424 :           "constrained_param_names",
  437.  425 :           &rstan::stan_fit<stan_model,
  438.  426 :                            boost::random::mixmax>::constrained_param_names)
  439.  427 :       .method("standalone_gqs",
  440.  428 :               &rstan::stan_fit<stan_model,
  441.  429 :                                boost::random::mixmax>::standalone_gqs);
  442.  430 : }
  443.  431 :
  444.  432 :
  445.  433 : // declarations
  446.  434 : extern "C" {
  447.  435 : SEXP file54bcc3799c( ) ;
  448.  436 : }
  449.  437 :
  450.  438 : // definition
  451.  439 : SEXP file54bcc3799c() {
  452.  440 :  return Rcpp::wrap("anon_model");
  453.  441 : }
  454. make cmd is
  455.   make -f "C:/PROGRA~1/R/R-45~1.0/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-45~1.0/share/make/winshlib.mk" CXX='$(CXX17) $(CXX17STD)' CXXFLAGS='$(CXX17FLAGS)' CXXPICFLAGS='$(CXX17PICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX17LDFLAGS)' SHLIB_LD='$(SHLIB_CXX17LD)' SHLIB="file54bcc3799c.dll" WIN=64 TCLBIN= OBJECTS="file54bcc3799c.o"
  456.  
  457. make would use
  458. g++  -std=gnu++17 -I"C:/PROGRA~1/R/R-45~1.0/include" -DNDEBUG   -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/Rcpp/include/"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppEigen/include/"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppEigen/include/unsupported"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/BH/include" -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/include/src/"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/include/"  -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/include/" -DRCPP_PARALLEL_USE_TBB=1 -I"C:/Users/rosgori/AppData/Local/R/win-library/4.5/rstan/include" -DEIGEN_NO_DEBUG  -DBOOST_DISABLE_ASSERTS  -DBOOST_PENDING_INTEGER_LOG2_HPP  -DSTAN_THREADS  -DUSE_STANC3 -DSTRICT_R_HEADERS  -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION  -D_HAS_AUTO_PTR_ETC=0  -include "C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/include/stan/math/prim/fun/Eigen.hpp"  -std=c++1y    -I"C:/rtools45/x86_64-w64-mingw32.static.posix/include"      -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign    -c file54bcc3799c.cpp -o file54bcc3799c.o
  459. if test "zfile54bcc3799c.o" != "z"; then \
  460.   if test -e "file54bcc3799c-win.def"; then \
  461.     echo g++  -shared -s -static-libgcc -o file54bcc3799c.dll file54bcc3799c-win.def file54bcc3799c.o  "C:/Users/rosgori/AppData/Local/R/win-library/4.5/rstan/lib/x64/libStanServices.a" -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/libs/x64" -lStanHeaders -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64" -ltbb -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/libs/x64" -lRcppParallel -LC:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64 -ltbb -ltbbmalloc -L"C:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64" -L"C:/rtools45/x86_64-w64-mingw32.static.posix/lib"  -L"C:/PROGRA~1/R/R-45~1.0/bin/x64" -lR ; \
  462.     g++  -shared -s -static-libgcc -o file54bcc3799c.dll file54bcc3799c-win.def file54bcc3799c.o  "C:/Users/rosgori/AppData/Local/R/win-library/4.5/rstan/lib/x64/libStanServices.a" -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/libs/x64" -lStanHeaders -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64" -ltbb -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/libs/x64" -lRcppParallel -LC:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64 -ltbb -ltbbmalloc -L"C:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64" -L"C:/rtools45/x86_64-w64-mingw32.static.posix/lib"  -L"C:/PROGRA~1/R/R-45~1.0/bin/x64" -lR ; \
  463.   else \
  464.     echo EXPORTS > tmp.def; \
  465.     nm file54bcc3799c.o | sed -n 's/^.* [BCDRT] / /p' | sed -e '/[.]refptr[.]/d' -e '/[.]weak[.]/d' | sed 's/[^ ][^ ]*/"&"/g'  >> tmp.def; \
  466.     echo g++  -shared -s -static-libgcc -o file54bcc3799c.dll tmp.def file54bcc3799c.o  "C:/Users/rosgori/AppData/Local/R/win-library/4.5/rstan/lib/x64/libStanServices.a" -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/libs/x64" -lStanHeaders -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64" -ltbb -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/libs/x64" -lRcppParallel -LC:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64 -ltbb -ltbbmalloc -L"C:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64" -L"C:/rtools45/x86_64-w64-mingw32.static.posix/lib"  -L"C:/PROGRA~1/R/R-45~1.0/bin/x64" -lR ; \
  467.     g++  -shared -s -static-libgcc -o file54bcc3799c.dll tmp.def file54bcc3799c.o  "C:/Users/rosgori/AppData/Local/R/win-library/4.5/rstan/lib/x64/libStanServices.a" -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/libs/x64" -lStanHeaders -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64" -ltbb -L"C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/libs/x64" -lRcppParallel -LC:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppParallel/lib/x64 -ltbb -ltbbmalloc -L"C:/rtools45/x86_64-w64-mingw32.static.posix/lib/x64" -L"C:/rtools45/x86_64-w64-mingw32.static.posix/lib"  -L"C:/PROGRA~1/R/R-45~1.0/bin/x64" -lR ; \
  468.     rm -f tmp.def; \
  469.   fi \
  470. fi
  471.  
  472. ERROR(s) during compilation: source code errors or compiler configuration errors!
  473.  
  474. Program source:
  475.   1:
  476.   2: // includes from the plugin
  477.   3: // [[Rcpp::plugins(cpp14)]]
  478.   4:
  479.   5:
  480.   6: // user includes
  481.   7: #include <Rcpp.h>
  482.   8: using namespace Rcpp;
  483.   9: #ifndef MODELS_HPP
  484.  10: #define MODELS_HPP
  485.  11: #define STAN__SERVICES__COMMAND_HPP
  486.  12: #include <rstan/rstaninc.hpp>
  487.  13: #ifndef USE_STANC3
  488.  14: #define USE_STANC3
  489.  15: #endif
  490.  16: // Code generated by stanc v2.36.0-112-g93cda2f
  491.  17: #include <stan/model/model_header.hpp>
  492.  18: namespace model54bc75f8511b__namespace {
  493.  19: using stan::model::model_base_crtp;
  494.  20: using namespace stan::math;
  495.  21: stan::math::profile_map profiles__;
  496.  22: static constexpr std::array<const char*, 4> locations_array__ =
  497.  23:   {" (found before start of program)",
  498.  24:   " (in 'string', line 1, column 32 to column 39)",
  499.  25:   " (in 'string', line 1, column 48 to column 69)",
  500.  26:   " (in 'string', line 1, column 6 to column 18)"};
  501.  27: class model54bc75f8511b_ final : public model_base_crtp<model54bc75f8511b_> {
  502.  28: private:
  503.  29:   double y_mean;
  504.  30: public:
  505.  31:   ~model54bc75f8511b_() {}
  506.  32:   model54bc75f8511b_(stan::io::var_context& context__, unsigned int
  507.  33:                      random_seed__ = 0, std::ostream* pstream__ = nullptr)
  508.  34:       : model_base_crtp(0) {
  509.  35:     int current_statement__ = 0;
  510.  36:     // suppress unused var warning
  511.  37:     (void) current_statement__;
  512.  38:     using local_scalar_t__ = double;
  513.  39:     auto base_rng__ = stan::services::util::create_rng(random_seed__, 0);
  514.  40:     // suppress unused var warning
  515.  41:     (void) base_rng__;
  516.  42:     static constexpr const char* function__ =
  517.  43:       "model54bc75f8511b__namespace::model54bc75f8511b_";
  518.  44:     // suppress unused var warning
  519.  45:     (void) function__;
  520.  46:     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  521.  47:     // suppress unused var warning
  522.  48:     (void) DUMMY_VAR__;
  523.  49:     try {
  524.  50:       current_statement__ = 3;
  525.  51:       context__.validate_dims("data initialization", "y_mean", "double",
  526.  52:         std::vector<size_t>{});
  527.  53:       y_mean = std::numeric_limits<double>::quiet_NaN();
  528.  54:       current_statement__ = 3;
  529.  55:       y_mean = context__.vals_r("y_mean")[(1 - 1)];
  530.  56:     } catch (const std::exception& e) {
  531.  57:       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  532.  58:     }
  533.  59:     num_params_r__ = 1;
  534.  60:   }
  535.  61:   inline std::string model_name() const final {
  536.  62:     return "model54bc75f8511b_";
  537.  63:   }
  538.  64:   inline std::vector<std::string> model_compile_info() const noexcept {
  539.  65:     return std::vector<std::string>{"stanc_version = stanc3 v2.36.0-112-g93cda2f",
  540.  66:              "stancflags = --"};
  541.  67:   }
  542.  68:   // Base log prob
  543.  69:   template <bool propto__, bool jacobian__, typename VecR, typename VecI,
  544.  70:             stan::require_vector_like_t<VecR>* = nullptr,
  545.  71:             stan::require_vector_like_vt<std::is_integral, VecI>* = nullptr,
  546.  72:             stan::require_not_st_var<VecR>* = nullptr>
  547.  73:   inline stan::scalar_type_t<VecR>
  548.  74:   log_prob_impl(VecR& params_r__, VecI& params_i__, std::ostream*
  549.  75:                 pstream__ = nullptr) const {
  550.  76:     using T__ = stan::scalar_type_t<VecR>;
  551.  77:     using local_scalar_t__ = T__;
  552.  78:     T__ lp__(0.0);
  553.  79:     stan::math::accumulator<T__> lp_accum__;
  554.  80:     stan::io::deserializer<local_scalar_t__> in__(params_r__, params_i__);
  555.  81:     int current_statement__ = 0;
  556.  82:     // suppress unused var warning
  557.  83:     (void) current_statement__;
  558.  84:     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  559.  85:     // suppress unused var warning
  560.  86:     (void) DUMMY_VAR__;
  561.  87:     static constexpr const char* function__ =
  562.  88:       "model54bc75f8511b__namespace::log_prob";
  563.  89:     // suppress unused var warning
  564.  90:     (void) function__;
  565.  91:     try {
  566.  92:       current_statement__ = 1;
  567.  93:       auto y = in__.template read<local_scalar_t__>();
  568.  94:       {
  569.  95:         current_statement__ = 2;
  570.  96:         lp_accum__.add(stan::math::normal_lpdf<propto__>(y, y_mean, 1));
  571.  97:       }
  572.  98:     } catch (const std::exception& e) {
  573.  99:       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  574. 100:     }
  575. 101:     lp_accum__.add(lp__);
  576. 102:     return lp_accum__.sum();
  577. 103:   }
  578. 104:   // Reverse mode autodiff log prob
  579. 105:   template <bool propto__, bool jacobian__, typename VecR, typename VecI,
  580. 106:             stan::require_vector_like_t<VecR>* = nullptr,
  581. 107:             stan::require_vector_like_vt<std::is_integral, VecI>* = nullptr,
  582. 108:             stan::require_st_var<VecR>* = nullptr>
  583. 109:   inline stan::scalar_type_t<VecR>
  584. 110:   log_prob_impl(VecR& params_r__, VecI& params_i__, std::ostream*
  585. 111:                 pstream__ = nullptr) const {
  586. 112:     using T__ = stan::scalar_type_t<VecR>;
  587. 113:     using local_scalar_t__ = T__;
  588. 114:     T__ lp__(0.0);
  589. 115:     stan::math::accumulator<T__> lp_accum__;
  590. 116:     stan::io::deserializer<local_scalar_t__> in__(params_r__, params_i__);
  591. 117:     int current_statement__ = 0;
  592. 118:     // suppress unused var warning
  593. 119:     (void) current_statement__;
  594. 120:     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  595. 121:     // suppress unused var warning
  596. 122:     (void) DUMMY_VAR__;
  597. 123:     static constexpr const char* function__ =
  598. 124:       "model54bc75f8511b__namespace::log_prob";
  599. 125:     // suppress unused var warning
  600. 126:     (void) function__;
  601. 127:     try {
  602. 128:       current_statement__ = 1;
  603. 129:       auto y = in__.template read<local_scalar_t__>();
  604. 130:       {
  605. 131:         current_statement__ = 2;
  606. 132:         lp_accum__.add(stan::math::normal_lpdf<propto__>(y, y_mean, 1));
  607. 133:       }
  608. 134:     } catch (const std::exception& e) {
  609. 135:       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  610. 136:     }
  611. 137:     lp_accum__.add(lp__);
  612. 138:     return lp_accum__.sum();
  613. 139:   }
  614. 140:   template <typename RNG, typename VecR, typename VecI, typename VecVar,
  615. 141:             stan::require_vector_like_vt<std::is_floating_point,
  616. 142:             VecR>* = nullptr, stan::require_vector_like_vt<std::is_integral,
  617. 143:             VecI>* = nullptr, stan::require_vector_vt<std::is_floating_point,
  618. 144:             VecVar>* = nullptr>
  619. 145:   inline void
  620. 146:   write_array_impl(RNG& base_rng__, VecR& params_r__, VecI& params_i__,
  621. 147:                    VecVar& vars__, const bool
  622. 148:                    emit_transformed_parameters__ = true, const bool
  623. 149:                    emit_generated_quantities__ = true, std::ostream*
  624. 150:                    pstream__ = nullptr) const {
  625. 151:     using local_scalar_t__ = double;
  626. 152:     stan::io::deserializer<local_scalar_t__> in__(params_r__, params_i__);
  627. 153:     stan::io::serializer<local_scalar_t__> out__(vars__);
  628. 154:     static constexpr bool propto__ = true;
  629. 155:     // suppress unused var warning
  630. 156:     (void) propto__;
  631. 157:     double lp__ = 0.0;
  632. 158:     // suppress unused var warning
  633. 159:     (void) lp__;
  634. 160:     int current_statement__ = 0;
  635. 161:     // suppress unused var warning
  636. 162:     (void) current_statement__;
  637. 163:     stan::math::accumulator<double> lp_accum__;
  638. 164:     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  639. 165:     // suppress unused var warning
  640. 166:     (void) DUMMY_VAR__;
  641. 167:     constexpr bool jacobian__ = false;
  642. 168:     // suppress unused var warning
  643. 169:     (void) jacobian__;
  644. 170:     static constexpr const char* function__ =
  645. 171:       "model54bc75f8511b__namespace::write_array";
  646. 172:     // suppress unused var warning
  647. 173:     (void) function__;
  648. 174:     try {
  649. 175:       current_statement__ = 1;
  650. 176:       auto y = in__.template read<local_scalar_t__>();
  651. 177:       out__.write(y);
  652. 178:       if (stan::math::logical_negation(
  653. 179:             (stan::math::primitive_value(emit_transformed_parameters__) ||
  654. 180:             stan::math::primitive_value(emit_generated_quantities__)))) {
  655. 181:         return ;
  656. 182:       }
  657. 183:       if (stan::math::logical_negation(emit_generated_quantities__)) {
  658. 184:         return ;
  659. 185:       }
  660. 186:     } catch (const std::exception& e) {
  661. 187:       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  662. 188:     }
  663. 189:   }
  664. 190:   template <typename VecVar, typename VecI,
  665. 191:             stan::require_vector_t<VecVar>* = nullptr,
  666. 192:             stan::require_vector_like_vt<std::is_integral, VecI>* = nullptr>
  667. 193:   inline void
  668. 194:   unconstrain_array_impl(const VecVar& params_r__, const VecI& params_i__,
  669. 195:                          VecVar& vars__, std::ostream* pstream__ = nullptr) const {
  670. 196:     using local_scalar_t__ = double;
  671. 197:     stan::io::deserializer<local_scalar_t__> in__(params_r__, params_i__);
  672. 198:     stan::io::serializer<local_scalar_t__> out__(vars__);
  673. 199:     int current_statement__ = 0;
  674. 200:     // suppress unused var warning
  675. 201:     (void) current_statement__;
  676. 202:     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  677. 203:     // suppress unused var warning
  678. 204:     (void) DUMMY_VAR__;
  679. 205:     try {
  680. 206:       local_scalar_t__ y = DUMMY_VAR__;
  681. 207:       current_statement__ = 1;
  682. 208:       y = in__.read<local_scalar_t__>();
  683. 209:       out__.write(y);
  684. 210:     } catch (const std::exception& e) {
  685. 211:       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  686. 212:     }
  687. 213:   }
  688. 214:   template <typename VecVar, stan::require_vector_t<VecVar>* = nullptr>
  689. 215:   inline void
  690. 216:   transform_inits_impl(const stan::io::var_context& context__, VecVar&
  691. 217:                        vars__, std::ostream* pstream__ = nullptr) const {
  692. 218:     using local_scalar_t__ = double;
  693. 219:     stan::io::serializer<local_scalar_t__> out__(vars__);
  694. 220:     int current_statement__ = 0;
  695. 221:     // suppress unused var warning
  696. 222:     (void) current_statement__;
  697. 223:     local_scalar_t__ DUMMY_VAR__(std::numeric_limits<double>::quiet_NaN());
  698. 224:     // suppress unused var warning
  699. 225:     (void) DUMMY_VAR__;
  700. 226:     try {
  701. 227:       current_statement__ = 1;
  702. 228:       context__.validate_dims("parameter initialization", "y", "double",
  703. 229:         std::vector<size_t>{});
  704. 230:       local_scalar_t__ y = DUMMY_VAR__;
  705. 231:       current_statement__ = 1;
  706. 232:       y = context__.vals_r("y")[(1 - 1)];
  707. 233:       out__.write(y);
  708. 234:     } catch (const std::exception& e) {
  709. 235:       stan::lang::rethrow_located(e, locations_array__[current_statement__]);
  710. 236:     }
  711. 237:   }
  712. 238:   inline void
  713. 239:   get_param_names(std::vector<std::string>& names__, const bool
  714. 240:                   emit_transformed_parameters__ = true, const bool
  715. 241:                   emit_generated_quantities__ = true) const {
  716. 242:     names__ = std::vector<std::string>{"y"};
  717. 243:     if (emit_transformed_parameters__) {}
  718. 244:     if (emit_generated_quantities__) {}
  719. 245:   }
  720. 246:   inline void
  721. 247:   get_dims(std::vector<std::vector<size_t>>& dimss__, const bool
  722. 248:            emit_transformed_parameters__ = true, const bool
  723. 249:            emit_generated_quantities__ = true) const {
  724. 250:     dimss__ = std::vector<std::vector<size_t>>{std::vector<size_t>{}};
  725. 251:     if (emit_transformed_parameters__) {}
  726. 252:     if (emit_generated_quantities__) {}
  727. 253:   }
  728. 254:   inline void
  729. 255:   constrained_param_names(std::vector<std::string>& param_names__, bool
  730. 256:                           emit_transformed_parameters__ = true, bool
  731. 257:                           emit_generated_quantities__ = true) const final {
  732. 258:     param_names__.emplace_back(std::string() + "y");
  733. 259:     if (emit_transformed_parameters__) {}
  734. 260:     if (emit_generated_quantities__) {}
  735. 261:   }
  736. 262:   inline void
  737. 263:   unconstrained_param_names(std::vector<std::string>& param_names__, bool
  738. 264:                             emit_transformed_parameters__ = true, bool
  739. 265:                             emit_generated_quantities__ = true) const final {
  740. 266:     param_names__.emplace_back(std::string() + "y");
  741. 267:     if (emit_transformed_parameters__) {}
  742. 268:     if (emit_generated_quantities__) {}
  743. 269:   }
  744. 270:   inline std::string get_constrained_sizedtypes() const {
  745. 271:     return std::string("[{\"name\":\"y\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"}]");
  746. 272:   }
  747. 273:   inline std::string get_unconstrained_sizedtypes() const {
  748. 274:     return std::string("[{\"name\":\"y\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"}]");
  749. 275:   }
  750. 276:   // Begin method overload boilerplate
  751. 277:   template <typename RNG> inline void
  752. 278:   write_array(RNG& base_rng, Eigen::Matrix<double,-1,1>& params_r,
  753. 279:               Eigen::Matrix<double,-1,1>& vars, const bool
  754. 280:               emit_transformed_parameters = true, const bool
  755. 281:               emit_generated_quantities = true, std::ostream*
  756. 282:               pstream = nullptr) const {
  757. 283:     const size_t num_params__ = 1;
  758. 284:     const size_t num_transformed = emit_transformed_parameters * (0);
  759. 285:     const size_t num_gen_quantities = emit_generated_quantities * (0);
  760. 286:     const size_t num_to_write = num_params__ + num_transformed +
  761. 287:       num_gen_quantities;
  762. 288:     std::vector<int> params_i;
  763. 289:     vars = Eigen::Matrix<double,-1,1>::Constant(num_to_write,
  764. 290:              std::numeric_limits<double>::quiet_NaN());
  765. 291:     write_array_impl(base_rng, params_r, params_i, vars,
  766. 292:       emit_transformed_parameters, emit_generated_quantities, pstream);
  767. 293:   }
  768. 294:   template <typename RNG> inline void
  769. 295:   write_array(RNG& base_rng, std::vector<double>& params_r, std::vector<int>&
  770. 296:               params_i, std::vector<double>& vars, bool
  771. 297:               emit_transformed_parameters = true, bool
  772. 298:               emit_generated_quantities = true, std::ostream*
  773. 299:               pstream = nullptr) const {
  774. 300:     const size_t num_params__ = 1;
  775. 301:     const size_t num_transformed = emit_transformed_parameters * (0);
  776. 302:     const size_t num_gen_quantities = emit_generated_quantities * (0);
  777. 303:     const size_t num_to_write = num_params__ + num_transformed +
  778. 304:       num_gen_quantities;
  779. 305:     vars = std::vector<double>(num_to_write,
  780. 306:              std::numeric_limits<double>::quiet_NaN());
  781. 307:     write_array_impl(base_rng, params_r, params_i, vars,
  782. 308:       emit_transformed_parameters, emit_generated_quantities, pstream);
  783. 309:   }
  784. 310:   template <bool propto__, bool jacobian__, typename T_> inline T_
  785. 311:   log_prob(Eigen::Matrix<T_,-1,1>& params_r, std::ostream* pstream = nullptr) const {
  786. 312:     Eigen::Matrix<int,-1,1> params_i;
  787. 313:     return log_prob_impl<propto__, jacobian__>(params_r, params_i, pstream);
  788. 314:   }
  789. 315:   template <bool propto__, bool jacobian__, typename T_> inline T_
  790. 316:   log_prob(std::vector<T_>& params_r, std::vector<int>& params_i,
  791. 317:            std::ostream* pstream = nullptr) const {
  792. 318:     return log_prob_impl<propto__, jacobian__>(params_r, params_i, pstream);
  793. 319:   }
  794. 320:   inline void
  795. 321:   transform_inits(const stan::io::var_context& context,
  796. 322:                   Eigen::Matrix<double,-1,1>& params_r, std::ostream*
  797. 323:                   pstream = nullptr) const final {
  798. 324:     std::vector<double> params_r_vec(params_r.size());
  799. 325:     std::vector<int> params_i;
  800. 326:     transform_inits(context, params_i, params_r_vec, pstream);
  801. 327:     params_r = Eigen::Map<Eigen::Matrix<double,-1,1>>(params_r_vec.data(),
  802. 328:                  params_r_vec.size());
  803. 329:   }
  804. 330:   inline void
  805. 331:   transform_inits(const stan::io::var_context& context, std::vector<int>&
  806. 332:                   params_i, std::vector<double>& vars, std::ostream*
  807. 333:                   pstream__ = nullptr) const {
  808. 334:     vars.resize(num_params_r__);
  809. 335:     transform_inits_impl(context, vars, pstream__);
  810. 336:   }
  811. 337:   inline void
  812. 338:   unconstrain_array(const std::vector<double>& params_constrained,
  813. 339:                     std::vector<double>& params_unconstrained, std::ostream*
  814. 340:                     pstream = nullptr) const {
  815. 341:     const std::vector<int> params_i;
  816. 342:     params_unconstrained = std::vector<double>(num_params_r__,
  817. 343:                              std::numeric_limits<double>::quiet_NaN());
  818. 344:     unconstrain_array_impl(params_constrained, params_i,
  819. 345:       params_unconstrained, pstream);
  820. 346:   }
  821. 347:   inline void
  822. 348:   unconstrain_array(const Eigen::Matrix<double,-1,1>& params_constrained,
  823. 349:                     Eigen::Matrix<double,-1,1>& params_unconstrained,
  824. 350:                     std::ostream* pstream = nullptr) const {
  825. 351:     const std::vector<int> params_i;
  826. 352:     params_unconstrained = Eigen::Matrix<double,-1,1>::Constant(num_params_r__,
  827. 353:                              std::numeric_limits<double>::quiet_NaN());
  828. 354:     unconstrain_array_impl(params_constrained, params_i,
  829. 355:       params_unconstrained, pstream);
  830. 356:   }
  831. 357: };
  832. 358: }
  833. 359: using stan_model = model54bc75f8511b__namespace::model54bc75f8511b_;
  834. 360: #ifndef USING_R
  835. 361: // Boilerplate
  836. 362: stan::model::model_base&
  837. 363: new_model(stan::io::var_context& data_context, unsigned int seed,
  838. 364:           std::ostream* msg_stream) {
  839. 365:   stan_model* m = new stan_model(data_context, seed, msg_stream);
  840. 366:   return *m;
  841. 367: }
  842. 368: stan::math::profile_map& get_stan_profile_data() {
  843. 369:   return model54bc75f8511b__namespace::profiles__;
  844. 370: }
  845. 371: #endif
  846. 372: #endif
  847. 373:
  848. 374: RCPP_MODULE(stan_fit4model54bc75f8511b__mod) {
  849. 375:   class_<rstan::stan_fit<stan_model, boost::random::mixmax> >(
  850. 376:       "stan_fit4model54bc75f8511b_")
  851. 377:
  852. 378:       .constructor<SEXP, SEXP, SEXP>()
  853. 379:
  854. 380:       .method(
  855. 381:           "call_sampler",
  856. 382:           &rstan::stan_fit<stan_model, boost::random::mixmax>::call_sampler)
  857. 383:       .method(
  858. 384:           "param_names",
  859. 385:           &rstan::stan_fit<stan_model, boost::random::mixmax>::param_names)
  860. 386:       .method("param_names_oi",
  861. 387:               &rstan::stan_fit<stan_model,
  862. 388:                                boost::random::mixmax>::param_names_oi)
  863. 389:       .method("param_fnames_oi",
  864. 390:               &rstan::stan_fit<stan_model,
  865. 391:                                boost::random::mixmax>::param_fnames_oi)
  866. 392:       .method(
  867. 393:           "param_dims",
  868. 394:           &rstan::stan_fit<stan_model, boost::random::mixmax>::param_dims)
  869. 395:       .method("param_dims_oi",
  870. 396:               &rstan::stan_fit<stan_model,
  871. 397:                                boost::random::mixmax>::param_dims_oi)
  872. 398:       .method("update_param_oi",
  873. 399:               &rstan::stan_fit<stan_model,
  874. 400:                                boost::random::mixmax>::update_param_oi)
  875. 401:       .method("param_oi_tidx",
  876. 402:               &rstan::stan_fit<stan_model,
  877. 403:                                boost::random::mixmax>::param_oi_tidx)
  878. 404:       .method("grad_log_prob",
  879. 405:               &rstan::stan_fit<stan_model,
  880. 406:                                boost::random::mixmax>::grad_log_prob)
  881. 407:       .method("log_prob",
  882. 408:               &rstan::stan_fit<stan_model, boost::random::mixmax>::log_prob)
  883. 409:       .method("unconstrain_pars",
  884. 410:               &rstan::stan_fit<stan_model,
  885. 411:                                boost::random::mixmax>::unconstrain_pars)
  886. 412:       .method("constrain_pars",
  887. 413:               &rstan::stan_fit<stan_model,
  888. 414:                                boost::random::mixmax>::constrain_pars)
  889. 415:       .method(
  890. 416:           "num_pars_unconstrained",
  891. 417:           &rstan::stan_fit<stan_model,
  892. 418:                            boost::random::mixmax>::num_pars_unconstrained)
  893. 419:       .method(
  894. 420:           "unconstrained_param_names",
  895. 421:           &rstan::stan_fit<
  896. 422:               stan_model, boost::random::mixmax>::unconstrained_param_names)
  897. 423:       .method(
  898. 424:           "constrained_param_names",
  899. 425:           &rstan::stan_fit<stan_model,
  900. 426:                            boost::random::mixmax>::constrained_param_names)
  901. 427:       .method("standalone_gqs",
  902. 428:               &rstan::stan_fit<stan_model,
  903. 429:                                boost::random::mixmax>::standalone_gqs);
  904. 430: }
  905. 431:
  906. 432:
  907. 433: // declarations
  908. 434: extern "C" {
  909. 435: SEXP file54bcc3799c( ) ;
  910. 436: }
  911. 437:
  912. 438: // definition
  913. 439: SEXP file54bcc3799c() {
  914. 440:  return Rcpp::wrap("anon_model");
  915. 441: }
  916.  
  917. Compilation ERROR, function(s)/method(s) not created!
  918. Error en compileCode(f, code, language = language, verbose = verbose):
  919.   ric.hpp:22:0:   required from 'double stan::mcmc::dense_e_metric<Model, BaseRNG>::T(stan::mcmc::dense_e_point&) [with Model = model54bc75f8511b__namespace::model54bc75f8511b_; BaseRNG = boost::random::mixmax_engine<17, 36, 0>]'
  920.    22 |     return 0.5 * z.p.transpose() * z.inv_e_metric_ * z.p;
  921. C:/Users/rosgori/AppData/Local/R/win-library/4.5/StanHeaders/include/src/stan/mcmc/hmc/hamiltonians/dense_e_metric.hpp:21:0:   required from here
  922.    21 |   double T(dense_e_point& z) {
  923. C:/Users/rosgori/AppData/Local/R/win-library/4.5/RcppEigen/include/Eigen/src/Core/DenseCoeffsBase.h:654:74: warning: ignoring attributes on template argument 'Eigen::internal::packet_traits<double>::type' {aka '__m128d'} [-Wignored-attributes]
  924.   654 |   return internal::first_aligned<int(unpacket_traits<DefaultPacketType>::alignment),Derived>(m);
  925.       |                                                                          ^~~~~~~~~
  926. make: *** [C:/PROGRA~1/R/R-45~1.0/etc/x64/Makeconf:296: file54bcc3799c.o
Tags: rstan
Advertisement
Add Comment
Please, Sign In to add comment