Hi,

I can’t figure out what I’m doing wrong here. I’m pretty sure I did this already and worked fine.

I have a regression based on a gamma likelihood without any link. So the first parameter has to be positive.

The first parameter is the regression:

\alpha_1 - log(freq)\cdot \alpha_2 - freq \cdot \alpha_3,

where freq and pred are vectors.

So I want to force \alpha_1 to be larger than 0 or the absolute value of - log(freq)\cdot \alpha_2 - freq \cdot \alpha_3.

To force this, I do this:

` real<lower = fmax(0, -min(- alpha_2 * log(freq) - alpha_3 * pred)) > alpha_1;`

But now I also need to truncate the distribution of the prior, because the truncation depends on two parameters.

I was pretty sure it needs to be like this:

```
target += normal_lpdf(alpha_1 | .122, .1)
- normal_lccdf(fmax(0, -min(- alpha_2 * log(freq) - alpha_3 * pred)) | .122, .1);
```

But the model doesn’t even start, even when I’m not including the likelihood! (`only_prior=1`

).

Please help! It’s probably something stupid due to the lack of sleep, but my newborn is not going to sleep better any time soon :/

Full model below

```
data {
int N_obs;
vector<lower = 0>[N_obs] RT;
vector<lower = 0>[N_obs] pred;
vector<lower = 0>[N_obs] freq;
int only_prior; // for prior predictive checks
}
parameters {
real<lower = 0> alpha_2;
real<lower = 0> alpha_3;
real<lower = fmax(0, -min(- alpha_2 * log(freq) - alpha_3 * pred)) > alpha_1;
real<lower = 0> rate;
}
transformed parameters {
vector<lower = 0>[N_obs] mL1 = alpha_1 - alpha_2 * log(freq) - alpha_3 * pred;
}
model {
//priors:
target += normal_lpdf(sigma | .22, .1);
target += normal_lpdf(alpha_1 | .122, .1)
- normal_lccdf(fmax(0, -min(- alpha_2 * log(freq) - alpha_3 * pred)) | .122, .1);
target += normal_lpdf(alpha_2 | .004, .1);
target += normal_lpdf(alpha_3 | .010, .1);
if(!only_prior)
target += gamma_lpdf(RT | mL1, rate);
}
```