1#ifndef STAN_MATH_PRIM_FUN_ACCUMULATOR_HPP
2#define STAN_MATH_PRIM_FUN_ACCUMULATOR_HPP
23template <
typename T,
typename =
void>
39 template <
typename S,
typename = require_stan_scalar_t<S>>
40 inline void add(S x) {
51 template <
typename S, require_matrix_t<S>* =
nullptr>
52 inline void add(
const S& m) {
66 inline void add(
const std::vector<S>& xs) {
67 for (
size_t i = 0; i < xs.size(); ++i) {
81 inline void add(
const S& xs) {
void add(S x)
Add the specified arithmetic type value to the buffer after static casting it to the class type T.
void add(const std::vector< S > &xs)
Recursively add each entry in the specified standard vector to the buffer.
void add(const S &m)
Add each entry in the specified matrix, vector, or row vector of values to the buffer.
void add(const S &xs)
Sum each entry and then push to the buffer.
T sum() const
Return the sum of the accumulated values.
Class to accumulate values and eventually return their sum.
require_all_t< is_kernel_expression_and_not_scalar< Types >... > require_all_kernel_expressions_and_none_scalar_t
Enables a template if all given types are non-scalar types that are a valid kernel generator expressi...
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 ...