Struct reweight_base_fn

Inheritance Relationships

Derived Type

Struct Documentation

struct reweight_base_fn

Implementation detail for a reweight range adaptor object.

Subclassed by beluga::actions::detail::reweight_fn

Public Functions

template<class ExecutionPolicy, class Range, class Model, 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, Model model) const -> Range&

Overload that implements the reweight algorithm.

For each particle, we multiply the current weight by the new importance weight to accumulate information from sensor updates.

Template Parameters:
  • ExecutionPolicy – An execution policy.

  • Range – An input range of particles.

  • Model – A callable that can compute the importance weight given a particle state.

Parameters:
  • policy – The execution policy to use.

  • range – An existing range of particles to apply this action to.

  • model – A callable instance to compute the weights given the particle states.

template<class Range, class Model, 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, Model model, ExecutionPolicy policy) const -> Range&

Overload that re-orders arguments from a view closure.

template<class ExecutionPolicy, class Model, std::enable_if_t<std::is_execution_policy_v<ExecutionPolicy>, int> = 0>
inline constexpr auto operator()(ExecutionPolicy policy, Model model) const

Overload that returns a view closure to compose with other views.