28 #ifndef CRejectionSamplingCapable_H
29 #define CRejectionSamplingCapable_H
46 template <
class TStateSpace>
66 size_t desiredSamples,
67 std::vector<TParticle> &outSamples,
68 size_t timeoutTrials = 1000)
76 if ( outSamples.size() != desiredSamples )
79 for (it = outSamples.begin();it!=outSamples.end();it++)
84 outSamples.resize( desiredSamples );
85 for (it = outSamples.begin();it!=outSamples.end();it++)
86 it->d =
new TStateSpace;
90 double acceptanceProb;
91 for (it = outSamples.begin();it!=outSamples.end();it++)
93 size_t timeoutCount = 0;
94 double bestLik = -1e250;
100 ASSERT_(acceptanceProb>=0 && acceptanceProb<=1);
101 if (acceptanceProb>bestLik)
103 bestLik = acceptanceProb;
107 (++timeoutCount)<timeoutTrials );
110 if (timeoutCount>=timeoutTrials)
112 it->log_w = log(bestLik);