![]() |
Stan Math Library
5.1.0
Automatic Differentiation
|
#include <stan/math/mix/functor/hessian_block_diag.hpp>#include <stan/math/prim/functor.hpp>#include <stan/math/prim/fun.hpp>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 |
Enumerations | |
| enum class | stan::math::laplace_likelihood::internal::COPY_TYPE { stan::math::laplace_likelihood::internal::SHALLOW = 0 , stan::math::laplace_likelihood::internal::DEEP = 1 } |
| Decide if object should be deep or shallow copied when using conditional_copy_and_promote . More... | |
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<template< typename... > class Filter, typename PromotedType = stan::math::var, COPY_TYPE CopyType = COPY_TYPE::DEEP, typename... Args> | |
| auto | stan::math::laplace_likelihood::internal::conditional_copy_and_promote (Args &&... args) |
Conditional copy and promote a type's scalar type to a PromotedType. | |
| template<typename PromotedType , typename... Args> | |
| auto | stan::math::laplace_likelihood::internal::deep_copy_vargs (Args &&... args) |
| template<typename PromotedType , typename... Args> | |
| auto | stan::math::laplace_likelihood::internal::shallow_copy_vargs (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::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::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. | |