1 #ifndef STAN_VARIATIONAL_BASE_FAMILY_HPP
2 #define STAN_VARIATIONAL_BASE_FAMILY_HPP
5 #include <stan/math/prim/mat/fun/Eigen.hpp>
10 namespace variational {
29 const Eigen::VectorXd&
mean()
const;
31 Eigen::VectorXd
transform(
const Eigen::VectorXd& eta)
const;
32 template <
class BaseRNG>
33 void sample(BaseRNG& rng, Eigen::VectorXd& eta)
const;
34 template <
class M,
class BaseRNG>
37 Eigen::VectorXd& cont_params,
38 int n_monte_carlo_grad,
45 const std::exception& e)
const {
52 <<
"Informational Message: The current gradient evaluation "
53 <<
"of the ELBO is ignored because of the following issue:"
55 << e.what() << std::endl
56 <<
"If this warning occurs often then your model may be "
57 <<
"either severely ill-conditioned or misspecified."
63 base_family
operator+(base_family lhs,
const base_family& rhs);
64 base_family
operator/(base_family lhs,
const base_family& rhs);
65 base_family
operator+(
double scalar, base_family rhs);
66 base_family
operator*(
double scalar, base_family rhs);
base_family operator/(base_family lhs, const base_family &rhs)
base_family operator*(double scalar, base_family rhs)
Probability, optimization and sampling library.
void calc_grad(base_family &elbo_grad, M &m, Eigen::VectorXd &cont_params, int n_monte_carlo_grad, BaseRNG &rng, interface_callbacks::writer::base_writer &message_writer) const
base_family operator/=(const base_family &rhs)
Eigen::VectorXd transform(const Eigen::VectorXd &eta) const
base_family operator+(base_family lhs, const base_family &rhs)
base_writer is an abstract base class defining the interface for Stan writer callbacks.
void write_error_msg_(std::ostream *error_msgs, const std::exception &e) const
base_family operator+=(const base_family &rhs)
base_family operator*=(double scalar)
base_family square() const
base_family operator=(const base_family &rhs)
void sample(BaseRNG &rng, Eigen::VectorXd &eta) const
const Eigen::VectorXd & mean() const