Skip to content

Commit

Permalink
clang-format
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveBronder committed Jul 30, 2024
1 parent 51106c3 commit 0e3eb28
Show file tree
Hide file tree
Showing 25 changed files with 1,094 additions and 2,011 deletions.
10 changes: 6 additions & 4 deletions stan/math/mix/functor/hessian_times_vector.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@ namespace math {
* and pstream.
*/
template <typename F, typename Eta, require_eigen_t<Eta>* = nullptr,
typename... Args>
inline Eigen::VectorXd hessian_times_vector(
const F& f, const Eigen::VectorXd& x, const Eta& eta,
const Eigen::VectorXd& v, Args&&... args) {
typename... Args>
inline Eigen::VectorXd hessian_times_vector(const F& f,
const Eigen::VectorXd& x,
const Eta& eta,
const Eigen::VectorXd& v,
Args&&... args) {
nested_rev_autodiff nested;
const Eigen::Index x_size = x.size();
Eigen::Matrix<var, Eigen::Dynamic, 1> x_var = x;
Expand Down
9 changes: 4 additions & 5 deletions stan/math/mix/functor/laplace_base_rng.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,16 @@ inline Eigen::VectorXd laplace_base_rng(
D&& ll_fun, LLArgs&& ll_args, CovarFun&& covariance_function,
const ThetaMatrix& eta, const EtaMatrix& theta_0,
const laplace_options& options, TrainTuple&& train_tuple,
PredTuple&& pred_tuple, RNG& rng, std::ostream* msgs,
Args&&... args) {
PredTuple&& pred_tuple, RNG& rng, std::ostream* msgs, Args&&... args) {
using Eigen::MatrixXd;
using Eigen::VectorXd;
auto args_dbl = std::make_tuple(to_ref(value_of(args))...);
auto eta_dbl = value_of(eta);
auto md_est = apply(
[&](auto&&... args_val) {
return laplace_marginal_density_est(ll_fun, ll_args, covariance_function,
eta_dbl, value_of(theta_0), msgs,
options, args_val...);
return laplace_marginal_density_est(
ll_fun, ll_args, covariance_function, eta_dbl, value_of(theta_0),
msgs, options, args_val...);
},
std::tuple_cat(std::forward<TrainTuple>(train_tuple), args_dbl));
// Modified R&W method
Expand Down
23 changes: 14 additions & 9 deletions stan/math/mix/functor/laplace_likelihood.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ namespace internal {
template <typename F, typename Theta, typename Eta, typename... Args,
require_eigen_vector_t<Theta>* = nullptr,
require_eigen_t<Eta>* = nullptr>
inline auto log_likelihood(F&& f, const Theta& theta, const Eta& eta, Args&&... args) {
inline auto log_likelihood(F&& f, const Theta& theta, const Eta& eta,
Args&&... args) {
return f(theta, eta, args...);
}

Expand Down Expand Up @@ -62,7 +63,6 @@ inline Eigen::SparseMatrix<double> diff(F&& f, const Theta& theta,
}
}


template <typename F, typename Theta, typename Eta, typename... Args,
require_eigen_vector_t<Theta>* = nullptr,
require_eigen_t<Eta>* = nullptr>
Expand Down Expand Up @@ -179,16 +179,19 @@ inline plain_type_t<Eta> diff_eta_implicit(F&& f, const Theta& v,
return eta_var.adj();
}

}
} // namespace internal

template <typename F, typename Theta, typename Eta, typename TupleArgs,
require_eigen_vector_t<Theta>* = nullptr,
require_eigen_t<Eta>* = nullptr, require_tuple_t<TupleArgs>* = nullptr>
require_eigen_t<Eta>* = nullptr,
require_tuple_t<TupleArgs>* = nullptr>
inline auto log_likelihood(F&& f, const Theta& theta, const Eta& eta,
TupleArgs&& ll_tup, std::ostream* msgs) {
return apply([](auto&& f, auto&& theta, auto&& eta, auto&& msgs,
auto&&... args) { return internal::log_likelihood(f, theta, eta, args..., msgs); },
ll_tup, f, theta, eta, msgs);
return apply(
[](auto&& f, auto&& theta, auto&& eta, auto&& msgs, auto&&... args) {
return internal::log_likelihood(f, theta, eta, args..., msgs);
},
ll_tup, f, theta, eta, msgs);
}

template <typename F, typename Theta, typename Eta, typename TupleArgs,
Expand All @@ -204,7 +207,8 @@ inline Eigen::SparseMatrix<double> diff(F&& f, const Theta& theta,
return apply(
[](auto&& f, auto&& theta, auto&& eta, auto&& gradient,
auto hessian_block_size, auto* msgs, auto&&... args) {
return internal::diff(f, theta, eta, gradient, hessian_block_size, args..., msgs);
return internal::diff(f, theta, eta, gradient, hessian_block_size,
args..., msgs);
},
ll_tuple, f, theta, eta, gradient, hessian_block_size, msgs);
}
Expand Down Expand Up @@ -233,7 +237,8 @@ inline Eigen::VectorXd compute_s2(F&& f, const Theta& theta, const Eta& eta,
return apply(
[](auto&& f, auto&& theta, auto&& eta, auto&& A, auto hessian_block_size,
auto* msgs, auto&&... args) {
return internal::compute_s2(f, theta, eta, A, hessian_block_size, args..., msgs);
return internal::compute_s2(f, theta, eta, A, hessian_block_size,
args..., msgs);
},
ll_args, f, theta, eta, A, hessian_block_size, msgs);
}
Expand Down
3 changes: 1 addition & 2 deletions stan/math/mix/functor/laplace_marginal_density.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -647,8 +647,7 @@ inline auto laplace_marginal_density(const D& ll_fun, LLArgs&& ll_args,

// TODO: Why does remove this phi_size != 0 check work but for eta it fails?
// Because we have an eta_dummy sometimes...
if (is_any_var<Args...>::value && !is_constant<Eta>::value
&& eta_size != 0) {
if (is_any_var<Args...>::value && !is_constant<Eta>::value && eta_size != 0) {
{
const nested_rev_autodiff nested;
Eigen::Matrix<var, Eigen::Dynamic, Eigen::Dynamic> K_var
Expand Down
34 changes: 15 additions & 19 deletions stan/math/mix/prob/laplace_bernoulli_logit_rng.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,18 @@ template <typename CovarFun, typename ThetaMatrix, class RNG,
inline Eigen::VectorXd // CHECK -- right return type
laplace_marginal_tol_bernoulli_logit_rng(
const std::vector<int>& y, const std::vector<int>& n_samples,
const ThetaMatrix& theta_0,
CovarFun&& covariance_function,
TrainTuple&& train_tuple, PredTuple&& pred_tuple,
const double tolerance, const long int max_num_steps,
const int hessian_block_size, const int solver,
const int max_steps_line_search, RNG& rng, std::ostream* msgs,
Args&&... args) {
const ThetaMatrix& theta_0, CovarFun&& covariance_function,
TrainTuple&& train_tuple, PredTuple&& pred_tuple, const double tolerance,
const long int max_num_steps, const int hessian_block_size,
const int solver, const int max_steps_line_search, RNG& rng,
std::ostream* msgs, Args&&... args) {
laplace_options ops{hessian_block_size, solver, max_steps_line_search,
tolerance, max_num_steps};
Eigen::Matrix<double, 0, 0> eta_dummy;
return laplace_base_rng(bernoulli_logit_likelihood{},
std::forward_as_tuple(to_vector(y), n_samples),
covariance_function, eta_dummy, theta_0, rng, msgs, ops,
std::forward<TrainTuple>(train_tuple),
return laplace_base_rng(
bernoulli_logit_likelihood{},
std::forward_as_tuple(to_vector(y), n_samples), covariance_function,
eta_dummy, theta_0, rng, msgs, ops, std::forward<TrainTuple>(train_tuple),
std::forward<PredTuple>(pred_tuple), std::forward<Args>(args)...);
}

Expand All @@ -50,17 +48,15 @@ laplace_marginal_bernoulli_logit_rng(const std::vector<int>& y,
const ThetaMatrix& theta_0,
CovarFun&& covariance_function,
TrainTuple&& train_tuple,
PredTuple&& pred_tuple,
RNG& rng,
std::ostream* msgs,
Args&&... args) {
PredTuple&& pred_tuple, RNG& rng,
std::ostream* msgs, Args&&... args) {
constexpr laplace_options ops{1, 1, 0, 1e-6, 100};
Eigen::Matrix<double, 0, 0> eta_dummy;
return laplace_base_rng(bernoulli_logit_likelihood{},
std::forward_as_tuple(to_vector(y), n_samples),
covariance_function, eta_dummy, theta_0, ops,
std::make_tuple(), std::make_tuple(), rng, msgs,
std::forward<Args>(args)...);
std::forward_as_tuple(to_vector(y), n_samples),
covariance_function, eta_dummy, theta_0, ops,
std::make_tuple(), std::make_tuple(), rng, msgs,
std::forward<Args>(args)...);
}

} // namespace math
Expand Down
23 changes: 11 additions & 12 deletions stan/math/mix/prob/laplace_marginal_bernoulli_logit_lpmf.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,17 @@ template <typename CovarF, typename ThetaMatrix, typename... Args,
require_eigen_t<ThetaMatrix>* = nullptr>
inline auto laplace_marginal_tol_bernoulli_logit_lpmf(
const std::vector<int>& y, const std::vector<int>& n_samples,
const ThetaMatrix& theta_0, CovarF&& covariance_function,
double tolerance, long int max_num_steps, const int hessian_block_size,
const int solver, const int max_steps_line_search,
std::ostream* msgs, Args&&... args) {
const ThetaMatrix& theta_0, CovarF&& covariance_function, double tolerance,
long int max_num_steps, const int hessian_block_size, const int solver,
const int max_steps_line_search, std::ostream* msgs, Args&&... args) {
// TODO: change this to a VectorXd once we have operands & partials.
Eigen::Matrix<double, 0, 0> eta_dummy;
laplace_options ops{hessian_block_size, solver, max_steps_line_search,
tolerance, max_num_steps};
return laplace_marginal_density(bernoulli_logit_likelihood{},
std::forward_as_tuple(to_vector(y), n_samples),
covariance_function, eta_dummy, theta_0, msgs, ops,
std::forward<Args>(args)...);
return laplace_marginal_density(
bernoulli_logit_likelihood{},
std::forward_as_tuple(to_vector(y), n_samples), covariance_function,
eta_dummy, theta_0, msgs, ops, std::forward<Args>(args)...);
}

template <typename CovarF, typename ThetaMatrix, typename... Args,
Expand All @@ -65,10 +64,10 @@ inline auto laplace_marginal_bernoulli_logit_lpmf(
// TODO: change this to a VectorXd once we have operands & partials.
Eigen::Matrix<double, 0, 0> eta_dummy;
constexpr laplace_options ops{1, 1, 0, 1e-6, 100};
return laplace_marginal_density(bernoulli_logit_likelihood{},
std::forward_as_tuple(to_vector(y), n_samples),
covariance_function, eta_dummy, theta_0, msgs, ops,
std::forward<Args>(args)...);
return laplace_marginal_density(
bernoulli_logit_likelihood{},
std::forward_as_tuple(to_vector(y), n_samples), covariance_function,
eta_dummy, theta_0, msgs, ops, std::forward<Args>(args)...);
}

} // namespace math
Expand Down
Loading

0 comments on commit 0e3eb28

Please sign in to comment.