1#ifndef STAN_MATH_OPENCL_PRIM_LOG_SUM_EXP_HPP
2#define STAN_MATH_OPENCL_PRIM_LOG_SUM_EXP_HPP
30 require_all_kernel_expressions_and_none_scalar_t<T>* =
nullptr>
38 if (!std::isfinite(a_max)) {
47 if (!std::isfinite(a_max)) {
50 return a_max +
log(
sum(
exp(a_eval - a_max)));
Represents an arithmetic matrix on the OpenCL device.
results_cl< T_results... > results(T_results &&... results)
Deduces types for constructing results_cl object.
expressions_cl< T_expressions... > expressions(T_expressions &&... expressions)
Deduces types for constructing expressions_cl object.
auto max_2d(T &&a)
Two dimensional max - reduction of a kernel generator expression.
auto from_matrix_cl(const T &src)
Copies the source matrix that is stored on the OpenCL device to the destination Eigen matrix.
fvar< T > log(const fvar< T > &x)
static constexpr double NEGATIVE_INFTY
Negative infinity.
auto sum(const std::vector< T > &m)
Return the sum of the entries of the specified standard vector.
fvar< T > log_sum_exp(const fvar< T > &x1, const fvar< T > &x2)
fvar< T > exp(const fvar< T > &x)
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...