25 array[]
int params_fixed_lookup,
26 array[]
int params_variable_lookup,
27 vector params_value, vector params) {
30 }
else if (params_fixed_lookup[
id]) {
31 return params_value[params_fixed_lookup[id]];
33 return params[params_variable_lookup[id]];
53 array[]
int params_fixed_lookup,
54 array[]
int params_variable_lookup,
55 vector params_value, matrix params) {
56 int n_samples = rows(params);
58 return rep_vector(0, n_samples) ;
59 }
else if (params_fixed_lookup[
id]) {
60 return rep_vector(params_value[params_fixed_lookup[
id]], n_samples);
62 return params[, params_variable_lookup[id]];
86 value ~ lognormal(p1, p2) T[lb, ub];
87 }
else if (dist == 1) {
88 value ~ gamma(p1, p2) T[lb, ub];
89 }
else if (dist == 2) {
90 value ~ normal(p1, p2) T[lb, ub];
92 reject(
"dist must be <= 2");
110 vector prior_dist_params, vector params_lower,
111 vector params_upper) {
113 int num_params = num_elements(params);
114 for (
id in 1:num_params) {
116 params[
id], prior_dist[
id],
117 prior_dist_params[params_id], prior_dist_params[params_id + 1],
118 params_lower[
id], params_upper[
id]
146 vector init_dist_params,
147 vector init_lower, vector init_upper,
148 int param_id_R0, vector R) {
150 for (i in 1:num_elements(init_param_ids)) {
152 if (init_param_ids[i] == param_id_R0) {
155 reject(
"no init param registered for id ", init_param_ids[i]);
158 init_value, init_dists[i],
159 init_dist_params[params_id], init_dist_params[params_id + 1],
160 init_lower[i], init_upper[i]
162 target += log(init_value);
void init_priors_lp(array[] int init_param_ids, array[] int init_dists, vector init_dist_params, vector init_lower, vector init_upper, int param_id_R0, vector R)
void params_lp(vector params, array[] int prior_dist, vector prior_dist_params, vector params_lower, vector params_upper)
real get_param(int id, array[] int params_fixed_lookup, array[] int params_variable_lookup, vector params_value, vector params)
void apply_prior_lp(real value, int dist, real p1, real p2, real lb, real ub)