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 0, 1 or 2; found dist = ", dist);
108 vector prior_dist_params) {
110 int num_params = num_elements(params);
111 for (
id in 1:num_params) {
112 real p1 = prior_dist_params[params_id];
113 real p2 = prior_dist_params[params_id + 1];
114 if (prior_dist[
id] == 0) {
115 params[id] ~ lognormal(p1, p2);
116 }
else if (prior_dist[
id] == 1) {
117 params[id] ~ gamma(p1, p2);
118 }
else if (prior_dist[
id] == 2) {
119 params[id] ~ normal(p1, p2);
121 reject(
"dist must be 0, 1 or 2; found dist = ", prior_dist[
id]);
154 vector init_dist_params,
155 vector init_lower, vector init_upper,
156 int param_id_R0, vector R, array[] real R_mean) {
158 for (i in 1:num_elements(init_param_ids)) {
161 if (init_param_ids[i] == param_id_R0) {
163 sampled_value = R_mean[1];
165 reject(
"no init param registered for id ", init_param_ids[i]);
168 init_value, init_dists[i],
169 init_dist_params[params_id], init_dist_params[params_id + 1],
170 init_lower[i], init_upper[i]
172 target += log(init_value) - log(sampled_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, array[] real R_mean)
real get_param(int id, array[] int params_fixed_lookup, array[] int params_variable_lookup, vector params_value, vector params)