1 #ifndef __STAN__PROB__DIST__UNI__CONTINUOUS__INV_CHI_SQUARE_HPP__
2 #define __STAN__PROB__DIST__UNI__CONTINUOUS__INV_CHI_SQUARE_HPP__
34 template <
bool propto,
35 typename T_y,
typename T_dof,
37 typename return_type<T_y,T_dof>::type
40 static const char*
function =
"stan::prob::inv_chi_square_log(%1%)";
54 if (!
check_finite(
function, nu,
"Degrees of freedom parameter", &logp, Policy()))
56 if (!
check_positive(
function, nu,
"Degrees of freedom parameter", &logp, Policy()))
58 if (!
check_not_nan(
function, y,
"Random variable", &logp, Policy()))
63 "Random variable",
"Degrees of freedom parameter",
73 for (
size_t n = 0; n <
length(y); n++)
79 for (
size_t n = 0; n < N; n++) {
81 logp += nu_vec[n] * NEG_LOG_TWO_OVER_TWO -
lgamma(0.5 * nu_vec[n]);
85 logp -= 0.5 / y_vec[n];
90 template <
bool propto,
91 typename T_y,
typename T_dof>
98 template <
typename T_y,
typename T_dof,
104 return inv_chi_square_log<false>(y,nu,Policy());
108 template <
typename T_y,
typename T_dof>