Skip to content

Commit d51ce3f

Browse files
committed
update dirichlet_multinomial
1 parent ba4252c commit d51ce3f

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

stan/math/prim/fun/divide.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ inline int divide(int x, int y) {
4343
*/
4444
template <typename T1, typename T2, require_any_eigen_t<T1, T2>* = nullptr,
4545
require_all_not_st_var<T1, T2>* = nullptr>
46-
inline auto divide(const T1& m, const T2& c) {
47-
return (as_array_or_scalar(m) / as_array_or_scalar(c)).matrix();
46+
inline auto divide(T1&& m, T2&& c) {
47+
return make_holder([](auto&& m_, auto&& c_) {
48+
return (as_array_or_scalar(std::forward<decltype(m_)>(m_)) / as_array_or_scalar(std::forward<decltype(c_)>(c_))).matrix();
49+
}, std::forward<T1>(m), std::forward<T2>(c));
4850
}
4951

5052
} // namespace math

stan/math/prim/prob/dirichlet_multinomial_lpmf.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ return_type_t<T_prior_size> dirichlet_multinomial_lpmf(
7777
}
7878

7979
// Need to treat as double otherwise Eigen's array log truncates
80-
auto ns_array = as_array_or_scalar(ns).template cast<double>();
80+
auto ns_array = as_array_or_scalar(ns).template cast<double>().eval();
8181
partials_return_t<T_prior_size> a_sum = sum(alpha_val);
8282
partials_return_t<T_prior_size> lp(0.0);
8383
if (include_summand<propto>::value) {

0 commit comments

Comments
 (0)