1#ifndef STAN_MATH_PRIM_FUN_LMGAMMA_HPP
2#define STAN_MATH_PRIM_FUN_LMGAMMA_HPP
54template <
typename T, require_arithmetic_t<T>* =
nullptr>
58 return result +
sum(
lgamma(x + (1 - Eigen::ArrayXd::LinSpaced(k, 1, k)) / 2));
72template <
typename T1,
typename T2, require_any_container_t<T1, T2>* =
nullptr>
75 [](
auto&& c,
auto&& d) {
76 return lmgamma(std::forward<
decltype(c)>(c),
77 std::forward<
decltype(d)>(d));
79 std::forward<T1>(a), std::forward<T2>(b));
typename return_type< Ts... >::type return_type_t
Convenience type for the return type of the specified template parameters.
static constexpr double LOG_PI_OVER_FOUR
The value of one quarter the natural logarithm of , .
auto apply_scalar_binary(F &&f, T1 &&x, T2 &&y)
Base template function for vectorization of binary scalar functions defined by applying a functor to ...
fvar< return_type_t< T, int > > lmgamma(int x1, const fvar< T > &x2)
fvar< T > lgamma(const fvar< T > &x)
Return the natural logarithm of the gamma function applied to the specified argument.
auto sum(const std::vector< T > &m)
Return the sum of the entries of the specified standard vector.
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...