1 #ifndef STAN__AGRAD__FWD__FUNCTIONS__LOG_SUM_EXP_HPP
2 #define STAN__AGRAD__FWD__FUNCTIONS__LOG_SUM_EXP_HPP
48 std::vector<T> vals(v.size());
49 for (
size_t i = 0; i < v.size(); ++i)
53 for (
size_t i = 0; i < v.size(); ++i) {
54 T exp_vi =
exp(vals[i]);
55 denominator += exp_vi;
56 deriv += v[i].d_ * exp_vi;
fvar< T > log_sum_exp(const fvar< T > &x1, const fvar< T > &x2)
boost::math::tools::promote_args< T1, T2 >::type log_sum_exp(const T2 &a, const T1 &b)
Calculates the log sum of exponetials without overflow.
fvar< T > exp(const fvar< T > &x)