1#ifndef STAN_MATH_PRIM_FUNCTOR_PARTIALS_PROPOGATOR_HPP
2#define STAN_MATH_PRIM_FUNCTOR_PARTIALS_PROPOGATOR_HPP
18template <
typename ReturnType,
typename Enable,
typename... Ops>
50template <
typename ReturnType,
typename... Ops>
54 template <
typename... Types>
70 inline static constexpr double build(
double value)
noexcept {
return value; }
81template <std::size_t I,
class... Types>
82inline constexpr auto&
edge(
84 return std::get<I>(x.edges_);
93template <std::size_t I,
class... Types>
96 return std::get<I>(x.edges_).partials_;
105template <std::size_t I,
class... Types>
108 return std::get<I>(x.edges_).partials_vec_;
117template <
typename... Ops>
122 std::forward<Ops>(ops)...);
partials_propagator(Types &&...) noexcept
require_t< std::is_arithmetic< std::decay_t< T > > > require_arithmetic_t
Require type satisfies std::is_arithmetic.
static constexpr double build(double value) noexcept
Build the node to be stored on the autodiff graph.
typename return_type< Ts... >::type return_type_t
Convenience type for the return type of the specified template parameters.
constexpr auto & edge(internal::partials_propagator< Types... > &x) noexcept
Access the edge of an partials_propagator
constexpr auto & partials(internal::partials_propagator< Types... > &x) noexcept
Access the partials for an edge of an partials_propagator
constexpr auto & partials_vec(internal::partials_propagator< Types... > &x) noexcept
Access the partials_vec for an edge of a partials_propagator
auto make_partials_propagator(Ops &&... ops)
Construct an partials_propagator.
typename plain_type< std::decay_t< T > >::type plain_type_t
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...
Template metaprogram to calculate the base scalar return type resulting from promoting all the scalar...