Thanks for tracking this down. The root of the problem is
how we want to deal with overflow boundaries:
beta_lccdf(1 | 1, 1)
= log1m(beta_cdf(1 | 1, 1))
= log1m(1)
= log(1 - 1)
= -infinity
The change I made causes log1m(1) to throw an overflow exception.
I see two fixes for this:
* not have any of our basic functions throw overflow exceptions
but just let them return -infinity, +infinity or whatever
* have beta_ccdf() throw an overflow exception rather than
returning -infinity
The one reason we might prefer the former is that exp(-infinity) = 0,
and that may be useful.
Let's discuss at the meeting on Thursday and maybe rethink
the basic math lib behavior. Whatever we do, we should be
consistent across all of our distributions w.r.t. what we
do for overflow.
- Bob
> > To unsubscribe from this group and stop receiving emails from it, send an email to
stan-dev+u...@googlegroups.com.
> > For more options, visit
https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "stan development mailing list" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
stan-dev+u...@googlegroups.com.
> For more options, visit
https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups "stan development mailing list" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
stan-dev+u...@googlegroups.com.