-
-
Notifications
You must be signed in to change notification settings - Fork 379
Open
Description
Summary:
As pointed out by @bgoodri on stan-dev list, truncation syntax is generating
if (y < 1) lp_accum__.add(-std::numeric_limits<double>::infinity());
else lp_accum__.add(-poisson_ccdf_log(1, rate));
Instead it should be throwing std::domain_error with a meaningful message.
Also from @bgoodri:
For
y ~ normal(mu, sigma) T[1,];
then if y < 1, then I think it should exit but if y == 1, then it should throw an non-fatal exception. It is possible that the user wrote
parameters {
real<lower=1> y;
...
}
and y just underflows to 1.
- fix by generating call to appropriate err functions in
stan::mathwith appropriate bounds
Reproducible Steps:
Use truncation with out of bounds.
Current Output:
Nothing---just keeps going and get failure due to -infinity log density.
Expected Output:
Appropriate warning message.
Current Version:
v2.11.0