1 #ifndef __STAN__MATH__FUNCTIONS__LOG_SUM_EXP_HPP__
2 #define __STAN__MATH__FUNCTIONS__LOG_SUM_EXP_HPP__
6 #include <boost/math/tools/promotion.hpp>
22 template <
typename T1,
typename T2>
23 inline typename boost::math::tools::promote_args<T1,T2>::type
44 using std::numeric_limits;
47 T
max = -numeric_limits<T>::infinity();
48 for (
size_t ii = 0; ii < x.size(); ii++)
53 for (
size_t ii = 0; ii < x.size(); ii++)
54 if (x[ii] != -numeric_limits<double>::infinity())
55 sum +=
exp(x[ii] - max);
57 return max +
log(sum);