Struct propagate_base_fn
Defined in File propagate.hpp
Inheritance Relationships
Derived Type
public beluga::actions::detail::propagate_fn
(Struct propagate_fn)
Struct Documentation
-
struct propagate_base_fn
Implementation detail for a propagate range adaptor object.
Subclassed by beluga::actions::detail::propagate_fn
Public Functions
-
template<class ExecutionPolicy, class Range, class StateSamplingFunction, std::enable_if_t<std::is_execution_policy_v<std::decay_t<ExecutionPolicy>>, int> = 0, std::enable_if_t<ranges::range<Range>, int> = 0>
inline constexpr auto operator()(ExecutionPolicy &&policy, Range &range, StateSamplingFunction fn) const -> Range& Overload that implements the propagate algorithm.
- Template Parameters:
ExecutionPolicy – An execution policy.
Range – An input range of particles.
StateSamplingFunction – A callable that samples a posterior state given a prior state. Callables satisfying Beluga named requirements: StateSamplingFunction are also supported. This will be bound to the default random number generator for ranges.
- Parameters:
policy – The execution policy to use.
range – An existing range of particles to apply this action to.
fn – A state sampling function instance.
-
template<class Range, class StateSamplingFunction, class ExecutionPolicy, std::enable_if_t<ranges::range<Range>, int> = 0, std::enable_if_t<std::is_execution_policy_v<ExecutionPolicy>, int> = 0>
inline constexpr auto operator()(Range &&range, StateSamplingFunction fn, ExecutionPolicy policy) const -> Range& Overload that re-orders arguments from a view closure.
-
template<class ExecutionPolicy, class StateSamplingFunction, std::enable_if_t<std::is_execution_policy_v<ExecutionPolicy>, int> = 0>
inline constexpr auto operator()(ExecutionPolicy policy, StateSamplingFunction fn) const Overload that returns a view closure to compose with other views.
-
template<class ExecutionPolicy, class Range, class StateSamplingFunction, std::enable_if_t<std::is_execution_policy_v<std::decay_t<ExecutionPolicy>>, int> = 0, std::enable_if_t<ranges::range<Range>, int> = 0>