template class mrpt::bayes::CRejectionSamplingCapable

Overview

A base class for implementing rejection sampling in a generic state space.

See the main method CRejectionSamplingCapable::rejectionSampling To use this class, create your own class as a child of this one and implement the desired virtual methods, and add any required internal data.

#include <mrpt/bayes/CRejectionSamplingCapable.h>

template <
    class TStateSpace,
    mrpt::bayes::particle_storage_mode STORAGE = mrpt::bayes::particle_storage_mode::POINTER
    >
class CRejectionSamplingCapable
{
public:
    // methods

    std::vector<TParticle> rejectionSampling(size_t desiredSamples, size_t timeoutTrials = 1000);
};

// direct descendants

class CRejectionSamplingRangeOnlyLocalization;
struct GaussianRS;

Methods

std::vector<TParticle> rejectionSampling(
    size_t desiredSamples,
    size_t timeoutTrials = 1000
    )

Generates a set of N independent samples via rejection sampling.

Parameters:

desiredSamples

The number of desired samples to generate.

timeoutTrials

The maximum number of rejection trials per sample. Samples that exceed the timeout are assigned a weight proportional to the best likelihood seen, rather than the uniform weight of accepted samples.

Returns:

Vector of desiredSamples particles.