Open
Description
Compiling the following Stan code gives an error about bad return deduction
parameters {
vector<lower=0>[5] sigma_gamma_n;
matrix<multiplier=rep_matrix(sigma_gamma_n', 10)>[10, 5] z_gamma_n;
}
The error log is below which traces down into multiply_log
about an inconsistent deduction for the return type. I think just adding constexpr if
in this statement would fix this. Though I'd look to look at why the return types are just slightly different. That looks like a bug in type deduction
stan/lib/stan_math/stan/math/rev/fun/multiply_log.hpp:214:29: error: inconsistent deduction for auto return type: ‘stan::math::var_value<Eigen::Matrix<double, -1, -1, 1, -1, -1>, void>’ and then ‘stan::math::var_value<Eigen::Matrix<double, -1, -1> >’
214 | return make_callback_var(
| ~~~~~~~~~~~~~~~~~^
215 | multiply_log(arena_a.val(), arena_b),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
216 | [arena_a, arena_b](const auto& res) mutable {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
217 | arena_a.adj()
| ~~~~~~~~~~~~~
218 | += (res.adj().array() * arena_b.val().array().log()).sum();
https://gist.github.com/SteveBronder/5ba8b98ce92e7d1965fcce5a9fc091a2
Metadata
Metadata
Assignees
Labels
No labels