Automatic Differentiation
 
Loading...
Searching...
No Matches

◆ discrete_range_lpmf() [1/2]

template<bool propto, typename T_y , typename T_lower , typename T_upper >
double stan::math::discrete_range_lpmf ( const T_y &  y,
const T_lower &  lower,
const T_upper &  upper 
)

Return the log PMF of a discrete range for the given y, lower and upper bound (all integers).

\begin{eqnarray*} y &\sim& \mbox{\sf{discrete\_range}}(lower, upper) \\ \log(p (y \, |\, lower, upper)) &=& \log \left( \frac{1}{upper - lower + 1} \right) \\ &=& -\log (upper - lower + 1) \end{eqnarray*}

lower and upper can each be a scalar or a one-dimensional container. Any container arguments must be the same size.

Template Parameters
T_ytype of scalar, either int or std::vector<int>
T_lowertype of lower bound, either int or std::vector<int>
T_uppertype of upper bound, either int or std::vector<int>
Parameters
yinteger random variable
lowerinteger lower bound
upperinteger upper bound
Returns
Log probability. If containers are supplied, returns the log sum of the probabilities.
Exceptions
std::domain_errorif upper is smaller than lower.
std::invalid_argumentif non-scalar arguments are of different sizes.

Definition at line 46 of file discrete_range_lpmf.hpp.