1 #ifndef __STAN__PROB__DISTRIBUTIONS__UNIVARIATE__DISCRETE__HYPERGEOMETRIC_HPP__
2 #define __STAN__PROB__DISTRIBUTIONS__UNIVARIATE__DISCRETE__HYPERGEOMETRIC_HPP__
18 template <
bool propto,
30 static const char*
function =
"stan::prob::hypergeometric_log(%1%)";
53 if (!
check_bounded(
function, n, 0, a,
"Successes variable", &logp, Policy()))
55 if (!
check_greater(
function, N, n,
"Draws parameter", &logp, Policy()))
57 for (
size_t i = 0; i < size; i++) {
58 if (!
check_bounded(
function, N_vec[i]-n_vec[i], 0, b_vec[i],
"Draws parameter minus successes variable", &logp, Policy()))
60 if (!
check_bounded(
function, N_vec[i], 0, a_vec[i]+b_vec[i],
"Draws parameter", &logp, Policy()))
65 "Successes variable",
"Draws parameter",
"Successes in population parameter",
"Failures in population parameter",
74 for (
size_t i = 0; i < size; i++)
82 template <
bool propto,
96 template <
typename T_n,
108 return hypergeometric_log<false>(n,N,a,b,Policy());
111 template <
typename T_n,