Skip to content

Commit 6446f9c

Browse files
committed
Merge remote-tracking branch 'refs/remotes/origin/fix/laplace-args' into fix/laplace-args
2 parents 1df65b1 + ebea2cf commit 6446f9c

19 files changed

Lines changed: 114 additions & 119 deletions

stan/math/mix/prob/laplace_latent_bernoulli_logit_rng.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ template <typename Mean, typename CovarFun, typename CovarArgs,
3434
typename OpsTuple, typename RNG>
3535
inline Eigen::VectorXd laplace_latent_tol_bernoulli_logit_rng(
3636
const std::vector<int>& y, const std::vector<int>& n_samples, Mean&& mean,
37-
CovarFun&& covariance_function, CovarArgs&& covar_args,
38-
int hessian_block_size, OpsTuple&& ops, RNG& rng, std::ostream* msgs) {
37+
int hessian_block_size, CovarFun&& covariance_function,
38+
CovarArgs&& covar_args, OpsTuple&& ops, RNG& rng, std::ostream* msgs) {
3939
auto options
4040
= internal::tuple_to_laplace_options(std::forward<OpsTuple>(ops));
4141
options.hessian_block_size = hessian_block_size;
@@ -70,8 +70,8 @@ inline Eigen::VectorXd laplace_latent_tol_bernoulli_logit_rng(
7070
template <typename Mean, typename CovarFun, typename CovarArgs, typename RNG>
7171
inline Eigen::VectorXd laplace_latent_bernoulli_logit_rng(
7272
const std::vector<int>& y, const std::vector<int>& n_samples, Mean&& mean,
73-
CovarFun&& covariance_function, CovarArgs&& covar_args,
74-
int hessian_block_size, RNG& rng, std::ostream* msgs) {
73+
int hessian_block_size, CovarFun&& covariance_function,
74+
CovarArgs&& covar_args, RNG& rng, std::ostream* msgs) {
7575
auto options = laplace_options_default{hessian_block_size};
7676
return laplace_base_rng(
7777
bernoulli_logit_likelihood{},

stan/math/mix/prob/laplace_latent_neg_binomial_2_log_rng.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ template <typename Eta, typename Mean, typename CovarFun, typename CovarArgs,
4141
typename OpsTuple, typename RNG>
4242
inline Eigen::VectorXd laplace_latent_tol_neg_binomial_2_log_rng(
4343
const std::vector<int>& y, const std::vector<int>& y_index, Eta&& eta,
44-
Mean&& mean, CovarFun&& covariance_function, CovarArgs&& covar_args,
45-
int hessian_block_size, OpsTuple&& ops, RNG& rng, std::ostream* msgs) {
44+
Mean&& mean, int hessian_block_size, CovarFun&& covariance_function,
45+
CovarArgs&& covar_args, OpsTuple&& ops, RNG& rng, std::ostream* msgs) {
4646
auto options
4747
= internal::tuple_to_laplace_options(std::forward<OpsTuple>(ops));
4848
options.hessian_block_size = hessian_block_size;
@@ -84,8 +84,8 @@ template <typename Eta, typename Mean, typename CovarFun, typename CovarArgs,
8484
typename RNG>
8585
inline Eigen::VectorXd laplace_latent_neg_binomial_2_log_rng(
8686
const std::vector<int>& y, const std::vector<int>& y_index, Eta&& eta,
87-
Mean&& mean, CovarFun&& covariance_function, CovarArgs&& covar_args,
88-
int hessian_block_size, RNG& rng, std::ostream* msgs) {
87+
Mean&& mean, int hessian_block_size, CovarFun&& covariance_function,
88+
CovarArgs&& covar_args, RNG& rng, std::ostream* msgs) {
8989
auto options = laplace_options_default{hessian_block_size};
9090
return laplace_base_rng(
9191
neg_binomial_2_log_likelihood{},

stan/math/mix/prob/laplace_latent_poisson_log_rng.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ template <typename Mean, typename CovarFun, typename CovarArgs,
3636
typename OpsTuple, typename RNG>
3737
inline Eigen::VectorXd laplace_latent_tol_poisson_log_rng(
3838
const std::vector<int>& y, const std::vector<int>& y_index, Mean&& mean,
39-
CovarFun&& covariance_function, CovarArgs&& covar_args,
40-
int hessian_block_size, OpsTuple&& ops, RNG& rng, std::ostream* msgs) {
39+
int hessian_block_size, CovarFun&& covariance_function,
40+
CovarArgs&& covar_args, OpsTuple&& ops, RNG& rng, std::ostream* msgs) {
4141
auto options
4242
= internal::tuple_to_laplace_options(std::forward<OpsTuple>(ops));
4343
options.hessian_block_size = hessian_block_size;
@@ -73,8 +73,8 @@ inline Eigen::VectorXd laplace_latent_tol_poisson_log_rng(
7373
template <typename CovarFun, typename CovarArgs, typename RNG, typename Mean>
7474
inline Eigen::VectorXd laplace_latent_poisson_log_rng(
7575
const std::vector<int>& y, const std::vector<int>& y_index, Mean&& mean,
76-
CovarFun&& covariance_function, CovarArgs&& covar_args,
77-
int hessian_block_size, RNG& rng, std::ostream* msgs) {
76+
int hessian_block_size, CovarFun&& covariance_function,
77+
CovarArgs&& covar_args, RNG& rng, std::ostream* msgs) {
7878
auto options = laplace_options_default{hessian_block_size};
7979
return laplace_base_rng(
8080
poisson_log_likelihood{},

stan/math/mix/prob/laplace_latent_rng.hpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ namespace math {
3434
template <typename LLFunc, typename LLArgs, typename CovarFun,
3535
typename CovarArgs, typename OpsTuple, typename RNG>
3636
inline auto laplace_latent_tol_rng(LLFunc&& L_f, LLArgs&& ll_args,
37+
int hessian_block_size,
3738
CovarFun&& covariance_function,
38-
CovarArgs&& covar_args,
39-
int hessian_block_size, OpsTuple&& ops,
39+
CovarArgs&& covar_args, OpsTuple&& ops,
4040
RNG& rng, std::ostream* msgs) {
4141
auto options
4242
= internal::tuple_to_laplace_options(std::forward<OpsTuple>(ops));
@@ -70,9 +70,10 @@ inline auto laplace_latent_tol_rng(LLFunc&& L_f, LLArgs&& ll_args,
7070
template <typename LLFunc, typename LLArgs, typename CovarFun,
7171
typename CovarArgs, typename RNG>
7272
inline auto laplace_latent_rng(LLFunc&& L_f, LLArgs&& ll_args,
73+
int hessian_block_size,
7374
CovarFun&& covariance_function,
74-
CovarArgs&& covar_args, int hessian_block_size,
75-
RNG& rng, std::ostream* msgs) {
75+
CovarArgs&& covar_args, RNG& rng,
76+
std::ostream* msgs) {
7677
auto options = laplace_options_default{hessian_block_size};
7778
return laplace_base_rng(
7879
std::forward<LLFunc>(L_f), std::forward<LLArgs>(ll_args),

stan/math/mix/prob/laplace_marginal.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ namespace math {
3030
template <bool propto = false, typename LFun, typename LArgs, typename CovarFun,
3131
typename CovarArgs, typename OpsTuple>
3232
inline auto laplace_marginal_tol(LFun&& L_f, LArgs&& l_args,
33+
int hessian_block_size,
3334
CovarFun&& covariance_function,
34-
CovarArgs&& covar_args, int hessian_block_size,
35-
OpsTuple&& ops, std::ostream* msgs) {
35+
CovarArgs&& covar_args, OpsTuple&& ops,
36+
std::ostream* msgs) {
3637
auto options
3738
= internal::tuple_to_laplace_options(std::forward<OpsTuple>(ops));
3839
options.hessian_block_size = hessian_block_size;
@@ -63,10 +64,9 @@ inline auto laplace_marginal_tol(LFun&& L_f, LArgs&& l_args,
6364
*/
6465
template <bool propto = false, typename LFun, typename LArgs, typename CovarFun,
6566
typename CovarArgs>
66-
inline auto laplace_marginal(LFun&& L_f, LArgs&& l_args,
67+
inline auto laplace_marginal(LFun&& L_f, LArgs&& l_args, int hessian_block_size,
6768
CovarFun&& covariance_function,
68-
CovarArgs&& covar_args, int hessian_block_size,
69-
std::ostream* msgs) {
69+
CovarArgs&& covar_args, std::ostream* msgs) {
7070
auto options = laplace_options_default{hessian_block_size};
7171
return laplace_marginal_density(
7272
std::forward<LFun>(L_f), std::forward<LArgs>(l_args),

stan/math/mix/prob/laplace_marginal_bernoulli_logit_lpmf.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ template <bool propto = false, typename Mean, typename CovarFun,
5858
typename CovarArgs, typename OpsTuple>
5959
inline auto laplace_marginal_tol_bernoulli_logit_lpmf(
6060
const std::vector<int>& y, const std::vector<int>& n_samples, Mean&& mean,
61-
CovarFun&& covariance_function, CovarArgs&& covar_args,
62-
int hessian_block_size, OpsTuple&& ops, std::ostream* msgs) {
61+
int hessian_block_size, CovarFun&& covariance_function,
62+
CovarArgs&& covar_args, OpsTuple&& ops, std::ostream* msgs) {
6363
auto options
6464
= internal::tuple_to_laplace_options(std::forward<OpsTuple>(ops));
6565
options.hessian_block_size = hessian_block_size;
@@ -93,8 +93,8 @@ template <bool propto = false, typename Mean, typename CovarFun,
9393
typename CovarArgs>
9494
inline auto laplace_marginal_bernoulli_logit_lpmf(
9595
const std::vector<int>& y, const std::vector<int>& n_samples, Mean&& mean,
96-
CovarFun&& covariance_function, CovarArgs&& covar_args,
97-
int hessian_block_size, std::ostream* msgs) {
96+
int hessian_block_size, CovarFun&& covariance_function,
97+
CovarArgs&& covar_args, std::ostream* msgs) {
9898
auto options = laplace_options_default{hessian_block_size};
9999
return laplace_marginal_density(
100100
bernoulli_logit_likelihood{},

stan/math/mix/prob/laplace_marginal_neg_binomial_2_log_lpmf.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ template <bool propto = false, typename Eta, typename Mean, typename CovarFun,
8282
typename CovarArgs, typename OpsTuple>
8383
inline auto laplace_marginal_tol_neg_binomial_2_log_lpmf(
8484
const std::vector<int>& y, const std::vector<int>& y_index, const Eta& eta,
85-
Mean&& mean, CovarFun&& covariance_function, CovarArgs&& covar_args,
86-
int hessian_block_size, OpsTuple&& ops, std::ostream* msgs) {
85+
Mean&& mean, int hessian_block_size, CovarFun&& covariance_function,
86+
CovarArgs&& covar_args, OpsTuple&& ops, std::ostream* msgs) {
8787
auto options
8888
= internal::tuple_to_laplace_options(std::forward<OpsTuple>(ops));
8989
options.hessian_block_size = hessian_block_size;
@@ -118,8 +118,8 @@ template <bool propto = false, typename Eta, typename Mean, typename CovarFun,
118118
typename CovarArgs>
119119
inline auto laplace_marginal_neg_binomial_2_log_lpmf(
120120
const std::vector<int>& y, const std::vector<int>& y_index, const Eta& eta,
121-
Mean&& mean, CovarFun&& covariance_function, CovarArgs&& covar_args,
122-
int hessian_block_size, std::ostream* msgs) {
121+
Mean&& mean, int hessian_block_size, CovarFun&& covariance_function,
122+
CovarArgs&& covar_args, std::ostream* msgs) {
123123
auto options = laplace_options_default{hessian_block_size};
124124
return laplace_marginal_density(
125125
neg_binomial_2_log_likelihood{},
@@ -184,8 +184,8 @@ template <bool propto = false, typename Eta, typename Mean, typename CovarFun,
184184
inline auto laplace_marginal_tol_neg_binomial_2_log_summary_lpmf(
185185
const std::vector<int>& y, const std::vector<int>& n_per_group,
186186
const std::vector<int>& counts_per_group, const Eta& eta, Mean&& mean,
187-
CovarFun&& covariance_function, CovarArgs&& covar_args,
188-
int hessian_block_size, OpsTuple&& ops, std::ostream* msgs) {
187+
int hessian_block_size, CovarFun&& covariance_function,
188+
CovarArgs&& covar_args, OpsTuple&& ops, std::ostream* msgs) {
189189
auto options
190190
= internal::tuple_to_laplace_options(std::forward<OpsTuple>(ops));
191191
options.hessian_block_size = hessian_block_size;
@@ -222,8 +222,8 @@ template <bool propto = false, typename Eta, typename Mean, typename CovarFun,
222222
inline auto laplace_marginal_neg_binomial_2_log_summary_lpmf(
223223
const std::vector<int>& y, const std::vector<int>& n_per_group,
224224
const std::vector<int>& counts_per_group, const Eta& eta, Mean&& mean,
225-
CovarFun&& covariance_function, CovarArgs&& covar_args,
226-
int hessian_block_size, std::ostream* msgs) {
225+
int hessian_block_size, CovarFun&& covariance_function,
226+
CovarArgs&& covar_args, std::ostream* msgs) {
227227
auto options = laplace_options_default{hessian_block_size};
228228
return laplace_marginal_density(
229229
neg_binomial_2_log_likelihood_summary{},

stan/math/mix/prob/laplace_marginal_poisson_log_lpmf.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ template <bool propto = false, typename Mean, typename CovarFun,
7474
typename CovarArgs, typename OpsTuple>
7575
inline auto laplace_marginal_tol_poisson_log_lpmf(
7676
const std::vector<int>& y, const std::vector<int>& y_index, Mean&& mean,
77-
CovarFun&& covariance_function, CovarArgs&& covar_args,
78-
int hessian_block_size, OpsTuple&& ops, std::ostream* msgs) {
77+
int hessian_block_size, CovarFun&& covariance_function,
78+
CovarArgs&& covar_args, OpsTuple&& ops, std::ostream* msgs) {
7979
auto options
8080
= internal::tuple_to_laplace_options(std::forward<OpsTuple>(ops));
8181
options.hessian_block_size = hessian_block_size;
@@ -108,8 +108,8 @@ template <bool propto = false, typename CovarFun, typename CovarArgs,
108108
typename Mean>
109109
inline auto laplace_marginal_poisson_log_lpmf(
110110
const std::vector<int>& y, const std::vector<int>& y_index, Mean&& mean,
111-
CovarFun&& covariance_function, CovarArgs&& covar_args,
112-
int hessian_block_size, std::ostream* msgs) {
111+
int hessian_block_size, CovarFun&& covariance_function,
112+
CovarArgs&& covar_args, std::ostream* msgs) {
113113
auto options = laplace_options_default{hessian_block_size};
114114
return laplace_marginal_density(
115115
poisson_log_likelihood{},

test/unit/math/laplace/aki_ex_test.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ TEST(WriteArrayBodySimple, ExceededIteration) {
8585
double ll_laplace_val{0};
8686
try {
8787
ll_laplace_val = stan::math::laplace_marginal(
88-
poisson_re_log_ll_functor(), std::forward_as_tuple(y, mu),
89-
cov_fun_functor(), std::tuple<double, int>(sigmaz, 1), 1, pstream);
88+
poisson_re_log_ll_functor(), std::forward_as_tuple(y, mu), 1,
89+
cov_fun_functor(), std::tuple<double, int>(sigmaz, 1), pstream);
9090
} catch (const std::domain_error& e) {
9191
// Log bad values to CSV files
9292
ADD_FAILURE() << "Laplace failed"
@@ -135,8 +135,8 @@ TEST(WriteArrayBodySimple, ExecutesBodyWithHardcodedData) {
135135
try {
136136
ll_laplace_val = stan::math::laplace_marginal(
137137
poisson_re_log_ll_functor(),
138-
std::forward_as_tuple(y[i - 1], mu[i - 1]), cov_fun_functor(),
139-
std::tuple<double, int>(sigmaz, 1), 1, pstream);
138+
std::forward_as_tuple(y[i - 1], mu[i - 1]), 1, cov_fun_functor(),
139+
std::tuple<double, int>(sigmaz, 1), pstream);
140140
} catch (const std::domain_error& e) {
141141
ADD_FAILURE() << "LAPLACE FAILURE: y and mu for i = " << i << ": ("
142142
<< y[i - 1] << ", " << mu[i - 1] << ")"
@@ -164,8 +164,8 @@ TEST(WriteArrayBodySimple, ExecutesBodyWithHardcodedData) {
164164
}
165165
}
166166
auto ll_laplace_all = stan::math::laplace_marginal(
167-
poisson_re_log_ll_functor(), std::forward_as_tuple(y, mu),
168-
cov_fun_functor(), std::tuple<double, int>(sigmaz, N), 1, pstream);
167+
poisson_re_log_ll_functor(), std::forward_as_tuple(y, mu), 1,
168+
cov_fun_functor(), std::tuple<double, int>(sigmaz, N), pstream);
169169
stan::test::relative_tolerance sum_rel_tol(3e-2);
170170
expect_near_rel("sum laplace vs integrated sum", ll_laplace,
171171
ll_integrate_1d, sum_rel_tol, "laplace_sum",

test/unit/math/laplace/laplace_bernoulli_logit_rng_test.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ TEST(laplace_bernoulli_logit_rng, two_dim_diag) {
7676
boost::random::mt19937 rng;
7777
rng.seed(1954);
7878
Eigen::MatrixXd theta_pred = laplace_latent_bernoulli_logit_rng(
79-
sums, n_samples, mean, diagonal_kernel_functor{},
80-
std::forward_as_tuple(phi(0), phi(1)), 1, rng, nullptr);
79+
sums, n_samples, mean, 1, diagonal_kernel_functor{},
80+
std::forward_as_tuple(phi(0), phi(1)), rng, nullptr);
8181

8282
// Compute exact mean and covariance
8383
Eigen::VectorXd theta_root

0 commit comments

Comments
 (0)