Automatic Differentiation
 
Loading...
Searching...
No Matches
laplace_likelihood.hpp File Reference

Go to the source code of this file.

Namespaces

namespace  stan
 The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation from C or the boost::math::lgamma implementation.
 
namespace  stan::math
 Matrices and templated mathematical functions.
 
namespace  stan::math::laplace_likelihood
 functions to compute the log density, first, second, and third-order derivatives for a likelihoood specified by the user.
 
namespace  stan::math::laplace_likelihood::internal
 

Functions

template<typename F , typename Theta , typename Stream , typename... Args, require_eigen_vector_t< Theta > * = nullptr>
auto stan::math::laplace_likelihood::internal::log_likelihood (F &&f, Theta &&theta, Stream *msgs, Args &&... args)
 
template<typename F , typename Theta , typename Stream , typename... Args, require_eigen_vector_vt< std::is_arithmetic, Theta > * = nullptr>
auto stan::math::laplace_likelihood::internal::theta_grad (F &&f, Theta &&theta, Stream *msgs, Args &&... args)
 Computes theta gradient f wrt theta and args...
 
template<typename F , typename Theta , typename Stream , typename... Args, require_eigen_vector_vt< std::is_arithmetic, Theta > * = nullptr>
void stan::math::laplace_likelihood::internal::ll_arg_grad (F &&f, Theta &&theta, Stream *msgs, Args &&... args)
 Computes likelihood argument gradient of f
 
template<typename F , typename Theta , typename Stream , typename... Args, require_eigen_vector_vt< std::is_arithmetic, Theta > * = nullptr>
auto stan::math::laplace_likelihood::internal::diagonal_hessian (F &&f, Theta &&theta, Stream *msgs, Args &&... args)
 Computes negative diagonal Hessian of f wrttheta and args...
 
template<typename F , typename Theta , typename Stream , typename... Args, require_eigen_vector_vt< std::is_arithmetic, Theta > * = nullptr>
auto stan::math::laplace_likelihood::internal::block_hessian (F &&f, Theta &&theta, const Eigen::Index hessian_block_size, Stream *msgs, Args &&... args)
 Computes negative block diagonal Hessian of f wrttheta and args...
 
template<typename F , typename Theta , typename Stream , typename... Args, require_eigen_vector_vt< std::is_arithmetic, Theta > * = nullptr>
auto stan::math::laplace_likelihood::internal::diff (F &&f, Theta &&theta, const Eigen::Index hessian_block_size, Stream *msgs, Args &&... args)
 Computes theta gradient and negative block diagonal Hessian of f wrt theta and args...
 
template<typename F , typename Theta , typename Stream , typename... Args, require_eigen_vector_t< Theta > * = nullptr>
Eigen::VectorXd stan::math::laplace_likelihood::internal::third_diff (F &&f, Theta &&theta, Stream &&msgs, Args &&... args)
 Compute third order derivative of f wrt theta and args...
 
template<typename F , typename Theta , typename AMat , typename Stream , typename... Args, require_eigen_vector_t< Theta > * = nullptr>
auto stan::math::laplace_likelihood::internal::compute_s2 (F &&f, Theta &&theta, AMat &&A, const int hessian_block_size, Stream *msgs, Args &&... args)
 The derivative of the log likelihood wrt theta evaluated at the mode.
 
template<typename F , typename V_t , typename Theta , typename Stream , typename... Args, require_eigen_vector_t< Theta > * = nullptr>
auto stan::math::laplace_likelihood::internal::diff_eta_implicit (F &&f, V_t &&v, Theta &&theta, Stream *msgs, Args &&... args)
 Compute second order gradient of f wrt theta and args...
 
template<typename F , typename Theta , typename TupleArgs , typename Stream , require_eigen_vector_t< Theta > * = nullptr, require_tuple_t< TupleArgs > * = nullptr>
auto stan::math::laplace_likelihood::theta_grad (F &&f, Theta &&theta, TupleArgs &&ll_tup, Stream *msgs=nullptr)
 A wrapper that accepts a tuple as arguments.
 
template<typename F , typename Theta , typename TupleArgs , typename Stream , require_eigen_vector_t< Theta > * = nullptr, require_tuple_t< TupleArgs > * = nullptr>
auto stan::math::laplace_likelihood::ll_arg_grad (F &&f, Theta &&theta, TupleArgs &&ll_tup, Stream *msgs=nullptr)
 
template<typename F , typename Theta , typename TupleArgs , typename Stream , require_eigen_vector_t< Theta > * = nullptr, require_tuple_t< TupleArgs > * = nullptr>
auto stan::math::laplace_likelihood::diagonal_hessian (F &&f, Theta &&theta, TupleArgs &&ll_tuple, Stream *msgs)
 
template<typename F , typename Theta , typename TupleArgs , typename Stream , require_eigen_vector_t< Theta > * = nullptr, require_tuple_t< TupleArgs > * = nullptr>
auto stan::math::laplace_likelihood::block_hessian (F &&f, Theta &&theta, const Eigen::Index hessian_block_size, TupleArgs &&ll_tuple, Stream *msgs)
 
template<typename F , typename Theta , typename TupleArgs , typename Stream , require_eigen_vector_t< Theta > * = nullptr, require_tuple_t< TupleArgs > * = nullptr>
auto stan::math::laplace_likelihood::log_likelihood (F &&f, Theta &&theta, TupleArgs &&ll_tup, Stream *msgs)
 A wrapper that accepts a tuple as arguments.
 
template<typename F , typename Theta , typename TupleArgs , typename Stream , require_eigen_vector_t< Theta > * = nullptr, require_tuple_t< TupleArgs > * = nullptr>
auto stan::math::laplace_likelihood::diff (F &&f, Theta &&theta, const Eigen::Index hessian_block_size, TupleArgs &&ll_tuple, Stream *msgs)
 A wrapper that accepts a tuple as arguments.
 
template<typename F , typename Theta , typename TupleArgs , typename Stream , require_eigen_vector_t< Theta > * = nullptr, require_tuple_t< TupleArgs > * = nullptr>
Eigen::VectorXd stan::math::laplace_likelihood::third_diff (F &&f, Theta &&theta, TupleArgs &&ll_args, Stream *msgs)
 A wrapper that accepts a tuple as arguments.
 
template<typename F , typename Theta , typename AMat , typename TupleArgs , typename Stream , require_eigen_vector_t< Theta > * = nullptr, require_tuple_t< TupleArgs > * = nullptr>
auto stan::math::laplace_likelihood::compute_s2 (F &&f, Theta &&theta, AMat &&A, int hessian_block_size, TupleArgs &&ll_args, Stream *msgs)
 A wrapper that accepts a tuple as arguments.
 
template<typename F , typename V_t , typename Theta , typename TupleArgs , typename Stream , require_tuple_t< TupleArgs > * = nullptr, require_eigen_vector_t< Theta > * = nullptr>
auto stan::math::laplace_likelihood::diff_eta_implicit (F &&f, V_t &&v, Theta &&theta, TupleArgs &&ll_args, Stream *msgs)
 A wrapper that accepts a tuple as arguments.