30  real shape = params[1];
 
   31  real rate = params[2];
 
   32  real shape_1 = shape + 1;
 
   33  real log_window = log(pwindow);
 
   35  real log_F_T = gamma_lcdf(d | shape, rate);
 
   36  real log_F_T_kp1 = gamma_lcdf(d | shape_1, rate);
 
   38  real log_delta_F_T_kp1;
 
   43    real log_F_T_q = gamma_lcdf(q | shape, rate);
 
   44    real log_F_T_q_kp1 = gamma_lcdf(q | shape_1, rate);
 
   47    log_delta_F_T_kp1 = log_diff_exp(log_F_T_kp1, log_F_T_q_kp1);
 
   48    log_delta_F_T_k = log_diff_exp(log_F_T, log_F_T_q);
 
   50    log_F_Splus = log_diff_exp(
 
   53        log(shape * inv(rate)) + log_delta_F_T_kp1,
 
   54        log(d - pwindow) + log_delta_F_T_k
 
   58    log_delta_F_T_kp1 = log_F_T_kp1;
 
   59    log_delta_F_T_k = log_F_T;
 
   61    log_F_Splus = log_diff_exp(
 
   64        log(shape * inv(rate)) + log_delta_F_T_kp1,
 
   65        log(pwindow - d) + log_delta_F_T_k
 
 
   87  real sigma = params[2];
 
   88  real mu_sigma2 = mu + square(sigma);
 
   89  real log_window = log(pwindow);
 
   91  real log_F_T = lognormal_lcdf(d | mu, sigma);
 
   92  real log_F_T_mu_sigma2 = lognormal_lcdf(d | mu_sigma2, sigma);
 
   94  real log_delta_F_T_mu_sigma;
 
   99    real log_F_T_q = lognormal_lcdf(q | mu, sigma);
 
  100    real log_F_T_q_mu_sigma2 = lognormal_lcdf(q | mu_sigma2, sigma);
 
  103    log_delta_F_T_mu_sigma = log_diff_exp(
 
  104      log_F_T_mu_sigma2, log_F_T_q_mu_sigma2
 
  106    log_delta_F_T = log_diff_exp(log_F_T, log_F_T_q);
 
  108    log_F_Splus = log_diff_exp(
 
  111        (mu + 0.5 * square(sigma)) + log_delta_F_T_mu_sigma,
 
  112        log(d - pwindow) + log_delta_F_T
 
  116    log_delta_F_T_mu_sigma = log_F_T_mu_sigma2;
 
  117    log_delta_F_T = log_F_T;
 
  119    log_F_Splus = log_diff_exp(
 
  122        (mu + 0.5 * square(sigma)) + log_delta_F_T_mu_sigma,
 
  123        log(pwindow - d) + log_delta_F_T
 
 
  164  real shape = params[1];
 
  165  real scale = params[2];
 
  166  real log_window = log(pwindow);
 
  168  real log_F_T = weibull_lcdf(d | shape, scale);
 
  175    real log_F_T_q = weibull_lcdf(q | shape, scale);
 
  177    log_delta_g = log_diff_exp(
 
  181    log_delta_F_T = log_diff_exp(log_F_T, log_F_T_q);
 
  183    log_F_Splus = log_diff_exp(
 
  186        log(scale) + log_delta_g,
 
  187        log(d - pwindow) + log_delta_F_T
 
  192    log_delta_F_T = log_F_T;
 
  194    log_F_Splus = log_diff_exp(
 
  197        log(scale) + log_delta_g,
 
  198        log(pwindow - d) + log_delta_F_T
 
 
  222                                           data real pwindow, data real D,
 
  224                                           array[] real primary_params) {
 
  228  if (d <= 0) 
return negative_infinity();
 
  229  if (d >= D) 
return 0;
 
  231  real q = max({d - pwindow, 0});
 
  233  if (dist_id == 2 && primary_id == 1) {
 
  236  } 
else if (dist_id == 1 && primary_id == 1) {
 
  239  } 
else if (dist_id == 3 && primary_id == 1) {
 
  244    return negative_infinity();
 
  249      D | dist_id, params, pwindow, positive_infinity(),
 
  250      primary_id, primary_params
 
  252    result = result - log_cdf_D;
 
 
real primarycensored_lcdf(data real d, int dist_id, array[] real params, data real pwindow, data real D, int primary_id, array[] real primary_params)
 
real primarycensored_analytical_cdf(data real d, int dist_id, array[] real params, data real pwindow, data real D, int primary_id, array[] real primary_params)
 
real primarycensored_analytical_lcdf(data real d, int dist_id, array[] real params, data real pwindow, data real D, int primary_id, array[] real primary_params)